Domino 9 und frühere Versionen > ND6: Entwicklung

Trotz Abbrechen wird gespeichert

(1/3) > >>

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