提问人:ScarfaceNo1 提问时间:8/18/2023 最后编辑:Dale KScarfaceNo1 更新时间:8/21/2023 访问量:82
SSRS 使用 Dataset1 中的某些字段值作为 DataSet2 中的参数
SSRS Using some Field Values from Dataset1 as Parameters in DataSet2
问:
我有一个引用存储过程的数据集,它为我提供了一些数据。 一列包含一个特定的代码(见图),我想在第二个表/数据集中使用它。 对于每个代码(金额是可变的),我想添加一个新表,其中包含该代码的详细信息。
第二个数据集还为存储过程提供数据。 这两个过程都不能触及,因为它们用于许多其他应用程序。
如何实现?
在网络上搜索解决方案后,我尝试使用 SSRS 中的“lookupset”函数。我遇到了不同的问题/错误。有时没有指定参数,有时字段值不能用作参数。 请帮忙。
答:
0赞
Alan Schofield
8/18/2023
#1
我可能会创建一个新的数据集,该数据集仅从存储的过程中获取代码(它将再次运行 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赞
David Browne - Microsoft
8/21/2023
#2
这里最简单的解决方案是使用子报表
子报表是在主分页报表的正文中显示另一个报表的报表项。从概念上讲,报表中的子报表类似于网页中的框架。它用于在报表中嵌入报表。任何报表都可以用作子报表。显示为子报表的报表存储在报表服务器上,通常与父报表位于同一文件夹中。您可以设计父报表以将参数传递给子报表。可以使用参数在数据区域内重复子报表,以筛选子报表的每个实例中的数据。
评论
0赞
ScarfaceNo1
8/21/2023
谢谢你的提示。但是,如何将第一个数据集中的 LotCodes 获取到第二个、第三个数据集中的参数呢?
0赞
David Browne - Microsoft
8/21/2023
下面介绍了如何将参数传递给子报表:learn.microsoft.com/en-us/sql/reporting-services/report-design/...还有大量的在线视频和教程。
0赞
ScarfaceNo1
8/22/2023
谢谢,但我找到的所有提示只描述了如何在主报表中添加与显式字段相关的子报表。这些都没有描述如何提取某些字段值以在单独的表中使用它们。
0赞
David Browne - Microsoft
8/22/2023
子报表具有自己的数据源和数据集。只需将参数从主报表传递到子报表即可。
0赞
ScarfaceNo1
8/22/2023
是的,我明白了。但是当我在主报表中使用子报表时,我可以使用列名来获取字段结果。没有必要写功能什么的。在单独的表中使用字段结果时,我无法以相同的方式访问它。
评论