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