【问题标题】:SQ Server 2008 r2 Reporting Services : optional parameter values and reportsSQL Server 2008 r2 Reporting Services:可选参数值和报告
【发布时间】:2015-04-24 22:08:33
【问题描述】:

在现有的 ssrs 2008 r2 报告中,我有一个用户的要求,他们希望在报告中再添加 2 个参数。现在有一个选项

用户可以选择生成 report1、report2、report3、report4、report5、report6、report7、report8 和/或我刚刚列出的报告的任意组合。

这是通过在 8 个 tablix 中的每一个的可见性属性中使用表达式来设置的。

供您参考,以下是如何显示或不显示报告之一的示例:

=iif(InStr(join(Parameters!report.Value,","),6)>0,false,true)

现在用户希望能够根据是否选择了report7和/或report8来添加customer和inventory_item的参数。

现在你能告诉我以下内容吗:

  1. 能否告诉我我可以在数据集中使用的代码来选择 report7 和/或 report8 吗?
  2. 是否考虑使用“可选”参数,因为inventory_item 的新参数基于是否选择了report7 和/或report8。如果是这样,您能告诉我如何为这些可选参数编​​写代码吗?
  3. 如果上述方法无法选择特定报告,那么数据集查询是否需要如下所示: where @report is null or where @report is not null?你有什么建议?
  4. 如果上述选项不适用于 2 个新参数,我是否会选择所有项目(或一项)以便始终运行报告?

【问题讨论】:

  • 您的意思是如果客户选择报告 7 或报告 8,除了当前显示的 Customer 和 Inventory_Item tablixes 之外,他还想查看什么?

标签: reporting-services ssrs-2008-r2 ssrs-2012 ssrs-grouping


【解决方案1】:

对于您的额外参数,您可以查看级联参数 (http://www.mssqltips.com/sqlservertip/3466/cascaded-parameters-in-sql-server-reporting-services/)。

基本上,您将添加新参数,但不会将它们用于过滤器,除非选择报告 7 或 8。不幸的是,我知道没有一种方法可以根据另一个参数选择来禁用参数。

我从您的表达式中猜测您的 Report 参数仅根据所选报告返回 1 - 8 的值。示例应来自报告 6:

=IIF(InStr(Join(Parameters!report.Value, ","), 6) > 0, false, true)

使用您的新 inventory_item 参数的 Filter 类似于:

=IIF(InStr(Join(Parameters!report.Value, ","), "7") > 0
 OR  InStr(Join(Parameters!report.Value, ","), "8") > 0, 
 IIF(Parameters!inventory_item.Value = Fields!inventory_item.Value, TRUE, FALSE), TRUE)

这只会在报告为 7 或 8 时按 inventory_item 限制数据。

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多