Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: bws am 26.04.05 - 13:08:35

Titel: Validierungsformel in Datumsfeld
Beitrag von: bws am 26.04.05 - 13:08:35
Hallo,
ich habe in meiner Maske ein Datumsfeld (EmpBeginDate), beim speichern soll geprüft werden, ob ein Datum eingegeben ist und ob das eingegebene Datum 2 Tage in der Zukunft liegt. Leider kommt immer folgende Fehlermeldung beim speichern:

---Feld hat nicht der Validierungsformel entsprochen---

Die Meldung kommt auch wenn das richtige Datum im Feld steht.
Ich habe folgende Formel bei der Eingabevalidierung stehen:

@If(@ThisValue=NULL;
@Failure("Um den Mitarbeiter korrekt anlegen zu können geben Sie bitte das Eintrittsdatum an");
EmpBeginDate<@Tomorrow;
@Failure("Das Eintrittsdatum muss mind. zwei Werktage in der Zukunft liegen!");
@Success)

Danke für eure Hilfe im Voraus
Martin
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: koehlerbv am 26.04.05 - 13:12:26
Die Fehlermeldung beim Speichern weist zunächst erstmal darauf hin, dass sich im QuerySave noch auszuführender Code befindet - dieser sollte auch Validierungsfehler abfangen.

Die Formel sollte lauten:
@If (!@IsTime (EmpBeginDate);
@Failure("Um den Mitarbeiter korrekt anlegen zu können geben Sie bitte das Eintrittsdatum an");
EmpBeginDate<@Tomorrow;
@Failure("Das Eintrittsdatum muss mind. zwei Werktage in der Zukunft liegen!");
@Success)

HTH,
Bernhard
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Thomas Schulte am 26.04.05 - 13:19:50
noch so ein Crossposter  :-[

http://www.spotlight.de/nzforen/lts/m/lts-1114513506-10653.html
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: koehlerbv am 26.04.05 - 17:02:38
Crossposting ist ja wohl nicht das einzige Problem, das der/die/das "bws" hat - wenn man dem Link zu Spottlicht mal folgt.

Und NULL ist in Formelsprache kein reserviertes Schlüsselwort mit der Bedeutung wie beispielsweise in LS. Der Vergleich
@If(@ThisValue=NULL; ...
vergleicht den Inhalt des aktuellen Feldes mit dem des Feldes oder der temp. Variablen namens NULL. Da es diese in der Regel nicht gibt, entspricht der Vergleich diesem hier:
@If(@ThisValue = ""; ...

Bernhard
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Semeaphoros am 26.04.05 - 17:19:25
Allerdings, Martin, nebst dem, dass Du die Forumsregeln (siehe Button oben), denen Du beim Registrieren ausdrücklich zugestimmt hast, nicht beachtest, hast Du Dich mit einem absoluten Profi eingelassen .... nebst der eher unhöflichen Ausdrucksweise hinterlässt das einen ausgesprochen schlechten Eindruck. Bleibt für Dich zu hoffen, dass Dein Brötchengeber oder Deine Kunden den Thread in Spot(t)light nicht zu sehen bekommen ....
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: DaWutz am 26.04.05 - 18:00:33
Dazu aber noch eine Frage / Anmerkung:

Ich hab mir interessehalber grade mal einen Agenten gebaut mit folgendem Code:

tmp := @Prompt([OkCancelEdit];"Test";"Hier was eingeben:";"Text");

@If(tmp=NULL;@Prompt([Ok];"";"Leeres Eingabefeld");@Prompt([Ok];"";"Eingegebener Wert: " + tmp));

Der funkt "zuverlässig". Also wenn die tmp-Variable "" ist (in dem Fall also NULL) dann springt der Agent immer in das "Leere Eingabefeld".

Wenn ich statt tmp_NULL ein @IsNull(tmp) einsetze auch. Ist das nun Zufall, oder einfach undokumentiert (ich hab auf jeden Fall nix in der Hilfe gefunden - nur im Bezug auf NULL und LS)?
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Thomas Schulte am 26.04.05 - 18:06:34
Definier doch einfach mal vorne dran
NULL := "EinWert"
und schau nach was dann passiert.  8)

Die Erklärung dazu hat Bernhard ja schon gegeben.
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: koehlerbv am 26.04.05 - 18:09:14
Nun, der Inhalt der Variablen "NULL" ist nix - die gibt es ja gar nicht. Die Formelsprache interpretiert das immer als "" (das ist ja auch bei einem leeren Datums-/Zeitfeld so).

@IsNull macht selbiges - es läuft also immer auf den Vergleich zwischen tmp-Inhalt und "" hinaus.

Ganz sauber ist das natürlich nicht, da NULL ja an sich nicht unbedingt was mit einem Leerstring zu tun hat.

Bernhard

PS: @Thomas - genau das ist der Beweis, wenn man sich von der Bedeutung von "NULL" in Formelsprache überzeugen will. Vice versa kann man das dann mal mit LS probieren (oder vielen anderen Programmiersprachen)  ;D
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Thomas Schulte am 26.04.05 - 18:10:28
Nur Martin rührt sich nimmer  ;D
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: DaWutz am 26.04.05 - 18:19:20
Ok, nun hab auch ich das verstanden.

Weil NULL in meinem Beispiel nicht definiert ist, ist sein Wert beim Aufruf in dem @if auch gleich NIX, daher funkt das.

Über die Sache mit dem Leerstring bin ich bei meinem ersten Posting auch schon gestolpert. Null ist ja NIX, während "" ein leerer String ist
(OT: Ist ein "leerer String" also die freundlichere Umschreibung für "Keinen Arsch in der Hose haben"?  ;D)
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Thomas Schulte am 26.04.05 - 18:21:21
Kann man so sagen
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: koehlerbv am 26.04.05 - 18:30:24
Ist ein "leerer String" also die freundlichere Umschreibung für "Keinen Arsch in der Hose haben"?

Wenn demnächst mal jemand "Du alter Leerstring !" sagt, dann weiss ich Bescheid  ;D

Bernhard
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Semeaphoros am 26.04.05 - 19:04:44
Nur Martin rührt sich nimmer  ;D

Wundert Dich das?
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Thomas Schulte am 26.04.05 - 19:10:26
Nur Martin rührt sich nimmer ;D

Wundert Dich das?
Nein, eigentlich nicht.  ::)
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Axel am 26.04.05 - 19:40:52
Hi,

ich hab' mir mal die Postings in Spot(t)light durchgelesen. Mein lieber Mann, der muss wohl mit der Enterprise durch die Kinderstube gerast sein. Wo lernt man denn solche Umgangsformen?

Axel
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Semeaphoros am 26.04.05 - 20:12:16
Allerdings!
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: Glombi am 26.04.05 - 21:31:01
Genau
+1

Die Antworten in Spottlight sind ja auch nicht das Gelbe vom Ei, oder?

Andreas
Titel: Re: Validierungsformel in Datumsfeld
Beitrag von: koehlerbv am 26.04.05 - 22:32:59
Das ist halt Spottlight ... Solche "Parties" sind da ja nicht gerade die Ausnahme.

Die richtigen Antworten hat's jedenfalls hier gegeben - inclusive tiefschürfender weiterführender Analyse und Spottlight-Manöverkritik  ;D

Bernhard