Domino 9 und frühere Versionen > Entwicklung

Aktuelles Programm kann nicht geschlossen werden ???

(1/2) > >>

mgubler:
Guten Morgen zusammen,

ich habe folgendes Problem bei meinem Abschlussprojekt.
Ich habe ein Skript im QuerySave einer Maske erstellt, das die Felder auf deren Inhalt prüft.

Wenn nun ein Fehler auftritt lasse ich via Messagebox eine Nachricht ausgeben. Danach wird Continue auf False gesetzt.
Und danach soll man dann wieder zur Eingabe in die Maske gelangen.
Leider funktioniert das aber nicht.
Nachdem ich auf okay klicke, erhalte ich eine neue Messagebox, die mir mitteilt, dass das aktuelle Programm nicht geschlossen werden kann.

Hier habe ich mal einen Teil des Scripts:


--- Code: ---Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim boxType As Long, answer As Integer
   
   plz=source.FieldGetText("fld_Plz_TX")
   boxType& = MB_OK + MB_ICONINFORMATION
   
   If plz = "" Then
      answer% = Messagebox("Es wurde keine eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine Postleitzahl ein.", boxType&, "Fehler!")
      Goto Ende
   Else
      If ( Len(plz) <> 5 ) Then
         answer% = Messagebox("Es wurde eine ungültige Plz eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine gültige Postleitzahl ein.", boxType&, "Fehler!")
         Goto Ende         
      End If
      Goto Ende
   End If
   
Ende:
   Continue=False
End Sub

--- Ende Code ---

Es wäre toll, wenn mir jemand schnellstens helfen könnte, da es wichtig ist.

Gruss und Danke im voraus,
mgubler

eknori:
Ich denke, der Fehler hat weniger was mit dem Code zu tun. Habe den gleichen Fehler in einer anderen Anwendung. Werde mich da heute mal auf die Suche begeben.

Trotzdem solltest du deinen Code ein wenig umbauen, da du sonst aus der Nummer nie mehr rauskommst


--- Zitat ---      End If
      Goto Ende
   End If
   
Ende:
   Continue=False
End Sub

--- Ende Zitat ---

danach ist continue immer FALSE, da du zwar in deinen Abfragen zur Marke springst, aber auch, wenn alles i.O. ist kommst du ja zwangsläufig an die Stelle.

Also entweder

      End If
      Goto Ende
   End If
   exit sub
Ende:
   Continue=False
End Sub

oder du läßt das GoTo Ende ganz weg und setzt continue gleich an der richtigen Stelle auf FALSE

If plz = "" Then
      answer% = Messagebox("Es wurde keine eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine Postleitzahl ein.", boxType&, "Fehler!")
      continue = false
   Else
      If ( Len(plz) <> 5 ) Then
         answer% = Messagebox("Es wurde eine ungültige Plz eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine gültige Postleitzahl ein.", boxType&, "Fehler!")
      continue = false
      End If
End If

eknori

mgubler:
Danke erstmal für den Hilfeansatz.
Solltest Du (ich hoffe ich darf Du sagen?!) eine Lösung finden, so wäre es nett, wenn Du diese Lösung hier posten könntest.

Danke im voraus,
mgubler

Performance:
eknori hat's doch schon beschrieben - es ist ein Logikfehler mehr nicht


Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim boxType As Long, answer As Integer
   
   plz=source.FieldGetText("fld_Plz_TX")
   boxType& = MB_OK + MB_ICONINFORMATION
   
   If plz = "" Then
      answer% = Messagebox("Es wurde keine eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine Postleitzahl ein.", boxType&, "Fehler!")
 GoTo Ende
   Else
      If ( Len(plz) <> 5 ) Then
         answer% = Messagebox("Es wurde eine ungültige Plz eingegeben." + Chr$(13) + Chr$(10) + "Bitte geben Sie eine gültige Postleitzahl ein.", boxType&, "Fehler!")
         Goto Ende        
      End If
   End If

Exit sub  

Ende:
   Continue=False
End Sub




cu

mgubler:
Das Problem bestand auch nach der Korrektur noch!

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln