FineReport中树数据集如何实现组织树报表
组织树报表中由id与父id来实现组织树报表,若层级数较多时,对每个单元格设置过滤条件和形态会比较繁琐,因此FineReport提供了一种特殊的数据集——树数据集,只需要简单的设置就能自动递归出层级,方便的实现如下图组织树报表:
图一
图二
构建树
- 新建报表,添加数据集
新建工作薄,添加数据集ds1取出原始数据,SQL语句为SELECT * FROM 公司部门。
- 定义树数据集
1)根据父字段构建树
使用情形:原始表结构中符合ID、parentID结构,我们可以通过父ID这个字段生成树,添加树数据集,如下图:
2)根据数据长度构建树
使用情形:原始表结构中所有ID都在一列中,且没有父ID字段,但是ID是有规律的,每组的长度相同,且子级的前N位就是父级编号,添加树数据集,如下图:
- 预览数据
预览树数据集,可看到已自动生成递归树数据,FR_GEN_0为最高层,依次往下,如下:
纵向组织树编辑
按照下图所示将对应的数据列拖入到单元格中,并将A2单元格的左父格设置为A1,A3单元格的左父格设置为A2:
- 条件属性
有上面预览数据可以看到从二层FR_GEN_1开始,就会有空白数据,这是因为数据库中存储的数据有上一级部门本身的部门名称和部门ID,其上一级部门的部门级数会低一级,比如说上述数据的第一行为总部,虽然总部下面有子部门,但是数据库中还是要存储总部这个部门的部门名称和部门ID的,总部对应的级数为一级,那么其对应的数据记录行里面就只有FR_GEN_0层,下面的FR_GEN_1和FR_GEN_2这两层就会没有数据,显示为空白。
在模板制作过程中,从第二层级开始就会有空白数据,需要将空白数据隐藏掉,选中A2和A3单元格,添加条件属性,当数据为空时隐藏该行,如下图:
如果组织结构的层级结构不确定,即有的层级有子层,有的层级没有子层时,其组织树报表的实现方式请查看不规范组织树报表
- 其它设置
由于自动生成的字段是编码,可以使用数据字典将其转为对应的部门名称,如下图:
- 保存与预览
保存模板,点击分页预览,效果如图一。
横向组织树编辑
按照下图所示将对应的数据列拖入到单元格中,在右侧单元格属性表-扩展属性中将B1、C1单元格的扩展方向设为横向,
并将B1单元格的左父格设置为A1,C1单元格的左父格设置为B1:
- 条件属性
有上面预览数据可以看到从二层FR_GEN_1开始,就会有空白数据,这是因为数据库中存储的数据有上一级部门本身的部门名称和部门ID,其上一级部门的部门级数会低一级,比如说上述数据的第一列为总部,虽然总部下面有子部门,但是数据库中还是要存储总部这个部门的部门名称和部门ID的,总部对应的级数为一级,那么其对应的数据记录列里面就只有FR_GEN_0层,下面的FR_GEN_1和FR_GEN_2这两层就会没有数据,显示为空白。
在模板制作过程中,从第二层级开始就会有空白数据,需要将空白数据隐藏掉,选中B1和C1单元格,添加条件属性,当数据为空时隐藏该列,如下图:
如果组织结构的层级结构不确定,即有的层级有子层,有的层级没有子层时,其组织树报表的实现方式请查看不规则组织树报表
- 其它设置
由于自动生成的字段是编码,可以使用数据字典将其转为对应的部门名称,如下图:
- 保存与预览
保存模板,点击分页预览,效果如图二。
最新文章
- python -->; 递归 以及装饰器
- iOS监听tableView组头切换事件
- 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
- vi学习 常用命令-新建-复制-剪切-粘贴
- “代理XP”组件已作为此服务器安全配置的一部分被关闭的解决办法
- Discuz! 的编码规范
- MVC从服务器端返回js到客户端的方法(总结)
- NOR FLASH与NAND FLASH的区别
- KafkaClient接口与Kafka处理请求的若干特性
- Flex:在PANEL的title上加一个button[转]
- Spring中的事务管理详解
- Symfony2源码分析——启动过程1
- Sublime text3使用技巧及快捷键
- sqlserver2005仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'SendMealAddress'中为标识列指定显式值。
- NSURLRequest POST方式请求服务器示例
- 学习MVC之租房网站(五)-权限、角色、用户管理
- 基于hdp2.5升级phoenix版本为4.8
- vue中引入css文件
- css selector 用法
- maven build 的时候,卡死在Downloading metadata的解决方法
热门文章
- linux中进程和计划任务管理
- rabbitmq系列三 之发布/订阅
- WinForm—控制文本框只能输入整数(包括小数)
- keepalived安装配置实战心得(实现高可用保证网络服务不间断)
- 【kafka】kafka.admin.AdminOperationException: replication factor: 1 larger than available brokers: 0
- Sequel-Model
- EF CodeFirst Mirgration
- php在浏览器禁止cookie后,仍然能使用session的方法
- Ceph 存储集群 - 存储池
- yum命令速查