Autor Thema: Trotz Abbrechen wird gespeichert  (Gelesen 2164 mal)

Offline Cobi

  • Junior Mitglied
  • **
  • Beiträge: 70
Trotz Abbrechen wird gespeichert
« am: 18.07.07 - 11:14:48 »
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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Trotz Abbrechen wird gespeichert
« Antwort #1 am: 18.07.07 - 11:26:47 »
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

Offline Cobi

  • Junior Mitglied
  • **
  • Beiträge: 70
Re: Trotz Abbrechen wird gespeichert
« Antwort #2 am: 18.07.07 - 11:31:28 »
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?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Trotz Abbrechen wird gespeichert
« Antwort #3 am: 18.07.07 - 11:37:20 »
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

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Trotz Abbrechen wird gespeichert
« Antwort #4 am: 18.07.07 - 11:37:58 »
Mist Bernhard war schneller.
 :'(
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Cobi

  • Junior Mitglied
  • **
  • Beiträge: 70
Re: Trotz Abbrechen wird gespeichert
« Antwort #5 am: 18.07.07 - 11:42:11 »
ahh super danke! Jetzt funktionierts.

Allerdings schließt er das Fenster jetzt, wenn ich zum Beispiel nur 4 Zeichen eingebe...
Irgendwie muss ich das anders verschachteln. Werde mal ein wenig tüffteln...
« Letzte Änderung: 18.07.07 - 11:57:27 von Cobi »

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Trotz Abbrechen wird gespeichert
« Antwort #6 am: 18.07.07 - 12:30:00 »
Ist irgendwie logisch das er das so macht. Dein erste Prüfung ist auf Isnumeric und wenn deine Eingabe nicht Numeric ist machst du erst die Längenprüfungen.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Cobi

  • Junior Mitglied
  • **
  • Beiträge: 70
Re: Trotz Abbrechen wird gespeichert
« Antwort #7 am: 18.07.07 - 13:24:47 »
Zur Vollständigkeithalber hier der korrekte Code:

s = source.FieldGetText("banf_nr")
if not isnumeric(s) then
  msgBox("Es sind keine Zeichen im Feld zugelassen!")
  continue=false
  else
    if source.getfieldtext("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
            

danke fürs auf die Sprünge helfen.
« Letzte Änderung: 18.07.07 - 13:34:58 von Cobi »

klaussal

  • Gast
Re: Trotz Abbrechen wird gespeichert
« Antwort #8 am: 18.07.07 - 13:31:26 »
Zitat
Bestellanforderungsnummer
?

oder

Zitat
Bestellnummer
  ?

Offline Cobi

  • Junior Mitglied
  • **
  • Beiträge: 70
Re: Trotz Abbrechen wird gespeichert
« Antwort #9 am: 18.07.07 - 13:33:08 »
je nach dem welcher Typ (in einem Dialogfeld ausgewählt ist. Bei Bestellanforderungsnummer muss die Eingabe 10stellig sein.
Bei Bestellnummer 9 oder 10 stellig.

klaussal

  • Gast
Re: Trotz Abbrechen wird gespeichert
« Antwort #10 am: 18.07.07 - 13:34:00 »
OK.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Trotz Abbrechen wird gespeichert
« Antwort #11 am: 18.07.07 - 13:34:28 »
Das NotesDocument.Save in einem QuerySave-Event erschliesst sich mir auch nicht.

Die unterschiedlichen Begriffe in der Fehlermeldung sind wohl korrekt, da es sich lt. dem Feld "typ" um unterschiedliche Zusammenhänge handelt, Klaus.

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Trotz Abbrechen wird gespeichert
« Antwort #12 am: 18.07.07 - 14:47:27 »
Wie Bernhard schon gesagt hat. Der Save ist an dieser Stelle ziemlich sinnlos, weil das Dokument ja ohnehin gespeichert wird.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline Cobi

  • Junior Mitglied
  • **
  • Beiträge: 70
Re: Trotz Abbrechen wird gespeichert
« Antwort #13 am: 18.07.07 - 15:10:21 »
Wie Bernhard schon gesagt hat. Der Save ist an dieser Stelle ziemlich sinnlos, weil das Dokument ja ohnehin gespeichert wird.

Aber schaden tut es ja nicht oder kann es zu konflikten kommen?

Offline Tode

  • Moderatoren
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 6.883
  • Geschlecht: Männlich
  • Geht nicht, gibt's (fast) nicht... *g*
Re: Trotz Abbrechen wird gespeichert
« Antwort #14 am: 20.07.07 - 09:46:38 »
Dieses Save ist SINNLOS....

Ob es an der Stelle schadet oder nicht ist deshalb völlig irrelevant...

Manchmal führt ein solches Save aber zu der Meldung "Versuch verschachtelter Ereignisse..." (oder so ähnlich).
Un dich könnte mir durchaus Situationen vorstellen, wo das dann zu Replikations- Konflikten führt.

Ich sehe immer wieder, dass manche Entwickler jede "historisch gewachsene" Zeile Code in Ihrem Script lassen, egal wie sinnvoll oder sinnlos, nur aus "sentimentalen" Gründen. Code ohne Funktion gehört gelöscht (es sei denn man braucht es später wieder, das ist aber bei diesem Save definitiv NIE der Fall)

Gruß
Tode
Gruss
Torsten (Tode)

P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen... das klingt dann so: "Tooode" (langes O, das r, s und n werden verschluckt, das t wird zum badischen d)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz