反饋已提交

網絡繁忙

資料集參數實現動態欄

一、概述

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

2
預期效果。
  1. 使用函式實現動態欄 報表需要取出所有的資料,然後來實現動態欄報表,當資料量大且所選欄不是很多的情況下效能就慢了。本文介紹另一種動態欄製作方法,該方法在資料量大時可以實現 層式報表分頁查詢,進而提高報表效能。如下圖所示。

3
實現思路。
  1. 透過定義資料集參數,直接選出需要展示的欄,將資料欄拖入到儲存格中即可。

二、範例

1
準備資料。
  1. 新增資料集 ds1,SQL 語句為:【SELECT ${col} FROM 銷量】。設定資料集參數 【col】,預設值為字串型別【*】,即查詢出所有資料。如下圖1所示。

  2. 新增資料集 ds2,SQL 語句為:【SELECT * FROM 銷量 limit 1】。透過查詢一筆資料,來獲取表中所有欄位的名稱。如下圖2所示。

  3. 新增資料集 ds3 , SQL 語句為:【SELECT * FROM 銷量】,如下圖3所示。

2
設計報表。
  1. 表樣設計:由於不確定使用者選擇的欄位個數,因此製作範本時需要拖入所有的 6 個欄位。

  2. 表頭列:在 A1-F1 儲存格插入公式,將 【$col】 參數轉換成陣列,A1-F1 儲存格分別傳回陣列裏的第 1-6 個的值。公式內容和公式說明如下表所示。操作步驟如下圖1所示。

  3. 表內容:在 A2-F2 儲存格插入【資料欄】,資料集選擇 ds1,【資料欄】分別輸入【 #1】、【#2】、【#3】、【#4】 、【#5】 、【#6 】,【資料設定】為【列表】,【擴展方向】為【縱向】,如下圖2所示。

  4. 設定報表邊框:分別選中 A2-F2 儲存格,點選右側【條件屬性】,點選【+】新增條件,設定【框線屬性】為【外部邊框】。選擇公式條件型別為【公式】,公式內容為:【len($$$)!=0】,即儲存格有資料的話顯示邊框。如下圖3所示。

  5. 設定表頭背景:給 A1-F1 增加【條件屬性】,選擇【背景屬性】,設定為【藍色】;選擇【框線屬性】,設定為【外部邊框】。選擇條件型別為【公式】,公式內容為:【len($$$)!=0】,即儲存格有資料的話顯示背景和邊框。操作步驟同 上一段,設定介面如下圖4所示。

注:【# 數字】代表資料對應的第幾,#1 表示第一欄的資料。

儲存格公式公式說明
A1INDEXOFARRAY(split($col,","),1)

INDEXOFARRAY(array,index):傳回陣列 array 的第 index 個元素。

SPLIT(String1,String2):傳回由 String2 分割 String1 組成的字串陣列。

由於參數 【$col】 預設值為字串型別,因此需要先轉換成陣列才能傳回正確的值。


B1INDEXOFARRAY(split($col,","),2)
C1INDEXOFARRAY(split($col,","),3)
D1INDEXOFARRAY(split($col,","),4)
E1INDEXOFARRAY(split($col,","),5)
F1INDEXOFARRAY(split($col,","),6)

3
設定參數。
  1. 點選參數面板,點選【全部新增】,參數面板出現可選擇的元件,選擇【下拉複選框元件】,如下圖1所示。

  2. 選中【下拉複選框元件】,元件值型別為【字串】,預設值設定為空,資料字典型別為【公式】,實際值輸入公式:【TABLEDATAFIELDS("ds2")】,如下圖2所示。

注:參數面板中下拉複選框元件的預設值必須為空,否則無法獲取所有欄。

4
設定點擊事件。
  1. 參數為空時,點選【查詢按鈕】,預設查詢全部欄。

  2. 點選參數面板【查詢】按鈕,新增【點击事件】,設定參數【a】,值為公式【TABLEDATAFIELDS("ds2")】,獲取所有欄位名稱。新增 JavaScript 代碼。如下圖所示。

  3. JavaScript 代碼如下。

    var Widget = this.options.form.getWidgetByName("col"); 
    var value =Widget.getValue(); //獲取元件實際值
    if(value==''||value==null){
    /*獲取參數面板中的正文元件,判斷後賦*/
    var area2=_g().getParameterContainer().getWidgetByName("col");
    area2.setValue(a);
    _g().parameterCommit();
    }

5
效果查看。
  1. PC 端:點選【分頁預覽】,當選擇對應的一些資料欄,點選查詢就展示對應選擇欄的資料,效果如下圖所示。

  2. 行動端:APP 端和 HTML5 端均支援。

三、已完成範本

  1. 已完成範本請參見:【%FR_HOME%\webroot\WEB-INF\reportlets\doctw\Parameter\DynamicCol\資料集參數實現動態欄.cpt】。

  2. 點選下載範本:資料集參數實現動態欄.cpt


附件列表


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

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

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

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙