Domino 9 und frühere Versionen > ND8: Entwicklung

@Command([ReloadWindow]) macht nicht das was ich erwarte

<< < (3/3)

gstueb:

--- Zitat von: Peter Klett am 13.09.10 - 16:49:06 ---Call doc.Save (True, True)
uidoc.EditMode = False

Das hebelt allerdings die Validierungsformeln aus. Falls Validierung notwendig ist, dann mit uidoc.Save arbeiten

--- Ende Zitat ---

Ich habe im Querysave ein Script, welches verschiedene Felder auf Plausibilität prüft.

Kann ich irgendwie feststellen, ob der uidoc.Save ausgeführt wurde? Im Gegensatz zum doc.Save gibt mir der uidoc.Save ja keinen Rückgabewert zurück. Ansonsten würde ich im QuerySave halt eine globale Variable setzen und die abfragen...


--- Code: ---Dim session As New NotesSession
Dim username As New NotesName (session.Username)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim doc As NotesDocument
Set doc = uidoc.Document

If uidoc.EditMode = False Then
      Call uidoc.Save ' Wie prüfe ich, ob das erfolgreich war?
      uidoc.EditMode = False
End If

doc.SKBeurteilt1 = Format (Now, "dd.mm.yyyy hh:nn:ss") & " " & username.Abbreviated
doc.Protokoll = doc.Protokoll (0) & Chr (13) & Chr (10) & "Erste Beurteilung am " & doc.SKBeurteilt1 (0)

Call doc.Save (True, False)

Call uidoc.Close
Call workspace.EditDocument(False, Doc, False)

--- Ende Code ---

Peter Klett:
Dazu verwende ich eine eigene Routine

Function DokumentSpeichern (uidoc As NotesUIDocument) As Integer
   On Error Goto Fehler   
   DokumentSpeichern = True
   Call uidoc.Save
   Exit Function
Fehler:
   DokumentSpeichern = False
   Exit Function
End Function

Die rufe ich dann auf

If DokumentSpeichern (uidoc) Then
   ... Speichern war erfolgreich
Else
   ... Speichern war nicht erfolgreich
End If

gstueb:

--- Zitat von: Peter Klett am 13.09.10 - 18:32:15 ---Dazu verwende ich eine eigene Routine

Function DokumentSpeichern (uidoc As NotesUIDocument) As Integer
   On Error Goto Fehler   
   DokumentSpeichern = True
   [...]

--- Ende Zitat ---

Ok, das werde ich auch so machen. Gibt es einen Grund, warum die Funktion als Integer und nicht als boolean deklariert wurde oder ist das ein Vertipper?

Peter Klett:

--- Zitat von: gstueb am 14.09.10 - 11:06:14 ---... Gibt es einen Grund, warum die Funktion als Integer und nicht als boolean deklariert wurde oder ist das ein Vertipper?
--- Ende Zitat ---
Der Hauptgrund dafür ist der, dass ich erst sehr spät irgendwo gesehen habe, dass es auch Boolean gibt. Funktioniert mit Integer aber gut, kann man auch auf True und False abfragen, also bleibe ich dabei, bis ich irgendwann eines Besseren belehrt werde.

Habe auch schon erlebt, dass Funktionen später unerwartet neben "ja" und "nein" auch ein "vielleicht" oder "ja, ganz sicher" zurückgeben müssen, dann brauche ich den Parameter nicht zu ändern, was ich in zentralen Bibliotheken, die in allen DB verwendet werden, gerne vermeide.

Du kannst das aber gerne mit Boolean schreiben, ist ja, wie alles, was ich hier von mir gebe, nur eine Anregung.

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln