1. 概述
1.1 版本
报表服务器版本 |
---|
11.0 |
1.2 预期效果
我们有时需要数据表可以根据横向和纵向的表头分别实现展开或折叠到任何数据详细信息,以方便动态查看,例如:显示不同地区下的食品类别的订单数量,效果如下图所示:
1.3 实现思路
双向折叠树就是行与列方向都有 折叠树,先制作为组织树报表,然后给每层数据添加树节点按钮,最后通过数据分析预览 (&op=view) 即可查看效果。
注:折叠树仅支持 普通报表 的 数据分析 预览,且不支持冻结。
2. 示例
2.1 准备数据
新建普通报表,新建数据库查询,SQL 查询语句为:
SELECT 货主地区,货主城市,客户ID,类别名称,订单.订单ID,产品名称 FROM 产品,类别,订单,订单明细
where 产品.类别ID=类别.类别ID and 订单.订单ID=订单明细.订单ID and 产品.产品ID=订单明细.产品ID and 货主地区 in ('华东','华北') and 类别名称 in ('谷类/麦片','肉/家禽','饮料') and 客户ID like '%a'
如下图所示:
2.2 设计表格
首先要设计一个双向折叠树,双向折叠树需要注意折叠树数据列不可位于同一行或者同一列。具体设置详见模板,主要注意单元格的扩展方向、父格设置以及过滤条件。表格样式如下图所示:
单元格设置如下:
单元格 | 设置 |
---|---|
A1~C3 | 合并 A1~C3 ,插入斜线,内容为:产品|订单数量|客户,选择从左上到右下发散 |
A4~C4 | 合并 A4~C4 ,拖入 ds1 货主地区数据列,纵向扩展 |
B5~C5 | 合并 B5~C5 ,拖入 ds1 货主城市数据列,纵向扩展,左父格为 A4 |
C6 | 拖入 ds1 客户ID数据列,纵向扩展,上父格为 B5 |
D1~D3 | 合并 D1~D3 ,输入文本:食品,横向扩展 |
E2~E3 | 合并 E2~E3 ,拖入 ds1 类别名称数据列,横向扩展,上父格为 D1 |
F3 | 拖入 ds1 产品名称数据列,横向扩展,上父格为 E2 |
G1~G3 | 合并 G1~G3 ,输入文本:饮品,横向扩展 |
H2~H3 | 合并 H2~H3 ,拖入 ds1 类别名称数据列,横向扩展,上父格为 G1 |
I3 | 拖入 ds1 产品名称数据列,横向扩展,上父格为 H2 |
2.3 设置树节点按钮
为了实现双向折叠树需要为树节点添加「按钮控件」。
2.3.1 纵向树节点按钮
1)选择 A4 单元格,右侧属性面板选择「控件设置」,选择「按钮控件」,按钮类型选择「树节点按钮」,如下图所示:
2)选择 B5 单元格,右侧属性面板选择「控件设置」,选择「按钮控件」,按钮类型选择「树节点按钮」,如下图所示:
2.3.2 横向树节点按钮
1)分别选择 D1、G1 单元格,右侧属性面板选择「控件设置」,选择「按钮控件」,按钮类型选择「树节点按钮」,如下图所示:
2)选择 E2 、H2 单元格,右侧属性面板选择「控件设置」,选择「按钮控件」,按钮类型选择「树节点按钮」,如下图所示:
2.4 设置过滤条件
1)双击 E2 单元格,选择「过滤」,类型为「普通」,过滤条件为:类别名称不等于饮料,用于显示除饮料外的其他食品类别,如下图所示:
2)双击 H2 单元格,选择「过滤」,类型为「普通」,过滤条件为:类别名称等于饮料,用于显示饮料类别等于饮料的类别名称,如下图所示:
3)双击 D4 、D5、D6 单元格,选择「过滤」,类型为「普通」,分别设置过滤条件如下:
单元格 | 过滤条件 |
---|---|
D4 | 类别名称不等于饮料 and 货主地区等于 A4 |
D5 | 类别名称不等于饮料 and 货主城市等于 B5 |
D6 | 类别名称不等于饮料 and 客户 ID 等于 C6 |
如下图所示:
4)双击 G4 、G5、G6 单元格,选择「过滤」,类型为「普通」,分别设置过滤条件如下:
单元格 | 过滤条件 |
---|---|
G4 | 类别名称等于饮料 and 货主地区等于 A4 |
G5 | 类别名称等于饮料 and 货主城市等于 B5 |
G6 | 类别名称等于饮料 and 客户 ID 等于 C6 |
如下图所示:
2.5 设置数据
将 「订单 ID 」数据列拖入 D4~I6 单元格内,选择「单元格元素>基本」,数据设置为「汇总」,「个数」,使得每个地区/每个食品种类的订单数量汇总显示,如下图所示:
2.6 效果预览
2.6.1 PC 端
保存,选择「数据分析」预览,效果如 1.2 节所示。
2.6.2 移动端
移动端不支持数据分析预览,要想在移动端实现折叠展开效果,可以参见文档 :移动端折叠展开树插件 。
3. 已完成模板
已完成模板请参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\TreeReport\双向折叠树.cpt
点击下载模板:双向折叠树.cpt