Domino 9 und frühere Versionen > Entwicklung

Dokument über die ID kopieren

<< < (2/8) > >>

TMC:

--- Zitat von: Selin am 04.11.04 - 14:00:24 ---brauche ich dann noch die andere DB hier im Script?
Weil, ich muss ja auf beide DB's zugreifen??
--- Ende Zitat ---

Ähm, ja. Bin aber jetzt auch verwirrt.

Kennst Du Dich mit Lotus Script aus? Bitte dringend ein Buch lesen und/oder eine Schulung besuchen. Die Quell-DB selbst hast Du nicht instantiiert, aber ein Dokument davon. Und die 2. DB ist instantiiert, wie Axel schon schrieb.
Man kann zwar jetzt auf die Schnelle helfen, aber ich befürchte, dass Du aufgrund fehlender Basics dann das nicht 100% verstehst.

Ist auch nicht böse gemeint, sondern ein gut gemeinter Rat.

Axel:
Hi,

ich denke mal es geht um die Übernahme eines Wertes aus dem aktuellen Dokument in ein Dokument, auf das per UNID in einer anderen Datenbank zugegriffen werden soll.
Aber das ist ein bisschen wie Kaffeesatzleserei.

Wenn dem so ist, dann braucht man die Quell-DB nicht zu instanzieren. Dafür reicht das Quell-Dokument und das passiert auch in dieser Zeile

   Set doc = ws.CurrentDocument.document


Aber was mir aufgefallen ist, weiter unter im Code wird doc mit dem "Zieldokument" überschrieben. So kann das auf keinen Fall funktionieren.


Axel





Selin:
Hallo,

also hier ist mein Script

Sub Initialize
   Dim s As New NotesSession
   Dim WS As New NotesUIWorkspace
   Dim View As NotesView
   Dim db As NotesDatabase
'Die DB, in die kopiert werden soll
   Dim targetdb As New NotesDatabase( "Server", "Datenbanken/VIP.nsf" )
   Dim dc As NotesDocumentCollection
   Dim source As NotesUIDocument
   
   Dim checkdc As NotesDocumentCollection
   Dim doc As NotesDocument
   Dim Flag As Variant
   Dim SucheName() As String
   Dim Unids() As String
   
   Dim tmpdoc As NotesDocument
   Dim modifyDate As Variant
   
   Dim i As Integer
   Dim found As Integer
   
   Set db = s.CurrentDatabase
   Set checkdc = db.UnprocessedDocuments
   Set doc = checkdc.GetFirstDocument
   
   
   Do While Not doc Is Nothing   
      
      found = False
      
      'Prüfe Nachname und Vorname
      Set dc = targetdb.Search( |Lastname = "| + doc.LastName(0) + |" & Firstname ="| + doc.FirstName(0) + |"|,Nothing,0 )
      
      
      
      If dc.Count > 0 Then
         Msgbox(dc.count)
                 'Hier gibt es einen Treffer:            
         found = True
         Redim SucheName(dc.count)
         Redim Unids(dc.count)
         
         For i = 1 To dc.count
            Set tmpdoc = dc.getNthDocument(i)
            SucheName(i-1) =tmpdoc.LastName(0) + ", " + tmpdoc.FirstName(0)+ " " +tmpdoc.CompanyName(0) + " (" + Format$( doc.LastModified, "Short Date")+")"
            Unids(i-1) = tmpdoc.UniversalID
         Next
         
         doc.Ergebnis = SucheName
         doc.Liste1 = SucheName
         doc.Unids = Unids
                     
         
         doc.Aktuell =doc.Lastname(0)+ ", " + doc.FirstName(0)+ " " + doc.CompanyName(0)
         
         
         Flag = WS.Dialogbox("dialog", True, True, False, False, False, False, "Export", doc, False)
         
         
      Else
                   ' Kein Treffer: Dok. kann kopiert werden
         
         Call doc.CopyTodatabase(targetdb)
         Set source= WS.CurrentDocument
         
         
         
      End If
      Set doc = checkdc.GetNextDocument(doc)
      
      Loop   'do while not doc is nothing
End Sub

Eine Dialogmaske wird aufgerufen.
Mit Feldern Aktueller Wert
und die Ergebnisliste
liste1 und UNIDS

Zwei Knöpfe habe ich noch ind er Maske
Bei dem einen habe ich testhalber mal folgendes gemacht

@Prompt([OK];"";Ergebnisliste);
tmp0 := @Text(Ergebnisliste);

tmp:=@Member(tmp0;Liste1);

@Prompt([OK];"";@Text(tmp));

UNID := @Subset(@Subset(Unids;tmp);-1);
@Prompt([OK];"";@Text(UNID))

Somit habe ich von den Dokumenten, die ich aus der Ergebnisliste wähle, die DOCIDs und müsste
das Originaldokument z.B. überschreiben können.
Ich gebe nur Teile aus dem Dokument in meiner Ergebnisliste aus (Name, Vorname, Firma)
und im Feld Aktueller Wert genauso.





Axel:
Hi,

schön, aber wo ist jetzt das Problem bzw. die Frage, oder ist das nur zur Info?   ??? ???


Axel

Selin:
das Problem bzw die Frage ist,

wo setzt ich was ein, damit ich das Originaldokument von Feld Aktueller Wert durch einen der Originaldokumente aus Feld Ergbebnisliste, welches ich markiere, ersetzen kann??

Danke

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln