Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Bille am 21.05.08 - 11:05:02

Titel: nach Fehlerbehandlung wieder in Dialogbox zurückkehren
Beitrag von: Bille am 21.05.08 - 11:05:02
Hi,

der User füllt in einer Dialogbox diverse Felder aus. Nach Drücken des OK-Buttons werden die Feldinhalte auf Plausibilität geprüft.
Wie schaffe ich es, dass bei einem gefundenen Fehler (z. B. das angegebene Datum liegt in der Vergangenheit), der User wieder in die Dialogbox zurückgekehrt?

Momentan sieht mein Code (Ausschnitt) so aus:

Code
Sub Click(Source As Button)
.....
	If Not ws.DialogBox( "DialogTA" , True , True, False, False, False,False, "ANMERKUNGEN", doc , True) Then
		Exit Sub
	End If
	
.....
	If doc.TerminDatum(0) < Today Then
		Msgbox "Das Datum liegt in der Vergangenheit. Bitte ändern!", 48, "Fehler"
		Exit Sub
	End If
.....

Durch das Exit Sub in dem Then-Zweig wird natürlich die komplette Routine verlassen und der User muss erneut alle Felder füllen.
Gibt es eine Möglichkeit, dass ich wieder in die Dialogbox zurückkommen kann?

Bille
Titel: Re: nach Fehlerbehandlung wieder in Dialogbox zurückkehren
Beitrag von: klaussal am 21.05.08 - 11:09:05
Goto ?
Titel: Re: nach Fehlerbehandlung wieder in Dialogbox zurückkehren
Beitrag von: Bille am 21.05.08 - 11:12:33
Ach, das war ja einfach!

Danke Klaus!
 :D
Titel: Re: nach Fehlerbehandlung wieder in Dialogbox zurückkehren
Beitrag von: klaussal am 21.05.08 - 11:14:10
Gern geschehen !
Titel: Re: nach Fehlerbehandlung wieder in Dialogbox zurückkehren
Beitrag von: Axel am 21.05.08 - 11:50:20
Gibt es eine Möglichkeit, dass ich wieder in die Dialogbox zurückkommen kann?

Dann ist aber Goto nicht unbedingt der Weisheit letzter Schluss.

Hier wäre es besser die Plausibilitätsprüfung innerhalb der Dialogbox zu machen und diese erst zu schließen, wenn die Prüfung positiv war.

Die Prüfung selbst wird im QueryClose-Event der Dialogbox ausgeführt.

Beispiel:
Solange das Feld Feldname leer ist, kann die Dialogbox nicht geschlossen werden.

Sub Queryclose(Source As NotesUIDocument, Continue As Variant)
  If Source.DialogBoxCanceled Then
    If Source.Document.Feldname(0) = "" Then
      Messagebox "Das Feld Feldname darf nicht leer sein.", 16, "Feldprüfung"
      Continue = False
    End If
  End If   
End Sub

Axel
Titel: Re: nach Fehlerbehandlung wieder in Dialogbox zurückkehren
Beitrag von: Werner Götz am 21.05.08 - 11:53:29
Sehe ich auch so, es muss aber wohl heissen:
If Not Source.DialogBoxCanceled Then

-Werner
Titel: Re: nach Fehlerbehandlung wieder in Dialogbox zurückkehren
Beitrag von: Axel am 21.05.08 - 11:56:51
Sehe ich auch so, es muss aber wohl heissen:
If Not Source.DialogBoxCanceled Then

Upps. Werner, du hast natürlich vollkommen recht. Sorry, da war ich zu schnell. Danke für die Korrektur.

Axel
Titel: Re: nach Fehlerbehandlung wieder in Dialogbox zurückkehren
Beitrag von: Bille am 21.05.08 - 13:41:40
Ja, Ihr habt recht. So ist das natürlich noch besser.
Danke!