AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
23.10.19 - 17:09:00
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 9
| |-+  ND9: Entwicklung (Moderatoren: Axel, eknori, Thomas Schulte, koehlerbv, m3)
| | |-+  Variablen/ @IF in Formula
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: Variablen/ @IF in Formula  (Gelesen 1254 mal)
der busse
Frischling
*
Offline Offline

Beiträge: 25


« 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?
Gespeichert
Peter Klett
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 2618



« Antworten #1 am: 11.01.19 - 14:49:23 »

BTel := @If (Form = "Person"; OfficePhoneNumber; "")

Und bei verschiedenen Forms

BTel := @If (Form = "Form1"; Feld1; Form = "Form2"; Feld2; "")
Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1118



« Antworten #2 am: 11.01.19 - 14:51:22 »

innerhalb der @if Funktion nimmt man diese Funktionen Wink
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
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.8
--
Nur ein toter Bug, ist ein guter Bug!
ronka
Aktives Mitglied
***
Offline Offline

Beiträge: 239


Was macht der hier denn, muß der überall sein ?


WWW
« Antworten #3 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.
Gespeichert

das neueste von Domino 10 auf den AdminCamp in September -> www.AdminCamp.de
der busse
Frischling
*
Offline Offline

Beiträge: 25


« Antworten #4 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. Wink

@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.
Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 1118



« Antworten #5 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) );
Gespeichert

Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und DomNav 2.5 / NSE 0.8
--
Nur ein toter Bug, ist ein guter Bug!
ronka
Aktives Mitglied
***
Offline Offline

Beiträge: 239


Was macht der hier denn, muß der überall sein ?


WWW
« Antworten #6 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 ?
Gespeichert

das neueste von Domino 10 auf den AdminCamp in September -> www.AdminCamp.de
der busse
Frischling
*
Offline Offline

Beiträge: 25


« Antworten #7 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. Wink
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.
Gespeichert
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: