一個功能完備的數(shù)據(jù)列表頁面應(yīng)該給用戶提供豐富的查詢條件,以便用戶可以根據(jù)各種條件查詢自己想要的數(shù)據(jù),為此,TaskBuilder的創(chuàng)建數(shù)據(jù)查詢頁面的向?qū)峁┝藢iT的設(shè)置動態(tài)查詢參數(shù)的界面,所謂“動態(tài)查詢參數(shù)”是指在進(jìn)行數(shù)據(jù)查詢時,如果前端頁面給后臺服務(wù)傳了該參數(shù),就使用該參數(shù)對應(yīng)的查詢表達(dá)式作為查詢條件進(jìn)行查詢,如果該參數(shù)沒有傳值,則不使用該參數(shù)對應(yīng)的查詢表達(dá)式作為查詢條件進(jìn)行查詢。多個參數(shù)都有值時,它們對應(yīng)的多個查詢條件是并且(and)的關(guān)系,即只查詢這些條件都滿足的數(shù)據(jù)記錄。
在上圖所示界面中,先在上部的查詢字段列表里選擇要作為查詢條件的字段,然后在后面的查詢條件列表里選擇查詢條件,然后點(diǎn)最后面的加號圖標(biāo),即可添加一個動態(tài)查詢參數(shù)。
可選的查詢條件包括以下幾種:
[if !supportLists]l?[endif]模糊查找:表示查找指定字段的值包含指定查詢參數(shù)的數(shù)據(jù)記錄,該查詢條件默認(rèn)的查詢表達(dá)式是:{%req.查詢參數(shù)名%},表示只要該條件對應(yīng)的字段值包含指定查詢參數(shù)的值,就算是符合條件;如果只想查詢前綴為指定查詢參數(shù)值的記錄,則可以將查詢表達(dá)式設(shè)置為:{req.查詢參數(shù)名%};反之,如果只想查詢后綴為指定查詢參數(shù)值的記錄,則可以將查詢表達(dá)式設(shè)置為:{%req.查詢參數(shù)名};這里的%是SQL中的 通配符,表示匹配0個或多個字符。模糊查詢只支持字符串類型的字段,數(shù)值、日期等類型不支持使用模糊查詢。
[if !supportLists]l?[endif]等于:表示查找指定字段的值與指定查詢參數(shù)相等的數(shù)據(jù)記錄,例如:id={req.id},表示要查詢id字段的值等于名為id的查詢參數(shù)的值。等于判斷可以用于數(shù)值、日期時間、字符、短字符串等類型的字段,字符串類型的字段如果有比較長的字符串值,不建議進(jìn)行等于判斷;文本、二級制類型的字段不能用等于判斷。
[if !supportLists]l?[endif]大于:表示查找指定字段的值大于指定查詢參數(shù)的數(shù)據(jù)記錄,例如:id>{req.id},表示要查詢id字段的值大于名為id的查詢參數(shù)的數(shù)據(jù)記錄。大于判斷可用于數(shù)值和日期時間類型的字段,不能用于字符、字符串、二進(jìn)制類型的字段。
[if !supportLists]l?[endif]小于:表示查找指定字段的值小于指定查詢參數(shù)的數(shù)據(jù)記錄,例如:id<{req.id},表示要查詢id字段的值小于名為id的查詢參數(shù)的數(shù)據(jù)記錄。小于判斷可用于數(shù)值和日期時間類型的字段,不能用于字符、字符串、二進(jìn)制類型的字段。
[if !supportLists]l?[endif]大于或等于:表示查找指定字段的值大于或等于指定查詢參數(shù)的數(shù)據(jù)記錄,例如:id>={req.id},表示要查詢id字段的值大于或等于名為id的查詢參數(shù)的數(shù)據(jù)記錄。大于或等于判斷可用于數(shù)值和日期時間類型的字段,不能用于字符、字符串、二進(jìn)制類型。
[if !supportLists]l?[endif]小于或等于:表示查找指定字段的值小于或等于指定查詢參數(shù)的數(shù)據(jù)記錄,例如:id<={req.id},表示要查詢id字段的值小于或等于名為id的查詢參數(shù)的數(shù)據(jù)記錄。小于或等于判斷可用于數(shù)值和日期時間類型的字段,不能用于字符、字符串、二進(jìn)制類型。
[if !supportLists]l?[endif]不等于:表示查找指定字段的值不等于指定查詢參數(shù)的數(shù)據(jù)記錄,例如:id<>{req.id},表示要查詢id字段的值不等于名為id的查詢參數(shù)的數(shù)據(jù)記錄。不等于判斷可用于數(shù)值、日期時間、字符、短字符串等類型的字段,字符串類型的字段如果有比較長的字符串值,不建議進(jìn)行不等于判斷;文本、二級制類型的字段不能用不等于判斷。
[if !supportLists]l?[endif]起止日期:用來同時添加開始日期和結(jié)束日期這兩個查詢參數(shù),僅能用于日期時間或日期類型的字段,如果查詢字段的類型是日期時間格式(yyyy-MM-dd HH:mm:ss),則在開始日期的查詢表達(dá)式里,需要加上0:00:00,結(jié)束日期的查詢表達(dá)式里,需要加上23:59:59,否則查詢結(jié)果會不準(zhǔn)確,因?yàn)榍岸隧撁鎮(zhèn)鹘o后臺服務(wù)的起止日期只有日期值,不包含時間。
添加后的動態(tài)查詢參數(shù)可以設(shè)置以下幾項(xiàng)內(nèi)容:
[if !supportLists]l?[endif]參數(shù)名稱:用來設(shè)置從列表頁面?zhèn)鬟f給后臺服務(wù)的查詢參數(shù)的名稱,不一定非得跟數(shù)據(jù)模型中的字段名一致,對應(yīng)的是列表頁面里查詢條件輸入項(xiàng)組件的編號。如果設(shè)置了多個查詢參數(shù),則這些查詢參數(shù)的名稱不能重復(fù);
[if !supportLists]l?[endif]參數(shù)說明:用來設(shè)置列表頁面里,各個查詢條件輸入項(xiàng)的文本標(biāo)簽的內(nèi)容;
[if !supportLists]l?[endif]輸入項(xiàng)類型:用來設(shè)置列表頁面里,各個查詢條件輸入項(xiàng)的類型,默認(rèn)為單行文本輸入框;
[if !supportLists]l?[endif]查詢表達(dá)式:用來設(shè)置在數(shù)據(jù)庫中執(zhí)行實(shí)際查詢時,各個查詢參數(shù)對應(yīng)的查詢條件表達(dá)式,在添加查詢參數(shù)時會根據(jù)選擇的查詢條件自動生成,也可以手動輸入或修改,雙擊查詢條件表達(dá)式輸入框,可以打開SQL編輯助手編寫復(fù)雜的查詢條件表達(dá)式;
[if !supportLists]l?[endif]默認(rèn)值:用來設(shè)置在列表頁面里,該查詢條件輸入項(xiàng)的默認(rèn)值,一般只有單選框、多選框和下拉列表這幾種類型的輸入項(xiàng)需要設(shè)置默認(rèn)值;
[if !supportLists]l?[endif]數(shù)據(jù)字典:用來設(shè)置在列表頁面里,該查詢條件輸入項(xiàng)是否關(guān)聯(lián)指定的數(shù)據(jù)字典,顯示其選項(xiàng)列表,如果設(shè)置了數(shù)據(jù)字典,則輸入項(xiàng)類型會自動使用下來列表形式;
[if !supportLists]l?[endif]可選值:用來設(shè)置單選框、多選框和下拉列表這幾種輸入項(xiàng)的可選值;

對于我們要創(chuàng)建的客戶信息列表頁面來說,可以參考上圖設(shè)置相應(yīng)的動態(tài)查詢參數(shù),設(shè)置好后,點(diǎn)擊下一步按鈕,即可進(jìn)行第五步的操作。