28. maj 2001 - 12:01Der er
2 kommentarer og 1 løsning
Oprette nyt doc. der overtager værdier.
Jeg har tidligere lavet et script, der, når man stod i en oversigt, kunne oprette et dokument der overtager visse af værdierne fra det i oversigten markerede dokument. Det kan laves med formelsprog, men det unikke ved scriptet var at der ikke kunne oprettes flere dokumenter med samme værdier. I forsøget på at få scriptet til at køre på alle dokumenter i oversigten har jeg desværre slettet det , :-(). Der er oprettet et dokument der i formler overtager værdier fra markerede dokument. Jeg ønsker blot at oprette nye dokument vha. et script (og udnytte umuligheden for at oprette flere med samme værdier)
Det jeg kan huske af scriptet er følgende: Sub Click(Source As Button) Dim workspace As New NotesUIWorkspace Dim session As New NotesSession Dim db As NotesDatabase Dim doc As NotesDocument Set db = Session.CurrentDatabase
\'Sørger for at der åbnes et nyt dokument. Set doc = New NotesDocument( db ) \'Bruger formularen \"LabelNavne\" doc.form = \"LabelNavne\"
Call doc.Close
End Sub
Scriptet er delvist stjålet andetsteds. Det aktiveres fra en knap i en oversigt. Ovenstående Script standser dog ved Call doc.close - og giver fejlmeddelsen: Illegal use of PROPERTY
Håber at nogen der kan hjælpe.
Kan nogen komme med anvendelige løsning både til at køre på markeret doc. og alle doc. i oversigten dobles point.
Prøv at kigge på denne - den har jeg kørende i en base med udstyr. Den tager en kopi af det markerede (og tømmer/ændrer et par felter)
Sub Initialize \' 1.Tjekkes om der er nogle dokumenter valgt \' 2. hvis 1 er sand \'Spørg efter refnr \'For hvert document \'Opret nyt doc \'Kopier alle felter \'tøm \'serienr \'iunr \'bekræftigelsesdato, leveringsdato med mere \' indstil refnr
Dim Thisdb As NotesDatabase Dim doc, newdoc As NotesDocument Dim collection As notesdocumentcollection Dim n As Integer
Dim session As New NotesSession Set ThisDB = Session.CurrentDatabase Set Collection = ThisDb.Unprocesseddocuments
Set doc = collection .Getnthdocument(1) If Collection.Count = 0 Then \' HER KOMMER MAN ALDRIG FOR DER VIL ALTID VÆRE 1 DOC VALGT Messagebox( \"Der er ikke valgt nogen dokumenter\" ) End If
Dim rekvnr, nybruger As String rekvnr = Inputbox(\"Indtast rekvnummer\") If rekvnr = \"\" Then Exit Sub
nybruger = Inputbox(\"Indtast navnet på den nye bruger\",,\"Drift - nyt udstyr\")
\'kopier dokumenterne, og ret værdier For n = 1 To Collection.count Set doc = Collection.GetNthDocument(n) Set newdoc = thisdb.CreateDocument Call doc.CopyAllItems( newdoc ) \'tøm specifikker værdier Call ret_item(newdoc,\"IUnr\",\"\") Call ret_item(newdoc,\"serienr\",\"\") Call ret_item(newdoc,\"bruger\",nybruger)
Function ret_item(localdoc As notesdocument, itemnavn As String, vaerdi As Variant) If localdoc.HasItem( itemnavn ) Then \' Msgbox \"retter: \" + itemnavn Call localdoc.removeitem(itemnavn) Dim localitem As notesitem Set localitem = localdoc.AppendItemValue( itemnavn, vaerdi ) End If End Function
Wise: Beklager, måske var det lige hurtigt nok med den afvisning. Det ser noget mere indviklet ud end det jeg umiddelbart søger, men måske er der noget jeg kan bruge (så skal du også have point!). Mit problem er at der er en meget genial og brugbar kodestruktur der ligner mit gæt meget. Desværre kan jeg bare ikke huske den.
PS: der kan godt gå en uges tid før jeg svare på andre indlæg. :-) cbkc
Følgende kan størstedelen af det jeg søgte, desværre kan det oprette mere end et dokument for hvert overordnede dokument (det kunne den savnede kode ikke)
(Ulempe ved nedenstående er at skærem følger med - formodes at give større tidsforbrug)
Sub Click(Source As Button) Dim workspace As New NotesUIWorkspace Dim session As New NotesSession Dim db As NotesDatabase Dim doc As NotesDocument Dim dc As NotesDocumentCollection
Callworkspace.ComposeDocument(\"\",\"\",\"LabelNavne\") Set uidoc = workspace.currentDocument Call uidoc.Close
End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.