1. 概述
1.1 应用场景
在制作决策报表时,常常希望有一些交互效果,例如:
点击报表块单元格中不同的数据,图表能根据对应的数据展示图形。
点击一个图表的分类或系列,另一个图表或表格能联动显示对应分类或系列的数据。效果如下:
1.2 功能简介
组件之间的联动实质上都是利用 超级链接传参 实现的。
如果是图表块,添加的超链为:「特效>交互属性>超级链接>当前表单对象」,配置页面如下图所示:
注:报表块单元格里的超链名字跟图表不一样,叫做「当前决策报表对象」,但配置页面是相同的,这点需要注意下。
2. 示例
2.1 准备数据
点击设计器左上角「文件>新建决策报表」,新建三个数据集,SQL 查询语句分别为:
ds1:SELECT * FROM 销量
ds2:SELECT * FROM 销量 WHERE 地区='${area}'
ds3:SELECT * FROM 销量 WHERE 销售员='${spe}'
ds2 数据集中定义了参数 area,表示「地区」,设置其默认值为「华东」。如下图所示:
ds3 数据集中定义了参数 spe,表示「销售员」,设置其默认值为「孙林」。如下图所示:
2.2 设计报表
首先将决策报表 body 的布局方式修改为「绝对布局」,再分别拖入组件,最终决策报表 body 的效果如下图所示:
2.2.1 设计饼图
向 body 中拖入一个饼图,双击饼图,选择「数据」,绑定数据集 ds1 的数据,分类为「无」,系列为「地区」,值为「销量>求和」。如下图所示:
选择「样式>标题」,设置饼图标题为「地区销量对比」。如下图所示:
2.2.2 设计表格 A
向 body 中拖入一个报表块,双击报表块进入编辑界面后,将 ds1 数据集的 地区、销售员、销量 字段拖入 A2~C2 单元格中,设置 C2 单元格的数据设置为「汇总>求和」,表格样式如下图所示:
2.2.3 设计柱形图
向 body 中拖入一个柱形图,双击柱形图,选择「数据」,绑定数据集 ds2 的数据,分类为「销售员」,系列名使用「字段名」选择「销量」,汇总方式为「求和」。如下图所示:
选择「样式>标题」,点击 F(x) 进入公式定义界面,输入柱形图的标题为 $area+"销售员销量分析" ,则柱形图的标题也可以根据参数 area 变化。如下图所示:
2.2.4 设计表格 B
1)向 body 中拖入一个报表块,双击报表块进入编辑界面后,合并 A1~C1 单元格,将 ds3 数据集的 销售员 字段拖入 A1 单元格,将 产品、产品类型、销量 字段拖入 A2~C2 单元格,设置 C2 单元格的数据设置为「汇总>求和」。
2)设置 A2 单元格的左父格为 A1 单元格。如下图所示:
3)设置 A1 单元格的显示值为 =$$$+"各产品销量",$$$ 表示当前单元格显示的值。如下图所示:
2.2.5 设置组件标题
上述设计的图表和报表块均为决策报表的组件,我们给每个组件均设置了标题。选中组件,在「属性>标题样式」中设置即可。
以饼图为例,设置如下图所示:
2.3 设置联动
2.3.1 饼图联动柱形图
我们要实现的效果是:点击饼图的系列即地区,柱形图就显示为点击的地区下所有销售员的销量。
编辑饼图,点击右侧属性面板的「特效」,在「交互属性>超级链接」处添加一个「当前表单对象」,选择柱形图对象即 chart1,并添加参数 area,参数值选择「系列名称」。即将饼图的系列名作为 area 参数传递给柱形图。
步骤如下图所示:
2.3.2 表格A 联动柱形图
我们要实现的效果是:点击单元格中的地区,柱形图就显示为点击的地区下所有销售员的销量。
选中 A2 单元格,点击右侧属性面板的「超级链接」,添加一个「当前决策报表对象」(同当前表单对象),选择柱形图对象即 chart1,并添加参数 area,参数值为公式 =A2。即将 A2 单元格的值作为 area 参数传递给柱形图。
步骤如下图所示:
2.3.3 柱形图联动表格B
我们要实现的效果是:点击柱形图的柱子,表格 B 就根据柱子的分类即销售员展示对应的各产品销量。
注:在普通报表中,无法直接在一张模板中实现图表联动单元格或单元格联动单元格,需借助网页框控件,详情可参考文档 数据钻取到当前模板 。
编辑柱形图,点击右侧属性面板的「特效」,在「交互属性>超级链接」处添加一个「当前表单对象」,选择表格 B 所在的报表块即 report1,并添加参数 spe,参数值选择「分类名」。即将柱形图的分类名作为 spe 参数传递给表格 B。
步骤如下图所示:
2.4 效果预览
2.4.1 PC 端
保存报表,点击「PC 端预览」,效果如 1.1 节预期效果所示。
2.4.2 移动端
App 端和 HTML5 端均支持,效果如下图所示:
3. 模板下载
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\frm\决策报表组件联动.frm
点击下载模板:决策报表组件联动.frm