Startseite > Lotus Formula , Lotus Notes-Lösung , Lotus Notes-Tutorial , Notes-Designer > Entfernen ungültiger Untergeordnete Schlüsselwortwerte in Lotus Notes Feld

Entfernen ungültiger Untergeordnete Schlüsselwortwerte in Lotus Notes Feld

Ich weiß, der Titel dieser Spitze nicht viel bedeutet. Aber ich konnte nicht kommen mit einem aussagekräftigen Titel in wenigen Worten. Also lassen Sie mich die Situation beschreiben. Angenommen, Sie haben ein Multi-Wert Schlüsselwort Felder, die staatliche Namen enthält. Und noch ein Multi-Wert Keyword Feld, das den Ortsnamen aus. Die Auswahlmöglichkeiten für den Ortsnamen kommen aus den ausgewählten Zustand Namen. Wenn Sie einige Städte, wählen und dann gehen Sie zurück und nehmen Sie einen Zustand, wie Sie diese beseitigen ausgewählten Städten, die nicht mehr Auswahlmöglichkeiten?

Die Form beginnt mit einem bearbeitbaren, Dialog-Liste Feld, die mehrere Werte erlaubt, Staat genannt. Die Auswahlmöglichkeiten für dieses Feld von einem @ DbColumn kommen. Das Feld hat die Option "Felder aktualisieren auf Keyword-Wechsel" aktiviert ist.

Das zweite Feld ist auch eine editierbare, Dialog-Liste Feld, die mehrere Werte erlaubt. Das zweite Feld wird als City. Die Entscheidungen werden auf der Basis von ausgewählten Zustand. Zum Beispiel, hier ist die "Formel für Auswahl verwenden"-Option in einer Beispiel-Applikation:

Lookup: = @ DbLookup (""; ""; "vwLookupCityState"; Staat; 2);
@ If (@ IsError (Lookup); ""; Lookup)

Das Feld Stadt verfügt über die Optionen "Refresh Felder auf Keyword-Änderung" und "Refresh Entscheidungen auf Dokument aktualisieren" aktiviert ist. Also, wenn der Benutzer ein oder mehrere Staaten (zB Kalifornien, Washington) auswählt, werden die Entscheidungen für die Stadt Feld aktualisiert (zB San Diego, Los Angeles, San Francisco, Seattle, Olympia).

Unter normalen Umständen, wenn der Benutzer alle Städte, und geht dann zurück und ändert den Zustand Entscheidungen (Kalifornien bleibt nur ausgewählt, zum Beispiel), dann die Auswahl für das Feld Stadt wird aktualisiert, aber die alten ausgewählten Werte werden nicht . So sind die Städte Seattle und Olympia sind immer noch im Bereich Werte, obwohl sie nicht mehr gültig sind Optionen. Das ist die Situation dieser Code korrigiert.

Es ist eigentlich recht einfach mit dieser Situation umzugehen. Da haben sowohl der Staat und die Stadt Felder die Option "Felder aktualisieren auf Keyword-Wechsel" aktiviert, wird das Dokument aktualisiert, wenn entweder Feldänderungen werden. Eine Input Translation Formel auf das Feld Ort entfernen können die ausgewählten Werte, die nicht mehr sind Optionen.

Das erste, was in der Eingabeumsetzungsformel tun ist, duplizieren Sie die "Use Formel für Auswahl" Code, so dass die Form bekommt eine Liste der gültigen Optionen.

Lookup: = @ DbLookup (""; ""; "vwLookupCityState"; Staat; 2);
ValidChoices: = @ If (@ IsError (Lookup); ""; Lookup);

Dann, um die aktuellen Feldwerte nehmen und behalten nur die eine wirksame Regelung zu wird ein zweistufiger Prozess. Der erste Schritt besteht darin, eine Liste aller diejenigen, die nicht im Bereich sollen, ein, und der zweite Schritt besteht darin, alle diejenigen, die nicht sollte es zu entfernen.

InvalidEntries: = @ Trim (@ ersetzen (@ ThisValue; ValidChoices; ""));
@ Trim (@ ersetzen (@ ThisValue; InvalidEntries; ""))

Das ist es für den Eingabeumsetzungsformel. Also, wenn der Benutzer geht zurück und entfernt einen Zustand aus der Liste, wird das Dokument zu aktualisieren. Die Refresh führt die Eingabeumsetzungsformel. Die Formel macht eine Referenz, um eine Liste, was die Entscheidungen sein werden, zu bekommen. Da die exakt gleiche Lookup-Formel wurde wie in den Keyword-Optionen verwendet werden, und weil ich nicht mit dem "NoCache"-Option, die Leistung wird kein Problem sein. (Die Ergebnisse aus dem Cache wird von jedweder läuft Sekunde verwendet werden). Von den aktuellen Werten in das Feld Ort, werden alle diejenigen, die noch gültig sind mit leeren Zeichenfolgen ersetzt. Dies hinterlässt eine Liste aller Optionen ungültig. Diese ungültige Optionen werden dann aus den aktuellen Werten entfernt und das ist das neue Ergebnis für das Feld.

Gesehen 6512 mal von 1912 Zuschauern

  1. 18. Juni 2010 um 18:15 | # 1

    Tolle Arbeit! Dies ist die Art der Informationen, die der Bahn ausgetauscht werden sollten. Schande über die Suchmaschinen nicht zur Positionierung dieser Beitrag höher!

  1. Bisher keine Trackbacks.