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

2. 實現思路
3. 示例
3.1 打開模板
打開模板:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Advanced\GroupReport\CusGroup_6.cpt,實現方法可參考
樹數據集實現組織樹報表
3.2 增加樹節點按鈕
通過設置樹節點按鈕來實現折疊樹,分別右擊單元格A1、A2、A3,選擇控件設置>按鈕控件,按鈕類型選擇“樹節點按鈕”,設置如下:

3.3 保存與預覽
保存模板。點擊設計器中的數據分析,預覽效果即如上。在線查看示例效果請點擊
TreeReport.cpt
已完成模板請參照%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\TreeReport\動態折疊樹.cpt
由此我們可看出,動態折疊樹的設計思路是點擊主格時,控制附屬於該組的子項內容展開與折疊,由此達到數據分析的效果。
注:由於我們是通過按鈕控件實現該功能的,而普通的分頁預覽是不會將控件顯示出來,需要在op=view狀態即數據分析下才能顯示。
注:動態折疊樹不支持字體顏色設置。
動態折疊樹沒有效果的原因
1. 描述
用戶設置了折疊樹按鈕后,預覽報表時沒有動態樹效果。
2. 原因一:預覽模式錯誤
實現動態折疊樹必須是以數據分析預覽(op=view),而使用分頁預覽,可以看到沒有實現動態折疊樹效果,如下圖:

3. 原因二:聚合報表
聚合報表不支持動態折疊樹,所以在聚合報表中設置了動態折疊樹、數據分析預覽時沒有動態樹效果。
4. 原因三:決策報表
決策報表中新增報表塊不支持控件設置,所以在決策報表中無法達到動態折疊樹的效果。
雙向折疊樹並與圖表交互
1. 描述
我們有時需要在雙向折疊樹中顯示對應的圖表,以方便查看,怎么實現呢?效果如下所示:

2. 解決方案
雙向折疊樹就是行與列方向都有
動態折疊樹,動態樹節點設置點擊事件,將節點值傳遞給圖表,從而實現雙向折疊樹與圖表的交互。
3. 示例
參見模板%FR_HOME%\WebReport\WEB-INF\reportlets\demo\basic\雙向折疊樹並與圖表交互子圖表.cpt
參見模板%FR_HOME%\WebReport\WEB-INF\reportlets\demo\basic\雙向折疊樹並與圖表交互.cpt
3.1 建立雙向折疊樹
首先建立一個雙向折疊樹,動態折疊樹的建立參見
動態折疊樹,雙向折疊樹需要注意折疊樹數據列不可位於同一行或者同一列。
3.2 設定節點點擊事件
為了實現雙向折疊樹與圖表的交互,需要設置樹節點的點擊事件,通過點擊事件將樹節點的值作為參數傳遞給圖表。
以效果圖中食品節點為例,說明控件的點擊事件設置
食品節點事件設置圖如下:

demo.js詳細內容參見%FR_HOME%\webapps\webroot\help\demo.js
treenode_lb1()方法作用是傳參,內容是:
- function treenode_lb1(treenode, cv) {
- if (treenode.selected()) {
- if (!window.fr_lb1_param){
- window.fr_lb1_param = {};
- }
- window.fr_lb1_param[cv] = cv;
- } else {
- window.fr_lb1_param[cv] = null;
- }
- postParam();
- }
demo.js中還有個方法是關聯雙向折疊樹並與圖表交互子圖表.cpt和雙向折疊樹並與圖表交互.cpt兩個模板,內容是:
- 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

上圖中,控件名為空,即默認值iframe,如果設置控件名,則必須與3.2中最后一個方法中的名字對應,如上文是iframe。
3.4 圖表模板的設置
圖表模板中,需要設置根據樹節點傳參的條件設置,具體設置參見%FR_HOME%\webapps\webroot\WEB-INF\reportlets\demo\basic\雙向折疊樹並與圖表交互.cpt