Lotus Notes中刪除無效下屬的關鍵字值
是的,我知道這個提示的標題並沒有太大意義。 但我不能拿出一個有意義的標題,在短短的幾句話。 因此,讓我描述的情況。 比方說,你有一個多值的關鍵字字段包含州名。 而另一個多值關鍵字字段包含城市名稱。 選擇城市名稱來自選定的國家名稱。 如果您選擇一些城市,然後回去和刪除狀態,你如何消除那些選定的城市,沒有更長的選擇呢?
形式開始編輯,對話框列表字段,允許多個值,所謂的國家。 這一領域的選擇來自一個 @ DbColumn。 領域的“刷新關鍵字變化領域”啟用“選項。
第二個字段也是一個編輯,對話框列表域,允許多個值。 第二個字段是所謂的城市。 選擇的基礎上選定狀態。 例如,這裡是一個示例應用程序選項“選擇使用公式”:
查找:= @ DbLookup(“;”;“vwLookupCityState”的國家; 2);
@如果(ISERROR(查找)“;”;查找)
“城市”字段選項“關鍵字的變化上的”刷新“田”和“刷新”選擇文件刷新“啟用。 所以,當用戶選擇一個或多個國家(如加利福尼亞州,華盛頓),為市場的選擇刷新(例如,圣迭戈,洛杉磯,舊金山,西雅圖,奧林匹亞)。
在正常情況下,如果用戶選擇了所有的城市,然後返回並改變國家的選擇(只有加州仍然選擇例如,),然後將被刷新為市場的選擇,但舊的選定值不會。 因此,城市西雅圖和奧林匹亞字段中的值,即使它們不再有效的選項。 這是這個代碼更正的情況。
這其實是很容易處理這種情況。 因為這兩個國家和城市領域可以選擇“刷新關鍵字變化領域”啟用後,該文件將被刷新時,任一領域的變化。 對“城市”字段輸入翻譯公式可以刪除選定的值不再的選擇。
輸入轉換公式做的第一件事是重複的代碼“選擇使用公式”,這樣的形式獲取一個有效的選擇列表。
查找:= @ DbLookup(“;”;“vwLookupCityState”的國家; 2);
ValidChoices:=如果(ISERROR(查找)“;”;查詢);
然後,採取當前字段值,並只保留有效的成為一個兩步的過程。 第一步是獲得所有的,不應該在該領域的清單,第二步是刪除所有不應該存在的。
InvalidEntries:= @修剪(@替換(@ ThisValue; ValidChoices; ""));
@修剪(@替換(@ ThisValue; InvalidEntries;“))
這是輸入轉換公式。 所以,當用戶返回並從列表中刪除一個狀態,該文件將刷新。 刷新執行輸入轉換公式。 計算公式得到一個什麼樣的選擇將要列表查找。 由於使用相同的查找公式是在選擇關鍵字,因為我沒有使用“NOCACHE”選項,性能會不會有問題。 (緩存的結果將取其運行第二個)。 從“城市”字段的當前值,仍然有效的所有的空字符串替換。 這使所有無效的選項的列表。 從當前值,然後刪除這些無效的選項,這是該領域的新成果。
2201觀眾觀看了8424次













