Domino 9 und frühere Versionen > Entwicklung

Feld vom Typ Formel

<< < (2/2)

pippo:
Hallo,

erstmals danke für die schnelle Hilfe,

kannst Du mir ein praktisches Beispiel sagen, wo die verwendung Sinn hat

Grüße, Pippo

Rob Green:
die Antwort steht oben :Wenn ein Benutzer eine Datenbank "abonniert" (durch Ausfüllen und Speichern der Abonnementmaske in der Datenbank), 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....

einfacheres Beispiel, wenn es unklar ist:
Userin sagt sich: "ich bin geil auf "Sahnekuchen". Überall in den 2000 Notes Datenbanken, wo ein Dokument mit dem Begriff Sahnekuchen eingestellt wir, möchte ich eine Info haben. "

Damit das überhaupt klappt, muß der Entwickler Formelfelder in den zu überwachenden Forms, auf den die Docs basieren, eingebaut haben. Also ein stinknormaler Push Ansatz. Nur, ich kenne keinen, der das jemals verwendet hat.

pippo:
Hallo,

man kann es auf 2 Arten nützen. Mich interessiert Typ 2.

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 + ")"


Grüße, Pippo

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln