在对数据字段进行分类管理时,利用动态树折叠数据是一个很好的方法,也就是点击数据前面的加号才展开对应下面的数据,如下图。那这样的效果在制作报表时该如何实现呢? 下面以报表工具FineReport为例介绍。

思路:

通过将模版设置为组织树报表,然后通过设置树节点按钮,最好通过数据分析预览或者form表单预览即可查看效果。

步骤:

1、  初步建立模板

建立模板就相当于建立一个excel的sheet,只不过是cpt的形式。把相应的字段拖到单元格内。

2、  增加树节点按钮

通过设置树节点按钮来实现折叠树,分别右击单元格A1、A2、A3,选择空间设置>按钮,按钮类型选择“树节点按钮”,设置如下:

1、  保存与预览

保存模板,点击设计器中的数据分析,在网页上的预览效果即如上述所示。

动态效果展示:

用户设置了折叠树按钮后,预览报表时没有动态树效果,可能是预览模式错误。

我们是通过按钮控件实现该功能的,而普通的分页预览是不会将控件显示出来,如下图所示:

因此需要在op=view状态即数据分析下才能预览显示出效果。

折叠树延伸

需要在双向折叠树中显示对应的图表,以便查看,如下图所示:

具体步骤如下所示:

1、建立双向折叠树:

首先建立一个双向折叠树,双向折叠树需要注意折叠树数据列不可位于同一行或者同意列

2、设定节点点击事件

为了实现双向折叠树与图标的交互,需要设置树节点的点击事件,通过点击事件将树节点的值作为参数传递给图表。

下面以效果图中食品节点为例来说明控件点击事件的设置。

食品节点事件效果图如下所示

treenode_lb1()方法作用是传参,内容是:

1
2
3
4
5
6
7
8
9
10
11
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.cpttree_chart.cpt两个文档,内容是:

1
2
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、图表模版的设置

图表模板中,需要设置根据树节点传参的条件设置。

综上可以看出,动态折叠树的设计思路是点击主格时,控制附属于该组的子项内容展开与折叠,由此到达数据分析的效果。

本文转自 雄霸天下啦 51CTO博客,原文链接:http://blog.51cto.com/10549520/1841928,如需转载请自行联系原作者

如何利用FineReport制作动态树报表相关推荐

  1. 利用Flourish制作动态条形图

    前几天,看到关注的一个公众号,发了一篇利用Flourish制作动态可视化图的文章,里面提到了怎么制作动态条形图,觉得挺酷的,用他给的数据自己也动手做了一下. 内容来源:公众号CDA数据分析师(http ...

  2. 利用js制作动态小时钟

    利用js制作动态小时钟 在学完Date()函数之后,可以用来与CSS结合制作一个能转动的时钟. 新建html文件,写好基本结构,代码如下: <!DOCTYPE html> <html ...

  3. 如何用FineReport制作一张报表(一)

    1. 描述 这篇文档通过制作一张简单普通报表,让大家可以快速了解 FineReport 报表的制作流程. 1.1 报表设计流程图 1.2 第一张报表效果 在制作这张简单普通报表之前,我们先来看一下报表 ...

  4. excel制作动态数据分析报表

    在通过使用excel制作图表时,要注意.xls文件和.xlsx文件的不同. 下面使用的是.xlsx文件进行操作,实现动态数据报表的制作. 或者 选择显示下的经典数据透视表布局 点击确定后得到与.xls ...

  5. python实战|利用openpyxl制作订单统计报表

    刚开始学习openpyxl,试下利用openpyxl制作平时常用的统计报表,发现功能还是挺实用的,对包不熟悉,代码应该还有很多优化的空间,好几个循环都应该可以优化下,增加可读性~  最终试验做成的报表 ...

  6. 利用Python制作动态排名图

         作者:刘早起早起      来源:早起Python 大家好,今天我们要讲的是如何使用Pyecharts制作动态排名变化图???? 制作这样的一个动态图使用到的是Pyecharts中的Time ...

  7. 教你如何利用EXCEL制作动态仪表盘

    我们通常见到的仪表盘图类似汽车内的里程表,常用于反应目标达成率或者是目标的完成情况,从直观上了解数据内容,展现目标的达成和变化情况. 本节使用收入目标值的数据,使用EXCEL工具,构建辅助列和占位符, ...

  8. 如何用FineReport制作一张报表(二)

    2.4.2 图表设计 图表的作用在于可以更加直观地表现数据,提升用户的报表查看体验. 我们在这张报表中插入柱形图来直观化展示各销售员每个产品的销售总量. 1)合并 A7~D18 单元格,选择菜单栏插入 ...

  9. java自定义统计报表_用Java报表工具FineReport制作人员统计报表

    阅读提示: 文章中与FineReport软件使用的相关内容,基于软件的V7.0旧版本编写,不代表软件最新的使用方式. FineReport最新版免费试用:https://www.finereport. ...

最新文章

  1. Django源码分析8:单元测试test命令浅析
  2. java isight zmf_isight集成catia和abaqus,nastran流程详解
  3. 单日课程超10万节!VIPKID 如何通过实时计算提升上课体验?
  4. Dune Analytics 发布 v2 版本,新增自动实时查询刷新
  5. 【软件项目管理】里程碑事件的定义
  6. Android MTP 模式 驱动无法安装解决方案
  7. 解决Ubuntu16.04解压cudnn文件时报错could not create a hard link file
  8. 学习Python的第七天
  9. Vue.js 作者尤雨溪:直接学 Vue 3 吧
  10. 金山Wps珠海实习杂记(一)
  11. html 消除序号,JS实现删除一行数据页面序号重新排序功能。
  12. 深度学习机器人交易_使用深度学习创建股票交易机器人
  13. 一筐梨子一筐水果——协变性(covariant)
  14. UE4中程序驱动的LookAt动画
  15. PS打不开php,ps打不开未响应怎么办
  16. HDU 5378 树上的概率DP Leader in Tree Land
  17. Linux启动流程之ROM-CODE
  18. Python-Flask开发微电影网站(九)
  19. 1031. 两个非重叠子数组的最大和-构造子数组和数组遍历数组
  20. Did the Microsoft Stack Kill MySpace?

热门文章

  1. “六成应用开发不需要程序员”喜提热搜背后,RPA 会抢饭碗吗?
  2. 惊艳了!升级版的 APDrawing,秒让人脸照变线条肖像画
  3. 程序员必备!CSDN 公众号新功能上线!现在体验有惊喜!
  4. 林丹退役,用 Python 看看大家怎么说?
  5. HSRP多组基础配置实验
  6. web.xml配置错误页面,及输出错误信息
  7. 迁移数据中心的三大风险与应对策略
  8. p2148 [SDOI2009]ED
  9. 分表需要解决的问题 基于MyBatis 的轻量分表落地方案
  10. Jquery真的不难~第八回 JS的闭包问题