组织树报表示例

编辑
  • 文档创建者:文档助手1
  • 浏览次数:16812次
  • 编辑次数:12次
  • 最近更新:Kevin-s 于 2019-06-02
  • 1. 描述

    事物之间存在分支层次关系时,一般可用折叠或缩进形式的组织树展现。

    在数据表结构中,这种分支层次关系一般通过类似 ID 与 parentID 两个字段表示,下图为表结构关系及其实现的组织树效果:

    可以看到,组织的每个对象都由第一列唯一表示,每个对象之间的关系(上层对象)都是由第二列表示(值为第一列中中存在的值)。如何分别获取每层对象的数据及其上下层关系生成右侧的组织树呢?

    2. 实现步骤

    以自带的 FRDemo 数据连接中的“公司部门”表数据为例。

    2.1 新建报表并添加数据集

    新建普通报表并添加数据集,查询出公司部门表,该表即为上图中典型的 ID 与 parentID 结构。数据集 ds1:SELECT * FROM 公司部门

    2.2 设计报表模板

    通过分析数据集中的数据可以看出,该组织结构包含3层,因此我们需要将这三层分别取出来。由于 ID 列可以唯一表示一个部门,并且部门之间的层次关系也是通过 ID 列的值表示的,所以:

    1)模板有三个单元格组织,每个单元格扩展代表一个层次;

    2)单元格中取数据集中的 ID 列。

    最终模板效果如下:


    2.3 过滤第一层数据

    单元格 A1 代表第一层部门,比如“总部”。但默认扩展出所有部门 ID,需要通过过滤条件筛选出第一层部门。

    由数据可以看出,第一层上级 ID 为空,因此双击A1单元格,选择过滤,添加条件“上级 ID” 等于 'NULL',如下图设置:

    注:根据数据的不同过滤条件相应改变

    2.4 过滤第二层数据

    单元格 A2 代表第二层部门,比如“人力资源部”、“市场部”等。

    1)设置父格:设置 A2 的父格为 A1,使得该级部门ID能够跟随上级部门ID自动扩展;

    2)过滤:双击 A2 单元格,点击过滤,添加条件“上级 ID”等于“A1”;

    3)取消父格过滤:由于设置了父格,A1、A2 中数据列又来自于同一数据集,此时子格默认会将父格作为过滤条件,即会筛选出部门 ID=父 ID的数据,导致没有符合条件的数据。因此需要在 A2 单元格过滤时,取消勾选“父格条件”。

    设置如下图:

    2.5 过滤第三层数据

    第三层的原理与第二层相同,进行同样的设置即可。若数据中组织层数不止三层,可以按照相同的方法添加。

    注:子层单元格过滤时必须取消勾选“父格条件”选项。

    2.6 其他设置

    模板中使用的是部门 ID,若要显示为相应的部门名称,可以通过 数据字典 进行转换。

    若某一层中有些有子层,有些没有子层,此时由于扩展会出现一些空白行,可以将空白行设置条件属性进行 隐藏

    3. 效果预览

    3.1 PC 端预览效果

    3.2 移动端预览效果

    1)App 效果:


    2)H5 效果

    4. 已完成模板

    模板效果在线查看请点击 组织树报表.cpt 

    已完成的模板,可参见%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\GroupReport\组织树报表.cpt

    点击下载模板


    附件列表


    主题: 报表应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]