2013-10-22 173 views
0

我有一個場景,其中有三個字段,根據第一個字段的選擇(第一個字段中的三個值),下一個字段獲取值(它是一個對話列表字段) DBcolumn。然後在選擇第二場的基礎上第三場即將到來。以上提到的所有字段都是對話列表字段。數據庫查找問題,Lotus Notes

問題是多選時,如果有多個值從第一個字段中選出來,下一個字段會隨着DBColumn的使用(由於較小的值)而到來,但由於第二個字段有很多值,我們必須使用數據庫查找,在這裏多選不會獲取相應字段的數據。

例如,我有一個名爲Database(有3個值)的字段,另外兩個字段是Project(許多值)和Brand。

我正在使用DBColumn從數據庫字段選擇(多選),我正確得到(使用@if)獲取項目字段中的值,但多項選擇項目字段(有很多值)後,我是無法獲得下一個字段的值(使用DBLookup)。

請讓我知道任何解決辦法....

回答

1

第一:你的代碼會可能有助於解決這個問題,但我想,這是不是代碼 - 相關:

請檢查場 - 項目上的屬性「關鍵字更改刷新字段」以及品牌字段上的「刷新文檔刷新選項」屬性。

如果您在選擇第二個項目時沒有獲取ANY值,請檢查您的Key for Lookup是否被正確用作您的DBLookup的Multiple值,並且它不會嘗試查找類似「value1;值2" ,而不是‘值1’:‘值2’......

投注實踐調試這樣的事情,就是有一個‘BrandList’字段,用於計算顯示,隱藏與DBLookup它:

_viw := "YourViewName"; 
_crit := Project; 
_col := 2; 
REM "Don't do lookups, if project is empty"; 
@if(_crit = "" ; @Return("") ; ""); 
_lkp := @DBLookup("" : "NoCache" ; _viw ; _crit ; _col); 
@if(@IsError(_lkp) ; "" ; _lkp); 

而讓品牌指向這個領域(只需使用fieldname作爲公式)。這樣你可以很容易地調試返回的值。此外:如果您不確定,您選擇的每個項目都會有品牌,則需要將[FailSilent]添加到查找中,否則整個查找將失敗,如果只有其中一個項目不能發現... _lkp := @DBLookup("" : "NoCache" ; _viw ; _crit ; _col; [Failsilent]);

但是:當調試某些東西時,Failsilent非常糟糕,因爲您永遠不會收到錯誤信息... AND:爲了調試目的,您當然不要使用@ IsError-行並簡單地返回_lkp ...

+0

感謝您的建議Torsten,但概率是我不知道什麼關鍵是用於查找,因爲可以有多個排列組合,我們可以寫所有的組合在第在查看的第一列查看,我主要是在尋找什麼傳遞屁股鑰匙在這裏。 – Himanshu

+1

你不需要排列任何東西。視圖的第一列按項目分類。你的查找需要一個列表作爲關鍵。 @DBlookup爲每個單鍵(一個接一個地)執行查找並將所有查找的結果一起返回... –

+0

這是公式語言的主要功能:Beeing能夠使用列表,就好像它們在單個值,沒有考慮置換... –