Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: macom111 am 15.09.03 - 13:50:48
-
Hallo zusammen,
habe folgendes Problem: Ich habe ein Feld Namens "Firma" vom Typ "Dialogliste". Diese Liste enthält unter anderem den Namen "PC-Spezialist". Dazu habe ich ein weiteres Textfeld (berechnet) angelegt und bei "Wert" folgende Formel eingetragen:
@If(Firma = "PC-Spezialist"; "Hinweis: RechnungsNr entspricht SerienNr !";NULL).
In der Maske habe ich "Felder automatisch aktualisieren" angehakt.
Wenn ich jetzt aus der Dialogliste "PC-Spezialist" wähle und ins nächste Feld wechsle, wird der Hinweis auch angezeigt. Wähle ich aber einen anderen Namen und will ins nächste Feld wechseln kommt folgende Fehlermeldung:
Feld enthält falschen Wert
"Feld hat Validierungsformel nicht entsprochen".
Wie kann ich diese Meldung für alle anderen Namen vermeiden? Denn der Hinweis soll eben nur für "PC-Spezialist" angezeigt werden! Ich kann auch erst wieder ins nächste Feld wechseln, wenn ich wieder "PC-Spezialist" gewählt habe.
???
Siggi
-
Was soll denn NULL sein ?
Setzt statt dessen einen Leerstring "" ein.
Bernhard
-
NULL durch "" ersetzen ;)
-
Laut meinen Unterlagen bewirkt NULL, daß die Funktion keine Aktion ausführt. Alternativ kann ich auch eine leere Zeichnekette ("")zurückgeben.
Funktioniert aber auch nicht!
???
Siggi
-
Was hast Du denn für Unterlagen ? Ausserdem würdest Du damit ja einem Textfeld eine "Nee-lass-man-sein-Aktion" übergeben - was sollte Notes denn dann im Textfeld anzeigen ?
Man muss sich immer mal wieder in die Lage vom armen Notes hineinversetzen ;-)
Abgesehen davon: Mit einem Leerstring statt NULL kann ich keinen Grund mehr erkennen, warum Deine Formel nicht funktionieren sollte.
By the way: Die zweite Meldung "Feld hat Validierungsformel nicht entsprochen" deutet darauf hin, daß auch im QuerySave / PostRecalc noch Code drinsteckt. Kann das sein ?
Bernhard
-
Was meinst du mit
"deutet darauf hin, daß auch im QuerySave / PostRecalc noch Code drinsteckt."
Tut mir leid, wenn ich´s nicht verstehe... bin wirklich Anfänger.
Und wenn ich mir die anderen Fragen uind Antworten so durchsehe, verstehe ich oft nur Bahnhof!
???
Siggi
-
Was meinst du mit "deutet darauf hin, daß auch im QuerySave / PostRecalc noch Code drinsteckt."
Ist das eine Applikation, die Du ganz alleine geschrieben hast?
Bekommst Du eine oder zwei Fehlermeldungen?
Und: Wenn Du Bahnhof verstehst, dann frag' einfach konkret nach. Nur dann können wir Dir helfen.
Ciao,
Bernhard
-
Hallo Berhard,
habe den Fehler soeben gefunden. Hatte im Feld "Firma" in der Eingabevaliderung (damit hab ich´s am Anfang versucht) noch eine Formel stehen, die sich mit der richtigen Formel wohl nicht ganz vertragen hat. Jetzt funktioniert´s sowohl mit " " als auch mit NULL.
Zu meinen Unterlagen:
Habe unter anderem "Lotus Notes Domino R5 für Windows - Datenbankentwicklung 1" vom Herdt-Verlag. Finde ich für Anfänger sehr gut!
Ein Beispiel zu NULL:
@If(RückgabeDatum > @Today; "Rückgabe anfordern"; NULL)
Erklärung:
Die Vorgabevalidierung NULL bewirkt, daß die Funktion keine Aktion ausführt. Alternativ können Sie auch eine leere Zeichenkette (" ") verwenden.
:D
Siggi
-
Hi Sigi,
das ist mir auch neu mit NULL, muss ich direkt mal testen.
Das ganze "Query Save", "Post Recalc" etc. sind die Eigenschaften der Maske.
Scrolle mal im Designer im Frame unten link ganz hoch (also oberhalb den Feldern), da findest du diese.
Was sie bedeuten: am besten in der Designerhilfe nachsehen. Grob gesagt: der Code der darin steht wird ausgeführt, wenn eben die Überschrift zutrifft. Also "Query Save" -> vor dem Speichern etc.
Ich behaupte jetzt aber mal, ganz am Anfang solltest Du Dich damit noch nicht all zu sehr beschäftigen.....
TMC
-
Hallo, Siggi,
die Eingabevalidierungsformel erklärt dann m.E. auch die von Dir genannte Fehlermeldung. Vergiss also meine Fragen, es sei denn, die DB hast Du "geerbt" und sollst sie weiter entwickeln.
Deine Unterlagen sind nicht zu bemäkeln - ausser, daß der Datentyp "NULL" wohl gar nicht erklärt wurde. Für die Formelsprache: Vergiß ihn einfach, er taugt dort nix. Ersetze solche Bezüge einfach durch einen Leerstring - in 99% der Fälle bist Du da auf dem richtigen Dampfer. Selbst für ein Datumsfeld kannst Du per Formel den Inhalt auf "" setzen - in Formelsprache heisst dies einfach: "Das ist NIX".
NULL ist ein handle ins Nirwana ... Und das ist schwer zu handhaben.
HTH,
Bernhard
-
Statt NULL hättest Du auch WILLI nehmen können. Das ist halt die implizite Zuweisung der Formelsprache: Zuerst wird eine Variable namens NULL (oder WILLI) in dem Code gesucht. Falls diese Variable nicht gefunden wird, wird ein Feld namens NULL (WILLI) gesucht. Wenn das auch nicht vorhanden ist, denkt die Formelsprache (ja, die denkt !!! ;-) ): Ach, dann ist das wohl "".
Soviel dazu.
Andreas
-
@All,
danke für Eure Hilfe und Tips!
:D
Siggi
-
Also, wenn ich nicht blind bin wie ein Grottenolm: NULL wäre der Bezug auf einen Feldnamen. Funktionieren würde nur @NULL - und die @function gibt es nicht.
Siggi - frag' weiter, wenn's geht, antworten wir weiter asap, aber versprechen könne wir nix versprechen tun ;-)
Bernhard
PS: Bei "Bahnhof": Gleich nachfragen !