反饋已提交
網絡繁忙
下拉樹中分別有 地區,省份,城市 指標,如果想實現同時選擇查詢出多個城市的資料,如何實現呢?如下圖所示:
我們可以透過帆軟內建 REPLACE() 和 SUBSTITUTE() 函式來實現。
1)REPLACE()
REPLACE(text, texttoreplace, replacetext):根據指定字串,用其他文字來代替原始文字中的內容。
text:需要被更換部分字元的正文字或儲存格引用。
texttoreplace:指定的字串或正則運算式。
replacetext:需要更換部分舊文字的文字。
2)SUBSTITUTE()
SUBSTITUTE(text,old_text,new_text,instance_num):用 new_text 更換文字串中的 old_text。
Text:需要被更換字元的文字,或含有文字的儲存格引用。
Old_text:需要被更換的部分文字。
New_text:用於更換 old_text 的文字。
Instance_num:指定用 new_text 來更換第幾次出現的 old_text。
注1:如果指定了 instance_num,則只有指定位置上的 old_text被更換,否則文字串中出現的所有 old_text 都被 new_text 更換。
注2:如果需要更換文字串中的指定文字,則使用 SUBSTITUTE 函式;如果需要更換文字串中指定位置上的任意文字,則使用 REPLACE 函式。
建立報表,新增資料集,資料查詢語句如下:
ds1:select * FROM S訂單 as 訂單 where 貨主地區 is not null ${if(len(地區)=0,"","and 貨主城市 in ('"+SUBSTITUTE(地區,",","','")+"')")}
ds2:select distinct 貨主地區 FROM S訂單 訂單 where 貨主地區 is not null
ds3:select distinct 貨主省份 FROM S訂單 where 貨主地區 = '${layer1}' and 貨主省份 is not null
ds4:select distinct 貨主城市 FROM S訂單 where 貨主省份 = '${layer2}'
注1:ds1 中的條件屬性也可修改為: ${if(len(地區)=0,"","and 貨主城市 in ('"+SUBSTITUTE(地區,",","','")+"')")}
注2:layer1 表示取層次 1 節點的值,若在層次 2 中呼叫,則是 SELECT 欄位 FROM 表名 WHERE 層次2的欄位 = '${layer1}' 依次類推。
建立普通報表,將欄位拖入對應的儲存格中,如下圖所示:
開啟參數介面,新增標籤元件、下拉樹元件,下拉樹元件命名為地區,勾選多選屬性,設定資料字典,構建方式選擇普通分層構建。
1)層次1:選擇資料查詢 ds2,設定實際值、顯示值為貨主地區,如下圖所示:
2)層次2:選擇資料查詢 ds3,設定實際值、顯示值為貨主省份,如下圖所示:
3)層次3:選擇資料查詢 ds4,設定實際值、顯示值為貨主城市,如下圖所示:
1)PC 端
儲存範本,點選分頁預覽,效果如下圖所示:
2)行動端
App 與 HTML5 端效果相同,如下圖所示:
已完成的範本,可參見:%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Primary\widgetReport\多選下拉樹實作多值查詢.cpt
點選下載範本:多選下拉樹實現多值查詢.cpt
滑鼠選中內容,快速回饋問題
滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。
不再提示
10s後關閉
反馈已提交
网络繁忙