帆軟報表之 動態報表


動態報表

 

動態樹報表

 

 

 

 

動態折疊樹

 

1. 描述

 

在進行展現數據時,希望模板的數據是可以動態折疊的,即點擊數據前面的加號才展開對應下面的數據,如下圖所示,此時要如何實現呢?

 

0

 

2. 實現思路

 

通過將模板設置為 組織樹報表,然后通過設置 樹節點按鈕,最后通過數據分析預覽(&op=view)即可查看效果。

 

3. 示例

 

3.1 打開模板

 

打開模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\GroupReport\CusGroup_6.cpt,實現方法可參考 樹數據集實現組織樹報表

 

3.2 增加樹節點按鈕

 

通過設置樹節點按鈕來實現折疊樹,分別右擊單元格A1、A2、A3,選擇控件設置>按鈕控件,按鈕類型選擇“樹節點按鈕”,設置如下:

 

0

 

3.3 保存與預覽

 

保存模板。點擊設計器中的數據分析,預覽效果即如上。在線查看示例效果請點擊 TreeReport.cpt

 

已完成模板請參照%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\TreeReport\動態折疊樹.cpt

 

由此我們可看出,動態折疊樹的設計思路是點擊主格時,控制附屬於該組的子項內容展開與折疊,由此達到數據分析的效果。

 

注:由於我們是通過按鈕控件實現該功能的,而普通的分頁預覽是不會將控件顯示出來,需要在op=view狀態即數據分析下才能顯示。

 

注:動態折疊樹不支持字體顏色設置。

 

動態折疊樹沒有效果的原因

 

1. 描述

 

用戶設置了折疊樹按鈕后,預覽報表時沒有動態樹效果。

 

2. 原因一:預覽模式錯誤

 

實現動態折疊樹必須是以數據分析預覽(op=view),而使用分頁預覽,可以看到沒有實現動態折疊樹效果,如下圖:

 

0

 

3. 原因二:聚合報表

 

聚合報表不支持動態折疊樹,所以在聚合報表中設置了動態折疊樹、數據分析預覽時沒有動態樹效果。

 

4. 原因三:決策報表

 

決策報表中新增報表塊不支持控件設置,所以在決策報表中無法達到動態折疊樹的效果。

 

雙向折疊樹並與圖表交互

 

1. 描述

 

我們有時需要在雙向折疊樹中顯示對應的圖表,以方便查看,怎么實現呢?效果如下所示:

 

0

 

2. 解決方案

 

雙向折疊樹就是行與列方向都有 動態折疊樹,動態樹節點設置點擊事件,將節點值傳遞給圖表,從而實現雙向折疊樹與圖表的交互。

 

3. 示例

 

參見模板%FR_HOME%\WebReport\WEB-INF\reportlets\demo\basic\雙向折疊樹並與圖表交互子圖表.cpt

 

參見模板%FR_HOME%\WebReport\WEB-INF\reportlets\demo\basic\雙向折疊樹並與圖表交互.cpt

 

3.1 建立雙向折疊樹

 

首先建立一個雙向折疊樹,動態折疊樹的建立參見 動態折疊樹,雙向折疊樹需要注意折疊樹數據列不可位於同一行或者同一列。

 

3.2 設定節點點擊事件

 

為了實現雙向折疊樹與圖表的交互,需要設置樹節點的點擊事件,通過點擊事件將樹節點的值作為參數傳遞給圖表。

 

以效果圖中食品節點為例,說明控件的點擊事件設置

 

食品節點事件設置圖如下:

 

0

 

demo.js詳細內容參見%FR_HOME%\webapps\webroot\help\demo.js

 

treenode_lb1()方法作用是傳參,內容是:

 

  1. function treenode_lb1(treenode, cv) {  
  2.     if (treenode.selected()) {  
  3.     if (!window.fr_lb1_param){  
  4.         window.fr_lb1_param = {};  
  5.     }  
  6.     window.fr_lb1_param[cv] = cv;  
  7.     } else {  
  8.     window.fr_lb1_param[cv] = null;  
  9.     }  
  10.     postParam();  
  11. }  

 

demo.js中還有個方法是關聯雙向折疊樹並與圖表交互子圖表.cpt和雙向折疊樹並與圖表交互.cpt兩個模板,內容是:

 

  1. FR.doHyperlinkByPost('?viewlet=demo/basic/%e5%8f%8c%e5%90%91%e6%8a%98%e5%8f%a0%e6%a0%91%e5%b9%b6%e4%b8%8e%e5%9b%be%e8%a1%a8%e4%ba%a4%e4%ba%92%e5%ad%90%e5%9b%be%e8%a1%a8.cpt', {diqu:diqu_str,city:city_str,lb1:lb1_str,lb2:lb2_str,lx1:lx1_str,lx2:lx2_str},'IFRAME');  

 

3.3 圖表模板的引入

 

圖表模板通過樹模板中的一個網頁框控件引入,詳見tree.cpt。

 

網頁框控件屬性如下,關聯:雙向折疊樹並與圖表交互子圖表.cpt

 

0

 

上圖中,控件名為空,即默認值iframe,如果設置控件名,則必須與3.2中最后一個方法中的名字對應,如上文是iframe。

 

3.4 圖表模板的設置

 

圖表模板中,需要設置根據樹節點傳參的條件設置,具體設置參見%FR_HOME%\webapps\webroot\WEB-INF\reportlets\demo\basic\雙向折疊樹並與圖表交互.cpt

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM