历史版本3 :下拉框实现直接联动图表 返回文档
编辑时间:
内容长度:图片数:目录数:
修改原因:
1. 描述编辑
通过报表和图表联动,利用单元格的超链接-图表超链-联动悬浮元素方法可以很容易做到点击报表中的某个数据,实现图表联动,但是有时报表中不需要展示数据,只需要选择不同的项目或类别,就可以实现图表联动,如下图只需要在下拉框中选择不同的销售员,下面对应的图表中自动联动出该销售员的数据折线图。这种效果如何做到的呢?
2. 实现思路编辑
以超链接中图表联动为依据,通过下拉框编辑后事件控制单元格值,可以通过设置一个单元格的超链接来联动图表,再模拟点击此超链接,即可实现联动,用到contentPane.setValue(),以及jquery中对象点击事件,以及填报中动态设置值与获取值的一个小技巧。
3. 示例编辑
3.1 新建数据集
新建普通报表,添加数据集ds1:select distinct 销售员 from 销量
数据集ds2:SELECT * FROM 销量 where 销售员='${销售员}'
3.2 模板制作
设置报表样式,C1为【下拉框控件】,合并一片单元格,插入折线图(新特性),模板如下:
选择模板>模板web属性>填报页面设置,勾选直接显示控件,使填报预览时直接显示控件类型:

3.3 下拉框设置
下拉框数据字典设置如下:
点击事件编辑,添加编辑后事件:
//将当前选择的销售员设置进D1单元格
contentPane.setCellValue('D1',null,this.getValue());
//点击D1单元格中的超链接
$('td[id^=D1] .linkspan').click();
3.4 设置图表属性
选中图表,在右上角图表属性中设置图表数据,如下图:
并将图表标题设为【销量情况统计表】:
3.5 设置单元格超链
D1单元格为准备存放销售员的单元格,以此单元格来联动B3单元格中存放的图表。
右击D1单元格,选择超级链接,设置如下:
注:此处联动的销售员必须是单元格号,不能用公式=$$$,否则取不到用JS动态设置到此单元格的值
为了不让D1显示出我们设置出的值,选中D1,在右侧单元格属性表中选择形态>公式形态,='',如下图:
4. 保存预览编辑
保存模板,点击填报预览,效果如上。
已完成模板,可参见:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\SpecialSubject\HyplinkReport\下拉框和图表联动.cpt