溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何利用FineReport制作動(dòng)態(tài)樹報(bào)表

發(fā)布時(shí)間:2020-10-18 14:51:23 來(lái)源:網(wǎng)絡(luò) 閱讀:355 作者:雄霸天下啦 欄目:開發(fā)技術(shù)

在對(duì)數(shù)據(jù)字段進(jìn)行分類管理時(shí),利用動(dòng)態(tài)樹折疊數(shù)據(jù)是一個(gè)很好的方法,也就是點(diǎn)擊數(shù)據(jù)前面的加號(hào)才展開對(duì)應(yīng)下面的數(shù)據(jù),如下圖。那這樣的效果在制作報(bào)表時(shí)該如何實(shí)現(xiàn)呢? 下面以報(bào)表工具FineReport為例介紹。

如何利用FineReport制作動(dòng)態(tài)樹報(bào)表

思路:

通過將模版設(shè)置為組織樹報(bào)表,然后通過設(shè)置樹節(jié)點(diǎn)按鈕,最好通過數(shù)據(jù)分析預(yù)覽或者form表單預(yù)覽即可查看效果。

步驟:

1、  初步建立模板

 建立模板就相當(dāng)于建立一個(gè)excel的sheet,只不過是cpt的形式。把相應(yīng)的字段拖到單元格內(nèi)。

2、  增加樹節(jié)點(diǎn)按鈕

 通過設(shè)置樹節(jié)點(diǎn)按鈕來(lái)實(shí)現(xiàn)折疊樹,分別右擊單元格A1、A2、A3,選擇空間設(shè)置>按鈕,按鈕類型選擇“樹節(jié)點(diǎn)按鈕”,設(shè)置如下:

如何利用FineReport制作動(dòng)態(tài)樹報(bào)表

1、  保存與預(yù)覽

保存模板,點(diǎn)擊設(shè)計(jì)器中的數(shù)據(jù)分析,在網(wǎng)頁(yè)上的預(yù)覽效果即如上述所示。

動(dòng)態(tài)效果展示:

用戶設(shè)置了折疊樹按鈕后,預(yù)覽報(bào)表時(shí)沒有動(dòng)態(tài)樹效果,可能是預(yù)覽模式錯(cuò)誤。

我們是通過按鈕控件實(shí)現(xiàn)該功能的,而普通的分頁(yè)預(yù)覽是不會(huì)將控件顯示出來(lái),如下圖所示:

如何利用FineReport制作動(dòng)態(tài)樹報(bào)表

因此需要在op=view狀態(tài)即數(shù)據(jù)分析下才能預(yù)覽顯示出效果。

折疊樹延伸

需要在雙向折疊樹中顯示對(duì)應(yīng)的圖表,以便查看,如下圖所示:

如何利用FineReport制作動(dòng)態(tài)樹報(bào)表

具體步驟如下所示:

1、建立雙向折疊樹:

首先建立一個(gè)雙向折疊樹,雙向折疊樹需要注意折疊樹數(shù)據(jù)列不可位于同一行或者同意列

2、設(shè)定節(jié)點(diǎn)點(diǎn)擊事件

為了實(shí)現(xiàn)雙向折疊樹與圖標(biāo)的交互,需要設(shè)置樹節(jié)點(diǎn)的點(diǎn)擊事件,通過點(diǎn)擊事件將樹節(jié)點(diǎn)的值作為參數(shù)傳遞給圖表。

下面以效果圖中食品節(jié)點(diǎn)為例來(lái)說(shuō)明控件點(diǎn)擊事件的設(shè)置。

食品節(jié)點(diǎn)事件效果圖如下所示

如何利用FineReport制作動(dòng)態(tài)樹報(bào)表

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

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中還有個(gè)方法是關(guān)聯(lián)tree.cpttree_chart.cpt兩個(gè)文檔,內(nèi)容是:

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、  圖表模板的引入

圖表模板通過樹模板中的一個(gè)網(wǎng)頁(yè)框控件引入,屬性如下,關(guān)聯(lián)tree_chart.cpt

如何利用FineReport制作動(dòng)態(tài)樹報(bào)表

上圖中,控件名為空,即默認(rèn)是iframe,如果設(shè)置控件名,則必須與最后一個(gè)方法中的名字對(duì)應(yīng)

4、圖表模版的設(shè)置

圖表模板中,需要設(shè)置根據(jù)樹節(jié)點(diǎn)傳參的條件設(shè)置。

綜上可以看出,動(dòng)態(tài)折疊樹的設(shè)計(jì)思路是點(diǎn)擊主格時(shí),控制附屬于該組的子項(xiàng)內(nèi)容展開與折疊,由此到達(dá)數(shù)據(jù)分析的效果。



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI