Reporting services 从查找()钻取参数值

Reporting services 从查找()钻取参数值,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,您好,我正在尝试将查找到的值作为钻取参数传递给子报表。我有两个数据集Dataset1和Dataset2。我的小桌像这样 =Fields!Number.Value 'Column1 expression (Dataset1) =Lookup(Fields!Number.Value, Fields!NumberKey.Value, Fields!Order.Value, "Dataset2") 'Column2 expression (Dataset2) Column1 Column2 1

您好,我正在尝试将查找到的值作为钻取参数传递给子报表。我有两个数据集Dataset1Dataset2。我的小桌像这样

=Fields!Number.Value 'Column1 expression (Dataset1)
=Lookup(Fields!Number.Value, Fields!NumberKey.Value, Fields!Order.Value, "Dataset2") 'Column2 expression (Dataset2)

Column1    Column2
1          123
2          678
="[Orders].[OrderNr].&[" & Lookup(Fields!Number.Value, Fields!NumberKey.Value, Fields!Order.Value, "Dataset2") & "]"
现在我想使用Column2中的值作为钻取参数。在选项Action->Go to report下,我已经尝试了不同的方法,但都不起作用。对于我尝试过的传递值的参数:

=Lookup(Fields!Number.Value, Fields!NumberKey.Value, Fields!Order.Value, "Dataset2")
=Lookup(Fields!Number.Value, Fields!NumberKey.Value, Fields!Order.Value, "Dataset2").Value
=Lookup(Fields!Number.Value, Fields!NumberKey.Value, Fields!Order.Value, "Dataset2").UniqueName
=ReportItems!OrderTextbox.Value
=ReportItems!OrderTextbox.UniqueName

这可能吗?提前感谢:-)

我找到了解决方案。由于查找的原因,参数(内部)的名称不同。我传递的参数的名称为

[OrderDimension].[OrderNumber].&[001234] 
子报表参数的名称为

[Orders].[OrderNr].&[001234]
即使两者的价值相同,这也行不通。当我这样写传递参数值时,我解决了这个问题

=Fields!Number.Value 'Column1 expression (Dataset1)
=Lookup(Fields!Number.Value, Fields!NumberKey.Value, Fields!Order.Value, "Dataset2") 'Column2 expression (Dataset2)

Column1    Column2
1          123
2          678
="[Orders].[OrderNr].&[" & Lookup(Fields!Number.Value, Fields!NumberKey.Value, Fields!Order.Value, "Dataset2") & "]"

您的第一个或第四个选项应该可以正常工作。我刚刚使用一个简单的设置进行了测试,并将操作上的参数值设置为查找表达式或报告项值,效果如预期。尝试构建一个只接受文本参数的简单子报表,然后添加一个显示此参数值的文本框。然后设置您的操作以打开该报告,这样您就可以看到正在通过的内容。如果您遇到错误,请编辑您的问题以显示错误。我使用SSRS 2016进行了测试,但我确信我在2008年也做过。我也使用SSRS 2016。我已经有了一个测试设置,检查子报告是否会被删除。我用一个测试数据集测试了它,在那里我加载了一些ordervalue。这很好,子报告也显示出来了(我还放置了您提到的文本框)。所以我用上面的tablix测试了它,其中包括查找。子报表会显示出来,但它都是空的。子报表顶部的参数下拉列表也是空的(带有第1个和第4个选项),这可能是因为它不工作,因为我可以有更多的匹配项吗?我还可以执行LookupSet()。出于我的目的,无论是执行查找还是查找异常,我都选择了第一个。如果从tablix打开简单的测试报告,传递的参数值是什么?对于有多个匹配项的软件来说,这似乎是一个设计问题,查找应该只检索一个值,不确定如果有多个匹配项会发生什么,我怀疑它只会找到第一个匹配项,但我没有检查文档以确认。我找到了解决方案。由于查找的原因,参数(内部)的名称不同。我传递的参数的名称是
[OrderDimension].[OrderNumber].&[001234]
子报表参数的名称是
[Orders].[OrderNr].&[001234]
。即使两者的价值相同,这也行不通。我在编写传递参数值时解决了这个问题,如
=“[Orders].[OrderNr].&[”&Lookup(Fields!Number.value,Fields!NumberKey.value,Fields!Order.value,“Dataset2”)&“”