Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: ReiTho am 02.12.05 - 08:41:30

Titel: @Prompt
Beitrag von: ReiTho am 02.12.05 - 08:41:30
Habe folgendes Problem:

Ein Feld in meinem Formular ist als Typ Names und Editable, als Choices habe ich Use Address dialog for choice. Dieses Feld ist ein Mussfeld. Mit @Failure oder @Promt([OKCancelEdit]; geht des nicht so richtig. Wie kann ich elegant Abfangen wenn nichts ausgewählt wurde? Eventuell mit der @DoWhile Funktion?
Titel: Re: @Prompt
Beitrag von: diali am 02.12.05 - 08:52:22
mit @If, @ThisValue, @Failure und @Success sollte es machbar sein.

In etwa so:
@If(@ThisValue = ""; @Failure("Es muss etwas eingetragen werden!"); @Success)
Titel: Re: @Prompt
Beitrag von: MadMetzger am 02.12.05 - 08:52:39
Du musst für diesen Fall eine Formel in der Eingabevalidierung des Feldes schreiben. Für ein leeres Feld sollte die in etwa so aussehen:

@If ( DeinFeld = "" ; @Failure("Fehlermeldung");@Success)

EDIT: Doppelt hält besser...
Titel: Re: @Prompt
Beitrag von: Thomas Schulte am 02.12.05 - 08:53:57
Wo hast du da ein Problem. Dazu gibt es die Input Validation und da stellst du einfach ein @if(Feld = "";@Failure("Blabla");@success)

Drei Einschläge pro Minute. Da soll noch einmal einer Sagen hier wird nicht geholfen.
Titel: Re: @Prompt
Beitrag von: ReiTho am 02.12.05 - 09:04:06
Ich hab ja auch schon die @If Abfrage mit @Failure in der Feldvalidierung gemacht, aber wenn dann der Fehler abgefangen ist, wird ja schon die nächste Validierungsformel im Formular abgefragt. Er sollte das aber eigentlich nicht machen, sondern so lange auf die richtige Eingabe im Feld bestehen bis die Condition true ist.
Titel: Re: @Prompt
Beitrag von: MadMetzger am 02.12.05 - 09:11:03
Dann solltest du eine zentrale Validierung, z.B. im QuerySave, durchführen, die immer erst das nächste Feld validiert, wenn das vorhergehende korrekt ist. Ist ein Feld nicht korrekt,  so wird in das betreffende Feld gesprungen. Wahrscheinlich musst du dann aber Skript benutzen...
Titel: Re: @Prompt
Beitrag von: diali am 02.12.05 - 09:27:56
mit @Failure kommst du nicht über das Feld, ohne die richtigen Einträge gemacht zu haben. Im QuerySave braust du da nix zu machen.

Ich persönlich halte nicht viel von den @Failure-Orgien in einem Dokument, da verliert der Anwender irgendwann die Lust, deshalb prüffe ich alle Felder im QuerySave und bringe dann nur einen Dialog, der alle fehlerhaften Felder aufführt und springe ins 1. fehlerhafte Feld.
Titel: Re: @Prompt
Beitrag von: ReiTho am 02.12.05 - 09:33:54
QureySave hört sich gut an, nur ich kann noch nicht scripten... :'(
Titel: Re: @Prompt
Beitrag von: ReiTho am 02.12.05 - 10:11:56
ich glaub ich werds mit ViewRefreshFields machen und erst dann Speichern zulassen.
Titel: Re: @Prompt
Beitrag von: Thomas Schulte am 02.12.05 - 10:21:17
mit @Failure kommst du nicht über das Feld, ohne die richtigen Einträge gemacht zu haben. Im QuerySave braust du da nix zu machen.

Ich persönlich halte nicht viel von den @Failure-Orgien in einem Dokument, da verliert der Anwender irgendwann die Lust, deshalb prüffe ich alle Felder im QuerySave und bringe dann nur einen Dialog, der alle fehlerhaften Felder aufführt und springe ins 1. fehlerhafte Feld.

In !!Help!! gibt es dazu eine komplett konfigurierbare InputValidation. Die auch noch relativ einfach in andere Datenbanken einbindbar ist.