我們來做一個典型的地址輸入功能。就是設(shè)置四個列,分別輸入省、市、縣市區(qū)、詳細(xì)地址四個列。在此之前我們要先準(zhǔn)備一下中國的行政區(qū)劃基礎(chǔ)數(shù)據(jù)。
數(shù)據(jù)結(jié)構(gòu)如下:
導(dǎo)入數(shù)據(jù)如下:
我們需要在員工管理表中添加相應(yīng)的數(shù)據(jù)規(guī)范。因為智能篩選規(guī)范會在每次打開下拉窗口的時候重新檢查SQL語句中是否包含參數(shù),如果包含參數(shù)的話,會重新根據(jù)參數(shù)加載數(shù)據(jù)清單,所以就比較適合做這種多級聯(lián)動下拉列表的場景。
我們最后在指定列設(shè)置的數(shù)據(jù)規(guī)范如下:
我們再來看看具體的設(shè)置內(nèi)容:
注意,這里我們引用了變量參數(shù)(詳細(xì)教程請參考“數(shù)據(jù)規(guī)范說明”)。直接引用了省的數(shù)據(jù)。當(dāng)然,這個示例里面我們還可以直接參數(shù)變量參數(shù)省略為“R("AddressProvince")}”,因為我們引用的是這個數(shù)據(jù)規(guī)范生效的當(dāng)前表中的當(dāng)前行。
這里的變量參數(shù)跟上面的類似。
下面我們來看看最后數(shù)據(jù)規(guī)范生效后的實際效果。(表屬性設(shè)置完之后,窗體必須關(guān)閉重新打開后才會生效)
我們直接點(diǎn)擊省的下拉按鈕,直接顯示了各省的清單,我們根據(jù)需要選擇一個省名稱。
然后我們再點(diǎn)擊后面“市”列的下拉窗口時,展開的下拉清單是根據(jù)前面輸入的省信息篩選后得到的。
后面的“縣市區(qū)”列的下拉清單同樣是篩選后的,這樣我們就可以得到一個相對少的、明確的清單方便我們選擇了。
同時請記住,智能篩選是支持輸入篩選的,如果下拉清單仍然很多的話,我們可以通過輸入部分文字來實現(xiàn)篩選過濾。還記得我們上面設(shè)置參數(shù)里面的“篩選條件”嗎?它就是來控制我們輸入篩選時的篩選邏輯的。
也正是因為智能篩選擁有篩選功能,所以,當(dāng)前面的省數(shù)據(jù)改變之后,然后再點(diǎn)擊后面的列,會導(dǎo)致原來輸入里面的數(shù)據(jù)在新的清單中無法正確篩選到數(shù)據(jù),就會像下面這樣,返回一個空的下拉清單。這時候我們不要慌,只需要將之前輸入的數(shù)據(jù)刪除掉即可顯示所有清單。
數(shù)據(jù)清除之后,該有的數(shù)據(jù)清單顯示出來了,接下來我們再根據(jù)需要進(jìn)行相應(yīng)的數(shù)據(jù)選擇。