使用函数实现动态列

编辑
  • 文档创建者:文档助手1
  • 浏览次数:23248次
  • 编辑次数:14次
  • 最近更新:Kevin-s 于 2019-06-03
  • 1. 描述

    此方法实现动态列报表适用于数据列比较多,数据量不是很大的情况。

    2. 思路

    首先定义一个参数,参数类型为下拉复选框类型编辑器,参数的值为数据表中的所有列;然后通过 split函数数据集函数 来实现。

    3. 示例

    下面我们以销量表为例,来实现动态列的效果。

    3.1 定义数据集

    新建工作簿,增加数据集 ds1,SQL 语句为:SELECT * FROM 销量

    3.2 报表参数设置

    点击模板>模板参数,增加一个参数名为 col 的参数,默认值为空。

    3.3 表样设计

    按照下图所示设置表样:

    222

    注:=split($col,","),$col表示参数名称,这个公式的意义是分割参数组成的字符串数组,将参数分割为多个值。

    =ds1.select(#0),该公式的意义是取ds1数据源当中的所有行号,返回的结果为 1,2,3……。 

    =ds1.value(a3, b2),该公式的意思是获取 B2 单元格所指定的列的列内容,其返回记录的排列顺序是按照 A3 当中所获取的行号进行排列。

    B2 单元格设置横向扩展!

    3.4 参数界面设置

    点击参数界面编辑触笔,切换到参数界面的可编辑状态,使用默认的参数界面,勾选右侧显示参数窗体选项。

    1)控件编辑风格设置

    设置 col 参数的控件类型为下拉复选框,点击数据字典,选择类型为公式,在实际值处使用公式=TABLEDATAFIELDS("ds1"),即取 ds1 所有的列名为下拉复选框的值,如下图进行定义:

    222

    4. 效果预览

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

    5. 已完成模板

    在线查看模板效果请点击DynamicCol.cpt

    已完成的模板,可参见%FR_HOME%\webroot\WEB-INF\reportlets\doc\Parameter\DynamicCol\函数实现动态列cpt


    关键字:动态列查询


    附件列表


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

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]