Lotus Notes Help sagt:
Formelfelder werden verwendet, um eine Abonnementliste zu füllen, die mit der Datenbank "Headlines.nsf" (Schlagzeilen) zusammenarbeitet. Die Schlagzeilendatenbank wird als Homepage eines Notes Client verwendet. Diese Datenbank enthält die Funktion "Abonnements". Jeder Datenbankentwickler hat die Möglichkeit, eine Datenbank für Abonnements zu aktivieren. Wenn ein Benutzer eine Datenbank abonniert (indem er "Erstellen - Abonnement" wählt), wird eine Server-Task ausgelöst, die den Benutzer benachrichtigt, wenn ein für ihn interessantes Dokument in dieser Datenbank gespeichert wird. Die Kriterien, nach denen der Server sucht, sind in einem Formelfeld auf der Abonnementmaske enthalten. Obwohl Benutzer die Abonnementmaske in der Datenbank ausfüllen, die sie abonnieren möchten, werden die Abonnementdokumente in den Schlagzeilendatenbanken (die Vorgabe ist headlines.nsf) auf den lokalen Clients der Benutzer gespeichert.
Wenn Sie eine benutzerdefinierte Abonnementmaske für Ihre Datenbank erstellen möchten, können Sie mit der vorgegebenen Abonnementmaske namens $Subscription in der HEADLINES.NSF- oder HEADLINES.NTF-Datenbank beginnen, die zum Lieferumfang von Designer gehört. Kopieren und fügen Sie die Maske zunächst in Ihre Datenbank ein und passen Sie sie anschließend an. Wenn Sie eine Abonnementmaske anpassen, müssen Sie das Formelfeld verwenden. Das Formelfeld auf der $Subcription-Maske heißt $HLFormula und befindet sich im zweiten Register der Tabelle auf der rechten Seite der Maske. Das $HLFormula-Feld ist ein berechnetes Feld. Wenn das Formelfeld ein berechnetes Feld bleiben soll, schreiben Sie eine Formel, deren Auswertung eine Formel für eine Abonnementliste ergibt. Das Formelfeld muss eine Auswahlformel ergeben, mit der der Server die Abonnementkriterien des Benutzers abrufen kann.
Weiterhin können Sie für das Formelfeld auch die Option "Felder als Literale" im Register "Feld Info" der InfoBox "Eigenschaften: Feld" wählen. Wenn Sie die Option "Felder als Literale" wählen, programmieren Sie das Formelfeld so, dass es die eingegebene Formel akzeptiert, ohne sie zu kompilieren. Wenn Sie eine Formel in Worten ausdrücken, müssen die Feldreferenzen folgendermaßen lauten: Text, Textliste, Zahl, Zahlenliste, Datum, Datumsbereich oder Datumsliste. Wenn das referenzierte Feld ein anderer Feldtyp ist, wird es als Feldreferenz ausgelassen.
Folgendes Beispiel zeigt eine Formel eines Formelfelds, für das die Option "Felder als Literale" ausgewählt ist:
Select (Namen = TestNamen) & (Zahlen = TestNummern) & (Kategorien = TestKategorien)& (Daten = BspDaten)
Feld Wert
TestNamen "CN=Sandra Müller/O=Acme" : "CN=Elke Meier/O=Acme"
TestNummern 1: 2: 3
TestKategorien "München" : "Berlin" : "Frankfurt"
BspDaten [26.3.97]:[10.08.98]:[15.3.99]
Das Formelfeld wird somit folgendermaßen ausgefüllt:
Select (Namen = "Sandra Müller/Acme" : "Elke Meier/Acme" ) & (Zahlen = 1 : 2 : 3) & (Kategorien = "München" : "Berlin" : "Frankfurt") & (Daten=[26.3.97]:[10.08.98]:[15.3.99]
Wenn Sie die berechnete Option wählen, muss sich aus der von Ihnen eingegebenen Formel eine andere Formel ergeben. Dadurch haben Sie die Möglichkeit, komplizierte Formeln zu optimieren, bevor sie gespeichert werden. Nach der Auswertung der Formel wird die sich daraus ergebende Formel gespeichert.
Wenn die berechnete Formel ungültig ist, wird das Feld mit einem fehlerhaften Wert gespeichert. Es kann vorkommen, dass der Benutzer das Dokument nicht mehr schließen kann. Um zwischen einer erfolgreichen und fehlgeschlagenen Formelberechnung zu unterscheiden, sollten Sie im QuerySave-Ereignis testen, ob das Formelfeld tatsächlich eine Formel enthält. Ist dies nicht der Fall, ergab die Formelberechung eine ungültige Formel.
Ein berechnetes Formelfeld enthält beispielsweise folgende Formel:
TestNamen := "\"" + @Implode( TestNamen; "\" : \"") + "\"";
TestNummern := @Implode( @Text(TestNummern); " : ");
TestKategorien := "\"" + @Implode( TestKategorien; "\" : \"") + "\"";
"Select (Namen = " + TestNamen + ") & (Zahlen = " + TestNummern + ") & (Kategorien = " + TestKategorien + ")"
(Zu finden? Indexansicht in Help, "Formelfelder")