Startseite > Lotus Formula , Lotus Notes-Lösung , Lotus Notes Tutorial , Notes Client > Lotus Notes entfernen ungültige untergeordnete Schlüsselwortwerte

Lotus Notes entfernen ungültige untergeordnete Schlüsselwortwerte

Ja, ich weiß den Titel dieser Spitze nicht viel zu bedeuten. 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 den Ortsnamen aus. Die Auswahlmöglichkeiten für den Ortsnamen stammen aus den ausgewählten Zustand Namen. Wenn Sie einigen Städten, zu wählen und dann gehen Sie zurück und nehmen Sie einen Zustand, wie Sie beseitigen die ausgewählten Städten, die nicht mehr Entscheidungen zu treffen?

Die Form beginnt mit einem bearbeitbaren, Dialog Feld List, die mehrere Werte ermöglicht, genannt Staat. Die Wahl für dieses Feld von einem @ kommen DbColumn. Das Feld hat die Option "Refresh Felder auf Keyword-change" aktiviert ist.

Das zweite Feld ist auch ein Editable, Dialog Feld List, die mehrere Werte ermöglicht. Das zweite Feld wird als City. Die Entscheidungen werden auf den gewählten Zustand. Zum Beispiel, hier ist das "Use Formel für Auswahl" Option in einer Beispiel-Anwendung:

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

Die Stadt Feld hat die Optionen "Refresh Felder auf Keyword-change" und "Refresh Entscheidungen auf Dokument aktualisieren" aktiviert ist. Also, wenn der Benutzer ein oder mehrere Staaten (zB Kalifornien, Washington) auswählt, werden die Optionen für das Feld Ort aktualisiert werden (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 Status Auswahl (nur California bleibt ausgewählt, zum Beispiel), dann ist die Auswahl für das Feld Ort aktualisiert werden, aber die alte ausgewählten Werte werden nicht . So die Städte Seattle und Olympia sind immer noch im Bereich Werte, obwohl sie nicht mehr gültigen Optionen sind. Das ist die Situation dieser Code korrigiert.

Es ist eigentlich recht einfach mit dieser Situation umzugehen. Da sowohl die Staats-und Stadtbibliothek Felder die Option "Refresh Felder auf Keyword-change" aktiviert, wird das Dokument aktualisiert, wenn entweder Feldänderungen werden. Eine Input Translation Formel auf das Feld Ort entfernen können den ausgewählten Werten, die nicht mehr Optionen.

Das erste, was in den Input Translation Formel 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 das aktuelle Feld Werte annehmen und behalten nur die gültigen wird ein zweistufiger Prozess. Der erste Schritt ist, um eine Liste aller diejenigen, die nicht im Bereich bekommen sollte, und der zweite Schritt ist, alle diejenigen, die nicht da sein sollte zu entfernen.

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

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

Betrachtet 8416 mal von 2199 Zuschauern

  1. Noch keine Kommentare.
  1. Bisher keine Trackbacks.