SSRS 使用 Dataset1 中的某些字段值作为 DataSet2 中的参数

问题描述 投票:0回答:2

我有一个数据集引用一个存储过程,它为我提供了一些数据。 一列包含一个特定的代码(见图),我想在第二个表/数据集中使用它。 对于每个代码(数量可变),我想添加一个包含该代码详细信息的新表。

第二个数据集还提供存储过程。 这两个过程都不能触及,因为它们在许多其他应用程序中使用。

如何实现?

在网上搜索解决方案后,我尝试使用SSRS中的“lookupset”功能。我遇到了不同的问题/错误。有时没有指定参数,有时字段值不能用作参数。 请帮忙。

sql-server reporting-services sql-server-data-tools ssrs-2016
2个回答
0
投票

我可能会创建一个新的数据集,只从存储过程中获取代码(它将再次运行 SP,但对此无能为力)。

这是一个简化的示例..

假设您 SP 仅返回 3 列(MaterialNo、MaterialName 和 Code)

您可以创建一个临时表来放入结果,然后查询临时表,这样您的数据集查询将如下所示..

CREATE TABLE #t(MaterialNo int, MaterialName varchar(50), Code varchar(50))
INSERT INTO #t 
    EXEC myProcName
--
SELECT d.*
    FROM myDetailsTable d
    JOIN #t t on d.Code = t.Code

现在您拥有了所需的数据,您可以创建一个表格,按代码分组并添加您需要的任何详细信息。


0
投票

最简单的解决方案是使用子报表

子报表是在主分页报表正文中显示另一个报表的报表项。从概念上讲,报表中的子报表类似于网页中的框架。它用于将报告嵌入到报告中。任何报表都可以用作子报表。显示为子报表的报表存储在报表服务器上,通常与父报表位于同一文件夹中。您可以设计父报表以将参数传递给子报表。 子报表可以在数据区域内重复,使用参数来过滤子报表每个实例中的数据。

© www.soinside.com 2019 - 2024. All rights reserved.