您好,登錄后才能下訂單哦!
在對數據字段進行分類管理時,利用動態樹折疊數據是一個很好的方法,也就是點擊數據前面的加號才展開對應下面的數據,如下圖。那這樣的效果在制作報表時該如何實現呢? 下面以報表工具FineReport為例介紹。
思路:
通過將模版設置為組織樹報表,然后通過設置樹節點按鈕,最好通過數據分析預覽或者form表單預覽即可查看效果。
步驟:
1、 初步建立模板
建立模板就相當于建立一個excel的sheet,只不過是cpt的形式。把相應的字段拖到單元格內。
2、 增加樹節點按鈕
通過設置樹節點按鈕來實現折疊樹,分別右擊單元格A1、A2、A3,選擇空間設置>按鈕,按鈕類型選擇“樹節點按鈕”,設置如下:
1、 保存與預覽
保存模板,點擊設計器中的數據分析,在網頁上的預覽效果即如上述所示。
動態效果展示:
用戶設置了折疊樹按鈕后,預覽報表時沒有動態樹效果,可能是預覽模式錯誤。
我們是通過按鈕控件實現該功能的,而普通的分頁預覽是不會將控件顯示出來,如下圖所示:
因此需要在op=view狀態即數據分析下才能預覽顯示出效果。
折疊樹延伸
需要在雙向折疊樹中顯示對應的圖表,以便查看,如下圖所示:
具體步驟如下所示:
1、建立雙向折疊樹:
首先建立一個雙向折疊樹,雙向折疊樹需要注意折疊樹數據列不可位于同一行或者同意列
2、設定節點點擊事件
為了實現雙向折疊樹與圖標的交互,需要設置樹節點的點擊事件,通過點擊事件將樹節點的值作為參數傳遞給圖表。
下面以效果圖中食品節點為例來說明控件點擊事件的設置。
食品節點事件效果圖如下所示
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中還有個方法是關聯tree.cpt和tree_chart.cpt兩個文檔,內容是:
FR.doHyperlinkByPost('ReportServer?reportlet=demo/analytics/tree/tree_chart.cpt', {diqu:diqu_str,city:city_str,lb1:lb1_str,lb2:lb2_str,lx1:lx1_str,lx2:lx2_str},'iframe'); }
3、 圖表模板的引入
圖表模板通過樹模板中的一個網頁框控件引入,屬性如下,關聯tree_chart.cpt
上圖中,控件名為空,即默認是iframe,如果設置控件名,則必須與最后一個方法中的名字對應
4、圖表模版的設置
圖表模板中,需要設置根據樹節點傳參的條件設置。
綜上可以看出,動態折疊樹的設計思路是點擊主格時,控制附屬于該組的子項內容展開與折疊,由此到達數據分析的效果。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。