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