SSRS 报告显示加载时的所有行,然后根据多值文本参数进行过滤
SSRS report to show all rows on load and then filter based on multi-value text paramater
我创建了一个 SSRS 报告,它从我的数据库中呈现 table。我创建了一个多值文本参数。我知道我可以通过三种方式使用参数:
- 在数据集查询中使用它 (
WHERE col1 IN (@parm)
)
- 在数据集过滤器中使用它(
Expression = col1
、Operator = In
、Value = @parm
)
- 在 Tablix 过滤器中使用它
问题是,当我这样做时,在初始 page/report 加载时没有呈现任何行,我必须在多值文本参数中输入一些内容,然后重新 运行报告。
如何让它在参数为空时显示所有 rows/records,否则只显示匹配的行。
在您的数据集中传递一些默认值,以便在页面加载时,报告将根据这些默认值呈现,并且它不会要求您第一次传递任何值。
您可以
- 将参数的默认值设置为与可用值相同的查询(即它将 select 所有成员)
- 将您的数据集查询更新为
WHERE (col1 IN(@parm) OR ISNULL(@parm,'')='')
第一个选项占用资源较多,第二个选项更可取,但您可能必须更新参数属性以允许 blanks/NULL 和空白默认值。
我创建了一个 SSRS 报告,它从我的数据库中呈现 table。我创建了一个多值文本参数。我知道我可以通过三种方式使用参数:
- 在数据集查询中使用它 (
WHERE col1 IN (@parm)
) - 在数据集过滤器中使用它(
Expression = col1
、Operator = In
、Value = @parm
) - 在 Tablix 过滤器中使用它
问题是,当我这样做时,在初始 page/report 加载时没有呈现任何行,我必须在多值文本参数中输入一些内容,然后重新 运行报告。
如何让它在参数为空时显示所有 rows/records,否则只显示匹配的行。
在您的数据集中传递一些默认值,以便在页面加载时,报告将根据这些默认值呈现,并且它不会要求您第一次传递任何值。
您可以
- 将参数的默认值设置为与可用值相同的查询(即它将 select 所有成员)
- 将您的数据集查询更新为
WHERE (col1 IN(@parm) OR ISNULL(@parm,'')='')
第一个选项占用资源较多,第二个选项更可取,但您可能必须更新参数属性以允许 blanks/NULL 和空白默认值。