【问题标题】:Passing optional parameters传递可选参数
【发布时间】:2013-09-08 19:19:32
【问题描述】:

我正在使用 2008R2 开发 SSRS Reporting Services。

问题:我有两个表 OrdersCustomers

我加入两个表并获得足够的数据。

我的问题是如何将Customername 作为可选参数传递。我需要从查询中获取这个值(我的意思是在下拉列表中显示客户名称)。

为此,我检查了参数名称是否允许空值:客户名称。但在生成报告时,它要求选择客户名称。

我也尝试过:

指定数据集的过滤条件如下:

表达式

=IIF(Parameters!CustomerName.Value is nothing or (Fields!CustomerName.Value =Parameters!CustomerName.Value),true,false)  

(在第二个下拉列表中选择Boolean

操作员=

true

【问题讨论】:

  • 那么到底是什么问题?你能正确填充参数查询吗?您是否希望默认选择 NULL(即所有客户)?报告是否正在运行,但您的过滤器不起作用?

标签: reporting-services ssrs-2008


【解决方案1】:

您是否考虑在查询中应用过滤?

首先,设置参数,例如Customer,基于填充有如下查询的数据集:

select distinct CustomerID, CustomerName
from Customers

确保它可以传递NULL 值。

然后在主数据集查询文本中,您可以通过将其引用为@Customer来使用此处的参数:

select o.*
from Orders o
  inner join Customers c on o.CustomerID = c.CustomerID
where c.CustomerName = @Customer or @Customer is null

显然,您需要针对自己的特定表格进行更改。

如果您希望默认选择所有客户,可以将参数的默认值设置为=Nothing

【讨论】:

    【解决方案2】:

    假设报告参数是 CustomerName。在主数据集中编写以下查询:

    IF(@CustomerName = '')

    开始

    从表名中选择 *

    结束

    否则

    SELECT * FROM Table_Name WHERE Column_Name = @CustomerName

    希望这会有所帮助。

    干杯!

    【讨论】:

    • 您好,感谢您的快速回复...我想知道 SSRS 中是否有任何功能可以支持此功能?
    猜你喜欢
    • 2012-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2018-01-07
    • 2014-09-12
    相关资源
    最近更新 更多