1.結(jié)論
對于輸入過濾條件后BOS報“列名不正確”的過濾條件,要在列名前增加x2標識
無效的過濾
FNumber in (002,003,004,005,011,020)
正確的過濾
x2.FNumber in (002,003,004,005,011,020)
2.完全可以不看的探索過程
有客戶需要我們在WISE中增加新單據(jù),其中有個基礎(chǔ)資料字段需要根據(jù)客戶的的需求進行過濾。
我想這不是很簡單的嘛,甚至WISE BOS的文檔中直接都有操作方式。
4.3.2 字段屬性
每種字段類型都有一些屬性需要設(shè)置,通過設(shè)置屬性滿足來滿足實際的業(yè)務(wù)需要。
屬性
說明
適用范圍
過濾
設(shè)置基礎(chǔ)資料類型的過濾條件,用途是在F7或者F8的時候通過您所設(shè)置的條件去過濾掉一些不符合條件的數(shù)據(jù),而這個屬性框里面需要維護的是用代碼寫的條件,以基礎(chǔ)資料是部門代碼為例,如果我需要過濾出部門代碼屬于某一類型部門的數(shù)據(jù),那么我可以在過濾屬性欄寫下:FDProperty = 1070,那么在錄入單據(jù)時,該字段F7出來的數(shù)據(jù)一定都是屬于1070類型的部門代碼。您也可以在后臺數(shù)據(jù)庫中執(zhí)行以下SQL將屬性模板表中記錄的過濾字段FFilter的數(shù)據(jù)調(diào)出來參考著看看:SELECT FFilter,* from ICClassTableInfo
[基礎(chǔ)資料]
以上引用內(nèi)容來自K3V14.0BOS用戶手冊
用戶需要的是對一個類型為部門的基礎(chǔ)資料字段過濾,讓用戶只能選擇總部的部門。部門本身并沒有標識表明是否為單據(jù)體,和客戶討論之后得出了總部部門的列表。
實際在數(shù)據(jù)庫里部門的結(jié)構(gòu)如下
看上去,只要在對應(yīng)字段的過濾屬性填下
1 | FNumber in (002,003,004,005,011,020) |
就行。然而,報錯了!
既然列名不明確,那我就明確一下列名試試,部門對應(yīng)的表為t_Department,那我就改成
t_Department.FNumber in (002,003,004,005,011,020)
依然報錯,這次提示信息為“無法綁定由多個部分組成的標識符”,我將t_Department改為a/b/x均無法通過
好吧,看下文檔上的蛛絲馬跡。根據(jù)上面引用的文檔,我去ICClassTableInfo表查了過濾屬性FFilter,發(fā)現(xiàn)其中有一條Filter為
x2.FItemID<>GetFldValue(FDepartmentID,0)
懷著嘗試一下的心態(tài),我將原來的過濾條件改為
x2.FNumber in (002,003,004,005,011,020)
BOS沒有報錯,保存,運行,OK!
個人認為是由于wise的數(shù)據(jù)結(jié)構(gòu)是吧所有字段的過濾條件都至于同一張表單數(shù)據(jù)表中,導(dǎo)致過濾時選擇列明不明確,所以需要在之前增加標識,但是嘗試了一下x1,x3,都報“無法綁定由多個部分組成的標識符”,個人猜測是金蝶本身把當(dāng)前基礎(chǔ)資料的標識符設(shè)置為了x2,具體細節(jié)還得慢慢探索才行。
文章轉(zhuǎn)摘自:新田三十三