反饋已提交

網絡繁忙

下拉複選框元件聯動並實現動態欄

1. 概述

1.1 版本

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

1.2 預期效果

當報表的資料欄比較多,但資料量不是很大時,採用動態分組可靈活呈現不同維度的資料。如下圖所示,當選擇不同參數值時,可展示對應維度分組的資料。

1.3 實現思路

參考資料集參數設定中參數為空選擇全部的用法,用 if 語句實現動態欄。

2. 操作步驟

2.1 準備資料

建立普通報表,建立資料集 ds1,由於參數元件為複選框,因此資料集中參數需用 in 語句,如下圖所示:

SQL 語句為:

SELECT 地區 ${if(len(銷售員)=0,"",",銷售員")} ${if(len(產品類型)=0,"",",產品類型")} ${if(len(產品)=0,"",",產品")} ,sum(銷量) as 銷量匯總 
FROM 銷量
where 1=1
${if(len(銷售員)==0,"","and 銷售員 in ('" +銷售員+ "')")}
${if(len(產品類型)==0,"","and 產品類型 in ('" +產品類型+ "')")}
${if(len(產品)==0,"","and 產品 in ('" +產品+ "')")}
group by 地區
${if(len(銷售員)=0,"",",銷售員")}
${if(len(產品類型)=0,"",",產品類型")}
${if(len(產品)=0,"",",產品")}

2.2 設計表格

如下圖設計表格,將欄位拖入到對應儲存格中:

注:由於設定了銷售員、產品類型、產品三列為動態分組欄,即參數為空時,銷售員、產品類型、產品這三個欄位不顯示,所以銷售員、產品類型、產品三個參數需先設定預設值(後期可刪除預設值)。

2.3 新增參數元件

編輯參數面板,點選右側元件設定上方的「全部新增」,生成參數元件,分別點選銷售員、產品類型、產品參數框,選擇「下拉複選框元件」,如下圖所示:

2.4 新增參數框選項資料集

注:由於參數之間做了聯動,所以需要在資料集 SQL 中新增對應的參數過濾條件。

2.4.1 銷售員選項

建立資料集 銷售員SELECT distinct 銷售員 FROM 銷量,因為銷售員是第一個參數,可以任意選擇,所以不需要聯動過濾(此處distinct關鍵字是為了去重),如下圖所示:

2.4.2 產品類型選項

建立資料集 產品類型SELECT distinct 產品類型 FROM 銷量 where 1=1 ${if(len(銷售員)==0,"","and 銷售員 in ('" +銷售員+ "')")},因為產品類型需要根據銷售員的不同顯示相應的產品類型,所以需要設定銷售員過濾參數(此處distinct關鍵字是為了去重),如下圖所示:

2.4.3 產品選項

建立資料集 產品SELECT distinct 產品 FROM 銷量 where 1=1 ${if(len(銷售員)=0,"","and 銷售員 in ('"+銷售員+"')")} ${if(len(產品類型)=0,"","and 產品類型 in ('"+產品類型+"')")}因為產品需要根據銷售員、產品類型的不同顯示相應的產品,所以需要設定銷售員、產品類型過濾參數(此處distinct關鍵字是為了去重),如下圖所示:

2.5 設定參數元件的資料字典

分別選擇銷售員、產品類型、產品下拉複選框,設定「資料字典」為「資料查詢」,分別選擇對應的資料集(銷售員、產品類型、產品),設定「回傳值」類型為「字串」,分隔符為','(即單引號中間加一個逗號,此處分隔符的設定是為了將所選的多個參數值分隔開,例:當銷售員選擇 孫林、張珊 時,回傳值為 孫林','張珊 )

注1:銷售員、產品類型元件的元件名必須跟產品類型、產品資料集中的參數名保持一致才可以聯動。

注2:分隔符必須在英文半角狀態下輸入。

2.6 設定條件屬性

儲存格 B2、C2、D2新增條件屬性:列寬為0,公式條件為:len($$$)=0,如下圖所示:

2.7 效果預覽

2.7.1 PC 端

儲存範本,點選分頁預覽,效果如下圖所示:

2.7.2 行動端

App 與 HTML5 端效果相同,效果如下圖所示:

3. 範本下載

已完成範本可參見:%FR_HOME%\webroot\WEB-INF\reportlets\doctw\primary\GroupReport\動態分組.cpt

點選下載範本:動態分組.cpt

附件列表


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

文 檔回 饋

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

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

不再提示

10s後關閉