传递可选参数

时间:2013-09-08 19:19:32

标签: reporting-services ssrs-2008

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

问题:我有两张表OrdersCustomers

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

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

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

我也尝试过:

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

表达式

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

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

运营商=

true

2 个答案:

答案 0 :(得分:0)

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

首先,根据填充了以下查询的数据集设置参数,例如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

答案 1 :(得分:0)

考虑报告参数是CustomerName。在主数据集中写下以下查询:

IF(@CustomerName ='')

BEGIN

SELECT * FROM Table_Name

END

ELSE

SELECT * FROM Table_Name WHERE Column_Name = @CustomerName

希望这有帮助。

干杯!