使用主数据集中的列作为子报表中的多值参数

时间:2014-09-29 11:35:30

标签: reporting-services parameters subreport

您好我正在使用SSRS 2008。

我的设置是MainReport,带有dataset1和1个参数 - OrderID。 dataset1中的一列是ShippingID。 我的另一个报告称为 - SubReport有1个多值参数 - ShippingID。

我正在尝试将主报表中的ShippingID用作子报表的多值参数。 我在这里尝试了不同的线程,但大多数情况下它们与我的场景不同。 我该如何设置,甚至是可能的? 我一直试图将它设置一整天,但没有成功。

在我的方案中,一个订单可以是多个货件。

我尝试的其中一件事是在MainReport中创建新的多值参数 - 将其命名为shippingIDs_sub并将其默认值映射到dataset1.ShippingID。但是当我尝试运行报告时,我收到错误“'shippingIDs_sub'参数缺少值” - 因为我的MainReport有时会在ShippingID列中返回NULL。

我的情景非常类似于此 SSRS passing parameter to subreport 虽然我有时在用作多值参数源的列中得到NULL。 有没有办法过滤掉NULL并仅为现有ID运行子报告?

1 个答案:

答案 0 :(得分:0)

在您调用子报告的Action中,您映射到shippingIDs_sub,只要数据集中的值为NULL,就使用表达式传递一些有效值。

=IIF(IsNothing(Fields!ShippingID.value),"Some Valid Value",Fields!ShippingID.value)

至于此:

  

有没有办法过滤掉NULL并仅为其运行子报表   现有ID?

不,你不能关闭转到子报告的能力,但是你可以隐藏"它可以通过更改用户点击的内容来改变它的外观,使其看起来不像是可点击的。例如,在我们的报告中,当某些内容可点击时,我们将其下划线为蓝色。因此,如果我不想让用户点击它,我只是使其与所有其他文本的字体颜色/样式相同。但是如果他们想要的话,它也不能阻止一个坚定的用户点击它。