组织树报表中由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单元格,添加条件属性,当数据为空时隐藏该列,如下图:

如果组织结构的层级结构不确定,即有的层级有子层,有的层级没有子层时,其组织树报表的实现方式请查看不规则组织树报表

  • 其它设置

由于自动生成的字段是编码,可以使用数据字典将其转为对应的部门名称,如下图:

  • 保存与预览

保存模板,点击分页预览,效果如图二。

最新文章

  1. python --> 递归 以及装饰器
  2. iOS监听tableView组头切换事件
  3. 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)
  4. vi学习 常用命令-新建-复制-剪切-粘贴
  5. “代理XP”组件已作为此服务器安全配置的一部分被关闭的解决办法
  6. Discuz! 的编码规范
  7. MVC从服务器端返回js到客户端的方法(总结)
  8. NOR FLASH与NAND FLASH的区别
  9. KafkaClient接口与Kafka处理请求的若干特性
  10. Flex:在PANEL的title上加一个button[转]
  11. Spring中的事务管理详解
  12. Symfony2源码分析——启动过程1
  13. Sublime text3使用技巧及快捷键
  14. sqlserver2005仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'SendMealAddress'中为标识列指定显式值。
  15. NSURLRequest POST方式请求服务器示例
  16. 学习MVC之租房网站(五)-权限、角色、用户管理
  17. 基于hdp2.5升级phoenix版本为4.8
  18. vue中引入css文件
  19. css selector 用法
  20. maven build 的时候,卡死在Downloading metadata的解决方法

热门文章

  1. linux中进程和计划任务管理
  2. rabbitmq系列三 之发布/订阅
  3. WinForm—控制文本框只能输入整数(包括小数)
  4. keepalived安装配置实战心得(实现高可用保证网络服务不间断)
  5. 【kafka】kafka.admin.AdminOperationException: replication factor: 1 larger than available brokers: 0
  6. Sequel-Model
  7. EF CodeFirst Mirgration
  8. php在浏览器禁止cookie后,仍然能使用session的方法
  9. Ceph 存储集群 - 存储池
  10. yum命令速查