数据集参数实现动态列

编辑
文档创建者:文档助手1 (67727 )     浏览次数:14242次     编辑次数:11次     最近更新:Holly 于 2017-04-24     

目录:

1. 应用场景编辑

使用函数实现动态列报表需要取出所有的数据,然后来实现动态列报表,当数据量大且所选列不是很多的情况下性能就慢了。
该节我们介绍另一种动态列制作方法,该方法在数据量大时可以实现层式报表分页查询,从而提高报表性能。

2. 实现思路编辑

通过定义数据集参数直接选出需要展示的列,将数据列拖入到单元格中。

3. 示例编辑

3.1 打开模板
打开模板:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameter\DynamicCol\DynamicCol.cpt
3.2 修改数据集
将数据集修改为:SELECT ${col} FROM 销量
设置参数col,默认值为*,查询出所有数据。
222
3.3 表样设计
由于不确定用户选择的字段个数,因此制作模板时需要拖入所有字段。此默认参数即为查询出全部,我们将该表的5个字段依次拖入模板中,并设置数据列属性为列表;
另外不确定用户会选择哪些字段,因此拖入的字段不能用固定的列名。选中数据列所在单元格,将列名改为列序号,如下图:
222
表头设置,A1单元格内容使用公式=INDEXOFARRAY(split($col,","),1),将$col参数转换成数组,返回数组里的第一个的值,B1、C1、D1、E1分别返回第二、三、四、五个的值,如下图:
222
注:由于列是不固定的,所以要将数据列的名称换成#1,#2,#数字代表数据对应的第几列,#1表示第一列的数据。
将报表参数删除。
3.4 报表边框和表头背景设置
给A2-E2增加条件属性,点击要改变的属性选择边框,选择公式,在公式中输入:len($$$)!=0即单元格有数据的话显示边框。
给A1-E1增加条件属性,点击要改变的属性选择背景和边框,选择公式,在公式中输入:len($$$)!=0即单元格有数据的话显示背景和边框。
注:公式len($$$)!=0中,如果单元格数据类型为字符串,则公式应为len('$$$')!=0
3.5 效果查看
点击分页预览,当选择对应的一些数据列,点击查询就展示对应选择列的数据,如下图所示:

222
在线查看模板效果请点击DynamicCol1.cpt
具体模板可参考:%FR_HOME%\WebReport\WEB-INF\reportlets\doc\Parameterr\DynamicCol\DynamicCol1.cpt
注:若数据量非常大的情况下,此方法可以实现分页查询的效果来提高性能,具体的设置方法可参考多数据集实现层式报表章节文档。
注:参数面板中下拉复选框控件的默认值必须为空

附件列表


主题: 参数应用
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

本文档是否有用?
谢谢! 我们非常感谢您的反馈。
提交反馈: