0

我正在使用 2008R2 开发 SSRS 报告服务。

问题:我有两张桌子OrdersCustomers.

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

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

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

我也尝试过:

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

表达式

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

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

运营商=

价值true

4

2 回答 2

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

于 2013-09-08T20:30:20.307 回答
0

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

如果(@CustomerName = '')

开始

从表名中选择 *

结尾

别的

SELECT * FROM Table_Name WHERE Column_Name = @CustomerName

希望这可以帮助。

干杯!

于 2013-09-09T09:36:25.970 回答