如何根据2个数据源过滤SSRS报告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何根据2个数据源过滤SSRS报告相关的知识,希望对你有一定的参考价值。

我创建了一个存储过程,其中有来自2个数据源的数据。我在源A和源B之间创建了一个联盟,然后将其作为数据集提供给SSRS报告。现在,用户希望基于源参数查看报告,这将使他们能够基于数据源“源A”,“源B”或“两者”来选择/过滤报告。因此,如果用户选择源A,则报告应仅显示来自源A的数据,如果“两者”,则它将显示源A和源B的结果。

一种方法,我试图解决这个问题是创建3个单独的数据集然后使用参数。我不确定这是否是最好的设计方法。如果有人有任何更好的想法,请分享。

提前致谢 !

答案

您可以简单地在查询中标记一个额外的列,其中包含类似的源

SELECT *, 'A' as Src FROM myFirstDataSource
UNION
SELECT *, 'B' as Src FROM mySecondDataSource

然后在Src列上应用过滤器。

或者只是在SP本身中通过从报告中传入参数来确定要获取的数据,例如。

CREATE PROC myProc (@myParam varchar(1) = '') AS
DECLARE @t TABLE (Src varchar(1), ColumnA varchar(10), ColumnB int, ColumnC int)

IF (@myParam = '' OR @myParam = 'A')
    BEGIN -- get data from first datasource
        INSERT INTO @t
        SELECT 'A', someCOlumnA, SomeColumnB, SomeColumnC FROM myFirstDataSource
    END

IF (@myParam = '' OR @myParam = 'B')
    BEGIN -- get data from second datasource
        INSERT INTO @t
        SELECT 'B', someCOlumnA, SomeColumnB, SomeColumnC FROM mySecondDataSource
    END

SELECT * FROM @t

您不需要在第二个选项中使用Src列,但如果您想要突出显示数据来自报表的位置,则可能非常有用。

以上是关于如何根据2个数据源过滤SSRS报告的主要内容,如果未能解决你的问题,请参考以下文章

SSRS Tablix头不重复

SSRS:前5大周末

如何在ssrs报告的表达式中设置货币和1000分隔符

如何使用报告向导修改现有SSRS报告

如何在运行时更改SSRS报告中的数据库

SSRS超链接到同一电子表格上的选项卡