Domino 9 und frühere Versionen > ND6: Entwicklung
Trotz Abbrechen wird gespeichert
Cobi:
Hallo zusammen,
ich habe folgenden Code im QuerySave.
Sub Querysave(Source As Notesuidocument, Continue As Variant)
Dim ws As New NotesUIWorkspace
Dim session As New NotesSession
Dim db As NotesDatabase
Dim uiDoc As NotesUIDocument
Dim doc As NotesDocument
Dim i As Integer
Dim s As String
Set doc = Source.Document
Set uiDoc = ws.CurrentDocument
'Eingabevalidierung per Script abhängig vom feld typ
s = source.FieldGetText("banf_nr")
If Isnumeric(s) Then
continue=True
Else
Messagebox("Es sind keine Zeichen im Feld zugelassen!")
Call Source.GotoField("banf_nr")
Continue = False
If source.FieldGetText("typ")="Bestellanforderung" Then
If Len(s)<>10 Then
Messagebox("Bitte geben Sie die korrekte 10 stellige Bestellanforderungsnummer ein!")
Call Source.GotoField("banf_nr")
Continue = False
Else
Call doc.Save(True, False)
End If
Else
If (Len(s) < 9) Or (Len(s) >10) Then
Messagebox("Bitte geben Sie die korrekte 9 oder 10 stellige Bestellnummer ein!")
Call Source.GotoField("banf_nr")
Continue = False
Else
Call doc.Save(True, False)
End If
End If
End if
End Sub
Dies funktioniert auch wirklich wunderbar. Allerdings, wenn ich jetzt eine Eingabe mache bsp. 123456789m dann speichern drücke, dann kommt die Fehlermeldung- soweit ok. Sobald ich allerdings anschließend auf Abbrechen gehe, dann wird das Dokument gespeichert und erscheint in der Ansicht.
Warum? Und wie kann ich das verhindern?
Danke und grüße
Tanja
koehlerbv:
Wenn im Feld "typ" "Bestellanforderung" steht, führst Du das doc.Save aus - Notes tut also, was Du ihm sagst.
Sowas kann man auch im Debugger schön selbst verfolgen.
Bernhard
Cobi:
Aber ich habe doch am anfang schon die Abfrage, dass wenn ein Zeichen enthalten ist, dass dann abgebrochen werden soll.
If Isnumeric(s) Then
continue=True
Else
Messagebox("Es sind keine Zeichen im Feld zugelassen!")
Call Source.GotoField("banf_nr")
Continue = False
Oder erreiche ich das damit nicht?
koehlerbv:
Dann läuft der Code weiter - Nach dem Continue = False wird das
If source.FieldGetText("typ")="Bestellanforderung" Then
ausgeführt.
Hinter dem Continue = False muss also QuerySave verlassen werden mit Exit Sub.
Bernhard
Thomas Schulte:
Mist Bernhard war schneller.
:'(
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln