Domino: Formelsprache und Feldwerte

Felder im aktuellen Dokument

Das Schlüsselwort FIELD wird genutzt, um einem Feld in einem Dokument einen Wert zuzuweisen. Das Feld wird in jedem Fall im Dokument gespeichert. Ein vorhandener Wert wird dabei überschrieben. Ist das Feld noch nicht

vorhanden, wird es erstellt. Im Unterschied dazu können Sie mit dem reservierten Wort Default ein temporäres Feld für den Zeitraum einer Berechnung in einem Dokument erstellen.

Im folgenden Beispiel wird dem Feld Status der Textwert Erledigt zugewiesen.

FIELD Status := "Erledigt";

Der Einsatz des reservierten Wortes Field unterliegt der Einschränkung, dass es nicht innerhalb von @Funktionen eingesetzt werden kann. Für derartige Anwendungsfälle steht Ihnen die Funktion @SetField zur Verfügung, deren Funktionsumfang ansonsten dem von Field entspricht. Die Funktion im Beispiel:

Temp := @Prompt([YesNo];"Reservierung"; "Wollen Sie das Zimmer reservieren?");
@If(Temp=1; @SetField("Reserviert"; "Reserviert");
@SetField("Reserviert"; "Zimmer frei"));

Die Formel wird beim Betätigen einer Schaltfläche ausgeführt. Der Anwender kann in einem Ja/Nein-Dialog entscheiden, ob er ein Zimmer reservieren möchte. Klickt er auf Ja (Rückgabewert 1), wird über die Funktion @SetField die Zeichenfolge Reserviert eingetragen, andernfalls Zimmer frei.

Mit der Funktion @Set besitzt @SetField ebenfalls ein Pendant zum Zuweisen temporärer Werte.

Neu seit der Version 6 ist die Funktion @Get-Field. Sie ermöglicht das Auslesen eines Feldwerts im aktuellen Dokument. Besonders praktisch ist dabei der Umstand, dass Sie als Feldname eine berechnete Zeichenkette übergeben können. Somit ist es möglich, die Werte mehrerer Felder, welche über einen gemeinsamen Wortstamm verfügen, innerhalb einer Schleife auszuwerten.

Existieren beispielsweise in einer Maske die Felder Monat_1, Monat_2 bis Monat_12, können Sie die Gesamtsumme der einzelnen Felder über eine Schaltfläche mit folgender Formel in das Feld Jahreswert eintragen lassen:

temp := 0;
@For(
n := 1;
n < 13;
n := n + 1;
temp := temp + @GetField("Monat_"+@Text(n)));
@SetField("Jahreswert"; temp);

Bei der Anwendung der Funktion sind zwei Besonderheiten zu beachten: Zum einen gibt die @Funktion für den Fall, dass das angegebene Feld nicht vorhanden ist, eine leere Zeichenfolge zurück. Zum zweiten liefert sie für Felder mit der aktivierten Eigenschaft Mehrfachwerte zulassen nur den ersten Wert.