反饋已提交

網絡繁忙

下拉樹實現資料集過濾

1. 概述

1.1 版本

報表伺服器版本
功能變更
11.0--

1.2 功能簡介

我們在製作範本時,經常要使用到參數,參數分為兩種,一種是資料集參數,一種的範本參數,因此,過濾也分為兩種,一種是資料集參數過濾,一種是範本參數過濾,這兩種在前面都有講到過,也介紹過用法,由於下拉樹的特殊性,其回傳值是路徑陣列值,並不是一個字串,那麼如果使用下拉樹的話,其過濾的方式也就有所不同,本文將講述資料集參數過濾方法。

2. 單選下拉樹實現資料集參數過濾

2.1 資料準備

建立資料集 ds1:SELECT * FROM [S訂單]  where 1=1 ${if(len(aa)==0,""," and 貨主城市 = '"+treelayer(aa)+"'")}

建立資料集 layer1:SELECT 貨主地區 FROM 訂單 where 貨主地區!=''

建立資料集 layer2:SELECT  貨主省份 FROM 訂單 where 貨主省份!='' and 貨主地區='${layer1}'

建立資料集 layer3:SELECT  貨主城市 FROM 訂單 where 貨主城市!='' and 貨主省份='${layer2}'

注:資料集 ds1 中使用到了 treelayer 函式,即取得參數 aa 的最後一層值,詳細用法請查看 :treelayer 函式

2.2 下拉樹構建

1)編輯參數介面,新增參數 aa 元件,元件類型選擇下拉樹元件,標籤元件值為地區:,如下圖所示:

2)下拉樹的資料字典選擇分層構建方式,資料來源是 layer1,layer2 和 layer3,具體使用方法清查看 :下拉樹分層構建範例

下拉樹元件預設為單選下拉樹,勾選結果傳回完整層次路徑。如下圖所示:

注:如果下拉樹屬性中不勾選結果傳回完整層次路徑,那麼下拉樹回傳值不是路徑值,故無需使用 treelayer 函式對下拉樹回傳值進行再次修改,直接使用即可,此時,可以將ds1資料集的 SQL 語句修改為:SELECT * FROM [S訂單] where 1=1 ${if(len(aa)==0,""," and 貨主城市 = '"+aa+"'")}

2.3 報表設計

如下圖所示:

2.4 效果查看

App 及 HTML5 效果如下圖所示:

2.5 已完成範本

已完成範本請參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\Primary\widgetReport\單選下拉樹實現資料集過濾.cpt

點選下載範本:單選下拉樹實現資料集過濾.cpt

3. 多選下拉樹實現資料集參數過濾

3.1 資料準備

開啟上面的單選下拉樹範本,更改資料集 ds1:SELECT * FROM [S訂單]  where 1=1 ${if(len(aa)==0,""," and 貨主城市 in ("+"'"+treelayer(aa,true,"\',\'")+"'"+")")}

注:treelayer(aa,true,"\',\'")傳回的值是以“,”為分隔符的字串,形如“北京,天津”這樣的字串,但是在sql語句中實現in過濾必須形如“'北京,天津'”,兩者比較,後者比前者最前面和最後面多了兩個單引號,則在 treelayer(aa,true,"\',\'")前面和後面連接兩個單引號即可。

3.2 下拉樹構建

選中下拉樹元件,在元件屬性表中,勾選多選結果傳回完整層次路徑。如下圖所示:

注:下拉樹屬性中勾選結果傳回完整層次路徑選項,在 ds1 資料集實現過濾的時候都需要使用 treelayer 函式,勾選該選項 treelayer 有兩個作用,一個是獲取最底層值,另一個是將陣列轉換為字串,而不勾選該選項,則只是將陣列轉換為字串。

另:下拉樹屬性中不勾選結果傳回完整層次路徑,只傳回葉子節點,這個時候過濾中不需要用到 treelayer 這個函式 ,可以把("+"'"+treelayer(aa,true,"\',\'")+"'"+")修改為("+"'"+replace(aa,',',"','")+"'"+")

3.3 效果查看

App 及 HTML5 效果如下圖所示:

3.4 已完成範本

已完成範本請參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doctw\Primary\widgetReport\多選下拉樹實現資料集過濾.cpt

點選下載範本:多選下拉樹實現資料集過濾.cpt

附件列表


主題: 參數應用
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉