历史版本16 :根据参数值显示不同的列 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

报表服务器版本
功能变更
11.0--

1.2 预期效果

有时我们需要选择不同参数,呈现不同的模板内容。例如,根据单选按钮组选择的汇总类型,查询显示不同的汇总报表。如下图所示:

222

1.3 实现思路

用户需要参数控件来控制报表显示不同的列,可有两种实现方法:

  • 方法一:通过条件属性控制报表显示不同的列。

  • 方法二:通过 SQL 语句控制报表显示不同的列。

2. 示例一:通过条件属性实现编辑

2.1 准备数据

新建数据集 ds1:SELECT * FROM 销量

2.2 制作模板

将地区、销售员字段拖入单元格,并分别设置不同的销量求和,报表样式设计。如下图所示:
222

2.3 添加参数控件

先添加模板参数type,如下图所示:

image.png

在参数面板添加一个「单选按钮组控件」和「查询控件」,单选按钮组控件的控件名为 type。设置数据字典,自定义两个选项,如下图所示:

image.png

2.4 设置条件属性

选中 A1、A2 单元格,右键添加条件属性:设置行高为 0,公式条件为 $type!='地区'。选中 A3、A4 单元格,同样添加条件属性:行高为 0,公式条件为 $type!='销售员'。如下图所示:

image.png

保存模板,点击「分页预览」即可实现效果。

2.5 效果预览

2.5.1 PC端

如本文 1.1 节所示。

2.5.2 移动端

App 端和 HTML5 端效果如下图所示:

动画3.gif

3. 示例二:通过 SQL 语句实现编辑

3.1 新建普通报表

点击「菜单文件>新建普通报表,如下图所示:

3.2 添加参数控件

添加「单选按钮组控件」,将控件名称命名为 type ,并添加「查询按钮」如下图所示:

2021-06-18_11-17-40.png

3.3 准备数据

新建数据集 ds1:

SELECT ${if(typ="地区","地区","销售员")} as a, sum(销量) num
FROM 销量
${if(typ="地区","group by 地区","group by 销售员")}

type 参数值默认为华东,如下图所示:

2021-06-18_11-02-01.png

3.4 制作模板

anum 字段拖入单元格,并设置居中下拉框,如下图所示:

2021-06-18_11-15-13.png

3.5 设置控件参数

2021-06-18_11-17-40.png

保存模板,点击「分页预览」即可实现效果。

3.6 效果预览

3.6.1 PC端

如本文 1.1 节所示。

3.6.2 移动端

如本文 2.5 节所示。

4. 模板下载编辑

1)示例一:通过条件属性实现

已完成模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\根据参数值显示不同的列.cpt

点击下载模板:根据参数值显示不同的列.cpt

2)示例二:通过 SQL 语句实现

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Parameter\使用SQL语句显示不同的列.cpt

点击下载模板:使用SQL语句显示不同的列.cpt