Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Steffen_Albrecht am 10.07.02 - 16:30:35

Titel: Verständnisfrage Lotus Script (QuerySave)
Beitrag von: Steffen_Albrecht am 10.07.02 - 16:30:35
Hallo,

ich habe im QurySave Ereignis den unten stehenden Quellcode eingefügt.
Jedes mal, wenn ein Dokument gespeichert wird, bekomme ich folgende Fehlermeldung:

"Variant does not contain an object"

Das Dokument wird dennoch gespeichert.
Wie kriege ich diese Fehlermeldung weg?

Gruß
  Steffen




Sub Querysave(Source As Notesuidocument, Continue As Variant)
     
     Dim ws As New NotesUIWorkspace
     Dim view As NotesView
     Dim db As NotesDatabase  
     Dim doc As NotesDocument
     Dim s As New NotesSession
     Dim key As String
     Set source = ws.CurrentDocument
     
     
          ' Datenbank und Ansicht
     Set db = s.CurrentDatabase
     Set view = db.GetView("(MitarbeiterKey)") ' Ansicht aller Docs die den schlüssel enthalten
     
     
          ' Dokumentfelder aktualisieren und die Variable key mit dem Inhalt des berechneten feldes "Key" Füllen
     Call source.Refresh
     key = uidoc.fieldgettext("key")
     
          ' Prüfen ob Dokument vorhanden ist
     Set doc = view.GetDocumentByKey( key, True )
     
           ' wenn der Inhalt der variable doc gleich nil ist, existiert das Dokument noch nicht      
     If doc Is Nothing Then
          ' Wenn das Doc noch nicht existiert, wird es gespeichert und geschlossen
           
           Print "Keine Übereinstimmungen gefunden... wird gespeichert..."
           
           Call source.Save
           
           Print "Speichervorgang erfolgreich"
           
           Call source.Close()
           Continue = True
           Exit Sub
           
     End If
     
     
     Print "Übereinstimmendes Dokument gefunden"
     
     Messagebox "Mit dieser Aktion würden Sie ein Duplikat eines bestehenden Dokuments anlegen. Speichervorgang abgebrochen.",64,"Fehler"
     Continue = False
     
End Sub
Titel: Re: Verständnisfrage Lotus Script (QuerySave)
Beitrag von: Christopher am 10.07.02 - 16:53:30
Wo bleib den der Debugger stehen?
Titel: Re: Verständnisfrage Lotus Script (QuerySave)
Beitrag von: Axel am 10.07.02 - 18:37:55
Hi Steffen,

hier "liegt der Hund begraben".

Zitat
    ' Dokumentfelder aktualisieren und die Variable key mit dem Inhalt des berechneten feldes "Key" Füllen
Call source.Refresh  
key = uidoc.fieldgettext("key")  


Du verwendest die Variable uidoc ohne Sie vorher zu setzen.

Ändere die Zeile in: key = source.fieldgettext("key")
Dann sollte es funktionieren.

Die Zeilen

Dim ws As New NotesUIWorkspace
Set source = ws.CurrentDocument

ist unnötig. Denn source ist bereits als Parameter von QuerySave initialisiert und kann zum Zugriff auf das aktuell geöffnete Dokument verwendet werden.

Axel

Titel: Re: Verständnisfrage Lotus Script (QuerySave)
Beitrag von: Steffen_Albrecht am 11.07.02 - 07:14:37
Vielen Dank!

Daran erkennt man, dass ich erst Anfänger...  ::)
Titel: Re: Verständnisfrage Lotus Script (QuerySave)
Beitrag von: Axel am 11.07.02 - 08:07:04
Hi,

macht doch nix. Wir haben alle mal klein angefangen.  ;)

Und...
Für Fragen zu Notes gibts dieses Forum.  ;D

Axel