Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: macom111 am 20.11.04 - 19:37:28

Titel: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: macom111 am 20.11.04 - 19:37:28
Hallo zusammen,

Ich habe 2 Felder - Berarbeiter1 (Typ = Kontrollkästchen)
                   User 1 (Typ = Namen).

Folgende Bedingung soll erfüllt sein:
Wenn im Feld User1 ein Name drinsteht, soll beim Speichern im Feld Bearbeiter1 ein x gesetzt werden.
Habe es unter anderm so versucht:
Field Bearbeiter1 := Bearbeiter1;
@If (User1 != ""; @SetField ("Bearbeiter1"; "x"))

Beim Versuch die formel zu Speichern kommt der Fehler „If erfordert eine ungerade Anzahl von Argumenten“ -  was ich ja verstehe.
Hänge ich noch eins dran, heißt es: „Zuviele Argumente für eine @ Funktion.
Wo liegt der Fehler?

Gruß Siggi
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: TMC am 20.11.04 - 19:46:25
@If (User1 != ""; @SetField ("Bearbeiter1"; "x"))

Auf die Schnelle:

Gliedere den Sourcecode besser.

Schreib z.B. mal so:
Code
@If(
     User1 != "";
         @SetField ("Bearbeiter1"; "x")
)

Und da sieht man: Es fehlt eine Bedingung. @If kann zwar jetzt was machen wenn User1 != "", aber was soll @If machen, wenn User1 leer ist? Das muss auch noch angegeben werden.

Also:
Code
@If(
     User1 != "";
         @SetField ("Bearbeiter1"; "x");
     ""
)
"" bedeutet hier, wir machen nix, wenn das Feld User1 leer ist.
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: koehlerbv am 20.11.04 - 19:51:38
Oder noch übersichtlicher: Pack den Code gleich in die Formel für Bearbeiter1:
@If (User1 != ""; "x"; "")

Vollkommen abgesehen davon - zumindest jede etwas längere Formel sollte man wie von Matthias perfekt beschrieben ordentlich gliedern.

Bernhard
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: macom111 am 20.11.04 - 22:47:42
Also:
Code
@If(
     User1 != "";
         @SetField ("Bearbeiter1"; "x");
     ""
)
"" bedeutet hier, wir machen nix, wenn das Feld User1 leer ist.

Ich Dödel hatte das letzte Argument in die Klammer geschrieben
@SetField ("Bearbeiter1"; "x"; " "))

Werde mir eine bessere Gliederung angewöhnen.
Allerdings wird bei beiden Formeln das x beim Speichern immer gesetzt, egal ob im Feld User1 was drinsteht od. nicht. Eine Idee?

Gruß Siggi

Zitat
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: koehlerbv am 20.11.04 - 23:39:01
Allerdings wird bei beiden Formeln das x beim Speichern immer gesetzt, egal ob im Feld User1 was drinsteht od. nicht. Eine Idee?

Jo. Jetzt würde ich mal die Erfüllung der Bedingung überprüfen. Wenn das "x" immer eingetragen wird, liegt das bei Dir. Ohne Frage.

Bernhard
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: macom111 am 21.11.04 - 17:44:22
Hab den Fehler gefunden.

Formel wie gehabt: @If (User1 != ""; "x"; "").
Aber: Wenn bei != "" die beiden Anführungszeichen mit Lerstelle " " geschrieben werden, wird automatisch immer ein x gesetzt.
Beim letzten Argument spielt es keine Rolle.
Kann mir das bitte einer Erklären?

Gruß Siggi
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: koehlerbv am 21.11.04 - 19:23:48
Du meinst: "" != " " ?
Bzw.
@If (User1 != " "; "x"; "") ist nicht das selbe wie
@If (User1 != ""; "x"; "")

Das ist nicht jetzt Dein Ernst, oder ? Ich muss Deine Frage missverstanden haben. Da bin ich fest davon überzeugt.

Bernhard
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: macom111 am 21.11.04 - 19:45:53
Es ist mein Ernst.
Ich hab´s mehrfach getestet.
Habe mir extra eine TestDB mit neuen Feldern angelegt; auch hier das gleiche.
Nochmal: != "" - Funktioniert.

                != " " - das x wir automatisch gesetzt.

Meine Frage war folgende:
Wenn im Feld User1 ein Name drinsteht, soll beim Speichern im Feld Bearbeiter1 ein x gesetzt werden. Also: Wenn kein Name drinsteht, soll beim Speichern auch kein x gesetzt werden.

Die Formel @If (User1 != ""; "x"; "") steht im Feld Bearbeiter1 in der Eingabeumsetzung.

Ich dachte auch, daß hier die Schreibweise "" od. " " keine Rolle spielt.

Gruß Siggi
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: koehlerbv am 21.11.04 - 19:55:54
Siggi, jetzt musst Du aber wirklich was für Basics tun. Das hat auch überhaupt nichts mit Notes zu tun.

Ganz vereinfacht ausgedrückt:
Ein String "" enthält genau eine Information: Länge = 0
Ein String " " enthält neben der Information Länge = 1 ein Zeichen, nämlich das Leerzeichen mit dem ASCII-Wert 32.
Aus dem gleichen Grund ist auch "a" nicht das selbe wie "A" und so weiter.

Und Du vergleichst "" mit " " (siehe document properties), und das ist genauso unterschiedlich wie "öldfgjös" und "zuü3432hqwer".

Bernhard
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: Semeaphoros am 21.11.04 - 21:12:21
Ja, Siggi, da muss ich Bernhard wirklich völlig zustimmen, das ist Basiswissen, das zwar manchmal etwas undurchsichtig erscheint, aber für ein wirklich greifendes logisches Denken ist das, was Bernhard da mit schönen Beispielen gesagt hat, eine absolute Notwendigkeit.
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: macom111 am 21.11.04 - 22:46:04
Kein Kommentar, aßer: Ich hatte nie Basic.
Habe den kurzen Einführungskurs aber trotzdem verstanden.
Bin jetzt deprimiert. Bitte spart euch weiter Kommentare.
 :P :-[ :-X :'(

Gruß Siggi
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: koehlerbv am 21.11.04 - 22:59:55
Bitte erlaube mir trotzdem einen kurzen Kommentar:
"Basics" meinte nicht die Programmiersprache "BASIC" (Beginners All Surpose Instruction Code), auf der ja letztendlich auch LotusScript (oder VisualBasic oder VisualBasic for Applications VBA aufsetzt). Dein gerade aufgetauchtes Problem gilt für alle und jede Programmiersprache - eine Ausnahme ist mir da nicht bekannt.

A-Bär: Deprimiert musst Du nicht sein. Versuch' einfach (okay, einfach ist es nicht, aber es geht absolut nicht anders) wie die Maschine zu denken (okay, die Maschine "denkt" nicht - das ist Dein (unser Privileg - glücklicherweise !): Es gibt nur 0 und 1, wahr und falsch. Übel für das normale Leben, aber notwendig für die Programmierung.

Bleib' am Ball, sei nicht deprimiert. Wir helfen gerne !
Gute Literatur wäre jetzt angesagt, aber mir fällt gerade dazu nix ein.
Cryptonomicon (http://www.amazon.de/exec/obidos/ASIN/344254193X/qid=1101074156/sr=1-1/ref=sr_1_10_1/302-1255070-8033630)
wäre etwas, das beleuchtet, wie solche Leute wie Programmierer ticken (müssen). Aber vielleicht setzt auch das zuviel voraus. Ich weiss es nicht. Aber eher nicht - es ist ein Buch über Leute, die das Leben und die kalte Logik unter einen Hut bringen.
Wenn ich etwas passendes finde, werde ich es posten. Versprochen.

Bernhard
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: Semeaphoros am 22.11.04 - 11:58:05
Schliesse mich den Aussagen von Bernhard vollkommen an. Kein Grund für Depressionen, sondern eine Motivation, Lücken zu füllen. Auch ich kann mit Literatur im Moment nicht weiterhelfen, werde aber ebenfalls mal die Augen offen halten.
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: jokky am 11.12.08 - 11:32:00
Du meinst: "" != " " ?
Bzw.
@If (User1 != " "; "x"; "") ist nicht das selbe wie
@If (User1 != ""; "x"; "")

Das ist nicht jetzt Dein Ernst, oder ? Ich muss Deine Frage missverstanden haben. Da bin ich fest davon überzeugt.

Bernhard
Titel: Re: Kontrollkästchen beim Speichern mit x ankreuzen.
Beitrag von: Axel am 11.12.08 - 15:02:17
... und was willst du uns jetzt damit sagen ??


Axel