Das Notes Forum

Domino 9 und frühere Versionen => ND9: Entwicklung => Thema gestartet von: der busse am 11.01.19 - 14:25:31

Titel: Variablen/ @IF in Formula
Beitrag von: der busse am 11.01.19 - 14:25:31
Moin,

ich stehe gerade etwas auf dem Schlauch.
Ich will eine neue Schaltfläche in der Symbolleiste erstellen und per Formula Telefonnummern auslesen.
Das funktioniert auch soweit. Wenn ich aber in einer @IF-Abfrage genau das gleiche mache, dann geht es nicht.

 Form := @GetField("Form");
ATel := @GetField("OfficePhoneNumber");
@Prompt([Ok];"ATEL"; ATel);
@If(
Form = "Person";
BTel := @GetField("OfficePhoneNumber") & @Prompt([Ok];"BTEL";BTel);
@Nothing)


ATel ist definiert, BTel nicht.
Warum ist das so? Ich finde gerade keinen Grund.

Hintergrund wegen dem @IF ist einfach, daß ich diese Schaltfläche in verschiedenen Datenbanken nutzen möchte.
Die Telefonnummern könnte man in ein paar DBs aus anderen Feldern ziehen. Insofern würde ich dann gerne die Variable für die Telefonnummer je nach DB befüllen und dann weitere Aktionen zum Startvorgang des Wählens ausführen.
Oder wie würdet Ihr so eine IF-Schleife bauen?
Titel: Re: Variablen/ @IF in Formula
Beitrag von: Peter Klett am 11.01.19 - 14:49:23
BTel := @If (Form = "Person"; OfficePhoneNumber; "")

Und bei verschiedenen Forms

BTel := @If (Form = "Form1"; Feld1; Form = "Form2"; Feld2; "")
Titel: Re: Variablen/ @IF in Formula
Beitrag von: jBubbleBoy am 11.01.19 - 14:51:22
innerhalb der @if Funktion nimmt man diese Funktionen ;)
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_SET.html
https://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.1/basic/H_DO.html
Titel: Re: Variablen/ @IF in Formula
Beitrag von: ronka am 11.01.19 - 14:59:44
WENN du diesen Telefonnummer ein Feld zuweisen möchtest, dann fehlt dort noch ein stuckchen code.

mittels
FIELD Feldname := "Wert"
Oder innerhalb einen statement (z.B. @If )
@SetField( "Feldname", "Wert")

Sonnst macht den Formel brav zu ende, schreibt aber den ergebnisse im Nirvana, und das ist sicherlich nicht was du möchstest.
Titel: Re: Variablen/ @IF in Formula
Beitrag von: der busse am 15.01.19 - 17:57:36
Danke für die Antworten.

@Peter Klett : Die Idee hat was, dann könnte ich DBs, Forms usw. definieren und am Ende ein @DbLookup machen.
Muss ich mal mit etwas mehr Zeit als kurz vor Feierabend ausprobieren. ;)

@jBubbleBoy : OK. Wenn ich das richtig verstehe, soll Set die Variable setzen und Do sie mir auflösen.
Ich habe im If-Teil auch mal statt @Do(BTel) nur ein BTel rein geschrieben und das ging auch.

Test := 1;
BTEL := "Test";
@Prompt([Ok];"BTEL";BTel);
@If(
Test = 1;
@Set("BTel"; "Changed") & @Prompt([Ok];"BTEL"; @Do(BTel));
@Nothing);
@Return("")


@ronka: Ich will eigentlich nichts speichern, nur Telefonnummern auslesen und dann per @Command([Execute]; program; parameter) aufrufen. Und damit ich nur ein Icon zum Wählen habe, möchte ich mit dem @IF verschiedene Felder aus verschiedenen betroffenen DBs ziehen. Theoretisch könnte man das auch in ein Temporäres Dokument schreiben, aber das wäre wohl etwas hässlich.
Titel: Re: Variablen/ @IF in Formula
Beitrag von: jBubbleBoy am 16.01.19 - 08:16:54
nicht ganz ... denn diese Zeile:
Code
@Set("BTel"; "Changed") & @Prompt([Ok];"BTEL"; @Do(BTel));
sollte so aussehen - mit @do kann eine Liste von Ausdrücken ausgeführt werden:
Code
@Do( @Set("BTel"; "Changed");  @Prompt([Ok];"BTEL"; BTel) );
Titel: Re: Variablen/ @IF in Formula
Beitrag von: ronka am 16.01.19 - 22:37:37
Dann mal einen Frage anders herum...

Möchtest du das ICON aus der Smarticon liste ausführen ? Oder aus der Ansicht aktionen ?
Titel: Re: Variablen/ @IF in Formula
Beitrag von: der busse am 17.01.19 - 22:49:37
Naja, in meinem Notes heißt die Leiste Symbolleiste (also Universal, Adressen usw.), die man immer sieht.
Wenn es in einer DB wäre, würde ich vermutlich LotusScript nutzen und weniger leichte Verständnis-Probleme haben. ;)
Gibt aber vermutlich ein paar nützliche Sachen, die man zur Anzeige und Kleinigkeiten auch in Formula machen kann.

Deswegen will ich ja auch die Sache mit dem @IF machen, um nur ein Icon zum Wählen für Names, Mail, eigene DBs usw. z.B. in der Universal-Symbolleiste zu haben.
Das funktioniert ja nun auch dank @Set und @Do. Ich frage mich zwar etwas, warum das @DBLookup irgendwie nur nach Namen und nicht nach Email-Adressen suchen mag, aber dank @NamesLookup geht das auch und ich muss keine Suche in weiteren DBs dazu programmieren, wenn es keinen Treffer gibt. Insofern erst mal alles super.