数据集参数实现动态列

目录:

  1. 应用场景
  2. 实现思路
  3. 示例
  4. 应用场景
    使用函数实现动态列报表需要取出所有的数据,然后来实现动态列报表,当数据量大且所选列不是很多的情况下性能就慢了。
    该节我们介绍另一种动态列制作方法,该方法在数据量大时可以实现层式报表分页查询,从而提高报表性能。
  5. 实现思路
    通过定义数据集参数直接选出需要展示的列,将数据列拖入到单元格中。
  6. 示例
    3.1 新建模板
    新建普通报表,新建一个数据集ds1,sql语句:SELECT ${col} FROM 销量
    点击刷新;设置参数col,默认值为*,查询出所有数据。如下图所示:

3.2 表样设计
由于不确定用户选择的字段个数,因此制作模板时需要拖入所有字段。此默认参数即为查询出全部,我们将该表的5个字段依次拖入模板中,并设置数据列属性为列表;
另外不确定用户会选择哪些字段,因此拖入的字段不能用固定的列名。选中数据列所在单元格,将列名改为列序号,例如下图A2:
注:由于列是不固定的,所以要将数据列的名称换成#1,#2,#数字代表数据对应的第几列,#1表示第一列的数据。

表头设置,右击A1单元格插入公式=INDEXOFARRAY(split( c o l , " , " ) , 1 ) , 将 col,","),1),将 col,","),1)col参数转换成数组,返回数组里的第一个的值,B1、C1、D1、E1分别返回第二、三、四、五个的值,
所以B1单元格使用公式=INDEXOFARRAY(split($col,","),2),以此类推……
如下图:

3.3 报表边框和表头背景设置
给A2-E2增加条件属性,点击要改变的属性选择边框:编辑添加外部边框;类型选择公式,在公式中输入:len($ ) ! = 0 , 即 单 元 格 有 数 据 的 话 显 示 边 框 。 如 下 图 : 给 A 1 − E 1 增 加 条 件 属 性 , 点 击 要 改 变 的 属 性 选 择 背 景 和 边 框 , 类 型 选 择 公 式 , 在 公 式 中 输 入 : l e n ( )!=0,即单元格有数据的话显示边框。如下图: 给A1-E1增加条件属性,点击要改变的属性选择背景和边框,类型选择公式,在公式中输入:len( )!=0A1E1len( ) ! = 0 , 即 单 元 格 有 数 据 的 话 显 示 背 景 和 边 框 。 注 : 公 式 l e n ( )!=0,即单元格有数据的话显示背景和边框。 注:公式len( )!=0len( ) ! = 0 中 , 如 果 单 元 格 数 据 类 型 为 字 符 串 , 则 公 式 应 为 l e n ( ′ )!=0中,如果单元格数据类型为字符串,则公式应为len(' )!=0len($’)!=0。
3.4 参数面板设置
设置参数面板,col参数生成控件。点击控件,选择下拉复选框控件;控件值为空;
设置数据字典的类型为公式,实际值输入公式=TABLEDATAFIELDS(“ds1”),如下图所示:

3.5 效果查看
点击分页预览,当选择对应的一些数据列,点击查询就展示对应选择列的数据,如下图所示:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值