Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TMC am 21.08.03 - 21:54:48

Titel: Pflichtfeld-Abfrage beim speichern
Beitrag von: TMC am 21.08.03 - 21:54:48
Hi,

die Frage war hier schon öfters lt. Suche, allerdings die Lösungen nichts für mich.

Klar kann man beim Speichern abfragen mit 'Input Validation' z.B.
@If(Subject = "";@Failure("Please enter a subject!");@Success)

Das hat aber (1) einen Schönheitsfehler: der Speicherrequester kommt dann nochmal, wenn z.B. ein Button "Speichern und schließen" angeklickt wird, in dem steht
@Command([FileSave]);
@Command([FileCloseWindow])


Und (2) ist es super umständlich, jedes Feld anzuklicken, Code einfügen, anpassen etc.

Schöner wäre ja eine generelle Scriptlösung....

Hat da keiner eine Lösung?

bye,
TMC
Titel: Re:Pflichtfeld-Abfrage beim speichern
Beitrag von: ata am 21.08.03 - 22:20:15
... ich pflege 3 Arrays - Feldnamen, Beschreibung und Datentyp
... im QuerySave der Maske lasse ich die Feldnamen überprüfen
... wenn eines leer, dann Continue = False und die entsprechende Meldung...

meinst du etwas in der Art?

ata
Titel: Re:Pflichtfeld-Abfrage beim speichern
Beitrag von: TMC am 21.08.03 - 22:24:05
Hi Ata,

hört sich interessant an  :)

Wenn Du einen Beispielcode noch hättest wäre prima, ansonsten schau ich mal selber, schätze soo schwierig wird das nicht sein.

Aber eben mit einem Beispiel wäre es noch einfacher für mich  :D

Danke jedenfalls für den Tipp!

bye,
TMC
Titel: Re:Pflichtfeld-Abfrage beim speichern
Beitrag von: TMC am 21.08.03 - 22:28:24
Nachtrag:

Und interessant zu wissen wäre es noch, wie man es dann steuert, dass die Abfrage nicht 2mal stattfindet bei Buttonclick auf "
@Command([FileSave]);
@Command([FileCloseWindow])
"

TMC
Titel: Re:Pflichtfeld-Abfrage beim speichern
Beitrag von: Axel_Janssen am 21.08.03 - 22:29:15
zu 1)
gibt es den Trick @if(@Command([FileSave]);
@Command([FileCloseWindow]);"");

klappt weil der @command FileSave einen boolean Wert zurückgibt. Das übersieht man leicht.

zu 2) Das hast du richtig erkannt. Dafür gibt es frameworks. Allerdings ist Feld-Validierung ein überraschend weites Feld. Es gibt Mehrwertfelder. Datumsfelder die nur in einer bestimmten Date-Range liegen dürfen. Möglicherweise noch in Abhängigkeit von einem anderen Feld... und vieles andere mehr. Diese Details der Business-Logik blasen dann das schönste Framework auf.
 
Gruß Axel

Titel: Re:Pflichtfeld-Abfrage beim speichern
Beitrag von: TMC am 21.08.03 - 22:34:33
cool, danke auch schonmal für Tipp (1) Axel  :)

Muss ich dann mal testen (leider erst morgen möglich)....

Zu (2): Ein Ansatz / Beispiel wäre trotzdem mal prima, um das zu testen.
Ich fände es sehr praktisch, alle Felder übersichtlich zu sehen in einem Script etc. und jew. nur die Flags anzupassen....

TMC
Titel: Re:Pflichtfeld-Abfrage beim speichern
Beitrag von: Axel_Janssen am 21.08.03 - 23:19:55
o Mann  >:(

Das ist jetzt aber die Billiglösung anhand 2er Felder und ich teste das nicht. Vermutlich sind da noch Fehler drin. Passe die Feldnamen an deine Gegebenheiten an und tue den code ins querySave der Maske.



Code
Sub Querysave(Source As Notesuidocument, Continue As Variant)
   
   On Error Goto Fehler
   
   Dim docThis As NotesDocument
   Dim errorMsg As String
   Dim nl As String
   Dim hasError As Integer
   Dim i As Integer
   Dim strFelder(1) As String
   Source.refresh
   Set docThis = Source.Document
   hasError = False
   errorMsg = ""
   nl = Chr$(13) & Chr$(10)
   
   strFelder(0) = "aTest1"
   strFelder(1) = "aTest2"
   
   For i = 0 To Ubound(strFelder)
      If Trim(docThis.getItemValue (strFelder(i))(0)) = "" Then
         errorMsg = errorMsg & |Feld "| & strFelder(i) & |" ist nix drin| & nl   
         If hasError = False Then
            Source.GotoField(strFelder(i))
            hasError = True
         End If
      End If   
   Next
   
   If (hasError) Then
      Msgbox errorMsg ' gibt noch eine Reihe nützlicher Parameter in messagebox
      Continue = False
   End If
   
   Exit Sub
   
Fehler:
   Msgbox ": Fehler:" & Error$ & "(" & Cstr(Err) & ") in Zeile " & Cstr (Erl)
   Exit Sub
End Sub


hab doch getestet.
Titel: Re:Pflichtfeld-Abfrage beim speichern
Beitrag von: TMC am 22.08.03 - 16:37:24
Supi, vielen Dank Axel, klappt prima und hat mir sehr geholfen!!!
 :) :) :)

bye,
TMC