Lotus Notes Usuwanie nieprawidłowych wartości podrzędne słowo
Tak, wiem, że tytuł tego wierzchołka nie znaczy wiele. Ale nie mogłem wymyślić sensowny tytuł w kilku słowach. Więc pozwól mi opisać tę sytuację. Powiedzmy, że masz wielu wartości pola kluczowe, które zawiera nazwy państwa. I jeszcze wielu wartości pola słowo kluczowe, które zawiera nazwy miast. Wybory do nazwy miasta pochodzą z wybranych nazw państwowych. Jeśli zdecydujesz niektórych miastach, a następnie wrócić i usunąć stan, w jaki sposób wyeliminować tych wybranych miast, które nie są już wybory?
Forma zaczyna się na polu edycji, dialogowym Lista, która pozwala wielu wartości, zwane państwo. Wybory w tej dziedzinie pochodzą z znakiem @ DbColumn. Pole jest opcja "Odśwież na temat zmian pola słów kluczowych" włączone.
Drugie pole jest edytowalne, Dialog pole listy, które pozwala wielu wartości. Drugie pole nazywa się miasto. Do wyboru są na podstawie wybranego państwa. Na przykład, oto "formuła użycia do choices" opcja w przykładowej aplikacji:
Wyszukiwanie: = DbLookup @ ("", "", "vwLookupCityState"; państwa, 2);
@ If (@ IsError (Lookup); ""; Lookup)
Pole Miasto ma opcji "Pola Odśwież sprawie zmian słów kluczowych" I "wybory Odśwież na dokumencie odświeżania" włączone. Tak więc, gdy użytkownik wybierze jeden lub więcej stanów (np. Kalifornia, Waszyngton), wybory na terenie miasta są odświeżane (np. San Diego, Los Angeles, San Francisco, Seattle, Olympia).
W normalnych sytuacjach, gdy użytkownik wybierze wszystkich miastach, a potem wraca i zmienia decyzje państwowe w Kalifornii pozostaje tylko wybrane, na przykład), to wybory w polu Miasto zostanie odświeżona, ale stare wybrane wartości nie będą . Więc miasta Seattle i Olympia są nadal w dziedzinie wartości, mimo że nie są już ważne opcje. To sytuacja ten kod koryguje.
Jest rzeczywiście bardzo proste w obsłudze tej sytuacji. Ponieważ zarówno państwo i pola City jest opcja "Odśwież na temat zmian pola słów kluczowych" włączone, dokument zostanie odświeżona, gdy ze zmian w terenie. Formuła Tłumaczenie Wejście na pole miasta można usunąć wybrane wartości które nie są już opcje.
Pierwszą rzeczą do zrobienia w formule Tłumaczeń Input jest powielić formułę "Użyj dla wyborów" kodu, tak postać dostaje listę ważnych wyborów.
Wyszukiwanie: = DbLookup @ ("", "", "vwLookupCityState"; państwa, 2);
ValidChoices: = @ if (@ IsError (Lookup); ""; Lookup);
Następnie, w celu bieżące wartości pól i zachować tylko te ważne staje się z dwóch etapów. Pierwszym krokiem jest uzyskanie listy wszystkich tych, które nie powinny znaleźć się w polu, a drugi krok to usunięcie wszystkich tych, których nie powinno tam być.
InvalidEntries: = @ Trim (@ Wymień (@ ThisValue; ValidChoices; ""));
@ Trim (@ Wymień (@ ThisValue; InvalidEntries; ""))
Że jest to dla wzoru Tłumaczeń wprowadzania. Tak więc, gdy użytkownik wraca i usuwa stan z listy, dokument zostanie odświeżona. Odświeżania realizuje formułę Tłumaczeń wprowadzania. Formuła nie jest wyszukiwanie, aby uzyskać listę co wybory są będzie. Od dokładnie ten sam wzór wyszukiwania został wykorzystany jako słów kluczowych w wyborach, a ponieważ nie używać "nocache opcji, wydajność nie będzie problemem. (Zbuforowane wyniki zostaną wykorzystane przez cokolwiek działa sekund). Z obecnych wartości w polu Miasto, wszystkie te, które są nadal aktualne są zastępowane pustych strunach. Ta pozostawia listę wszystkich opcji nieważnych. Te nieprawidłowe opcje są następnie usuwane z bieżących wartości i to jest nowy wynik na polu.
Oglądany 8480 razy przez 2217 widzów













