第二个清单上的SSRS过滤器

时间:2016-09-13 17:27:39

标签: join reporting-services filter

我有两个共享“RequestID”的SharePoint列表。报告的主要列表是“操作项”,但我只想查看Application等于所选参数的那些记录。该应用程序位于“请求”列表中。

Table structures

我想过滤Application name = 'Math',所以在这种情况下,我只会获得与请求#15和#22相关的动作项ID 44和55。 我已使用以下方法在报告中成功显示了应用程序的名称:

=Join(LookupSet(CInt(Fields!Request_ID.Value), CInt(Fields!ID.Value), Fields!Application.Value, "Requests"), ", ")

但是,我知道你不能在过滤器中使用Lookup。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

听起来你应该使用级联参数来做你想做的事。

使用级联参数,您可以在一个参数中选择应用程序,然后根据使用Application参数的操作项参数进行选择。

使用SQL,您可以过滤 ActionItemID 的数据集:

SELECT ActionItemID 
FROM ACTION_ITEMS 
WHERE REQUEST_ID IN (SELECT REQUEST_ID FROM REQUESTS WHERE APPLICATION = @APPLICATION_PARAMETER )

但您可以在DataSet 过滤器标签上过滤操作项SharePoint列表:

<强>表达式

=IIF(INSTR(
    Join(LookupSet(Parameters!@APPLICATION_PARAMETER.Value, Fields!Application.Value, Fields!ID.Value, "Requests"), ",") & ","
    , Fields!Request_ID.Value & ",") > 0, 1, 0)

这将查找ID中的请求ID (来自LookUp [15,22,]),其中参数(MATH)作为应用程序。

enter image description here

https://technet.microsoft.com/en-us/library/aa337169(v=sql.100).aspx

https://technet.microsoft.com/en-us/library/aa337498(v=sql.105).aspx