James.Lv 发表于 2020-10-29 20:12:30

【报表-参数过滤】报表单值下拉参数实现默认展示全部数据

本帖最后由 Bella.Yuan 于 2023-8-9 14:17 编辑

在报表设计中,经常会遇到一种场景,设计了报表之后,添加了单值下拉参数,当用户不选择,也就是在默认查看报表的时候希望展示全部的数据,用户选择了参数后,再进行展示根据参数过滤的数据,如下图所示:


本贴介绍如何在报表中实现单值下拉参数实现默认展示全部数据。

重点:实现该功能有两种方式,一:利用报表中组件的过滤能力,通过表达式来实现该需求。
二:利用报表动态SQL的能力来实现该需求。
具体实现步骤:
一、利用报表组件的过滤能力来实现。
1.创建报表,添加数据集

2.选择表格组件,绑定数据字段

3.添加报表参数,并绑定参数的可用数据。
添加报表参数,并且添加一个报表参数下拉值的可用数据的数据集

然后将下拉可用数据绑定上对应的数据集,然后选择参数为可忽略,这样在预览时参数为空值。

预览即可看到报表参数为空值

4.选中表格组件,属性设置添加数据过滤。
选中表格组件,属性设置添加数据过滤

编辑过滤属性,添加过滤条件,选择数据集字段跟参数的过滤判断条件
当参数值为空时,条件为数据字段等于数据字段,参数值不为空时,数据字段等于参数值。

这样预览默认可以显示全部数据,选择参数后显示参数过滤之后的数据。


二、利用报表动态sql实现
动态sql:select * from 销售明细{IIF(IsNothing(@大区), "", "where 销售大区=@大区")}
动态sql中通过表达式来动态生成不同的sql语句,然后加载对应的数据集数据。

这样在报表预览的时候会根据参数值动态去加载不同的数据。



tisking 发表于 2021-6-25 15:31:32

大佬第一种我成功了;第二种方式我怎么改都报错,这是什么情况啊?报错如下图所示:

:nbtz5:

James.Lv 发表于 2021-6-25 16:45:00

tisking 发表于 2021-6-25 15:31
大佬第一种我成功了;第二种方式我怎么改都报错,这是什么情况啊?报错如下图所示:

检查一下写法,看写法写对着吗?

zshun8023 发表于 2023-3-15 14:50:25

多值参数支持吗

Bella.Yuan 发表于 2023-3-15 18:26:17

zshun8023 发表于 2023-3-15 14:50
多值参数支持吗

您好,看您发了类似的帖子,我们在您的帖子上交流~
6.0 报表-单值或多值参数为空的场景
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=162819&fromuid=65049
(出处: 葡萄城产品技术社区)
页: [1]
查看完整版本: 【报表-参数过滤】报表单值下拉参数实现默认展示全部数据