我如何在SSRS表的页脚链接多个数据集
本文关键字:链接 数据集 SSRS | 更新日期: 2023-09-27 18:18:59
我使用SQL Server Reporting Services 2008,使用c#,用于ASPX网页。
假设我有一桌食物。
然后说我把我的桌子按食物分组。对于每种食物,我需要显示相当多的信息,包括:
- 味道相似的食物清单
- 可能的健康风险清单
- 等。
这是我对如何在SSRS中做到这一点的最初想法:
- 从获取所有食物的数据表开始
- 按食物编号分组
- 为每个组创建一个页脚列表,其中包含该食品的所有信息(类似食品,健康风险,评级等)的字段/表格。
我想我可以有数据集:
- 获取所有食物
- 获取与食品id相关的类似食品
- 获取与食品id相关的健康风险
- 获取与食品id相关的评级等
然后,在页脚中,我将特定食物的数据集链接到该特定组的食物id。
但是,我不能在一个组的页脚引用多个数据集。
是否有任何方法可以将页脚中的其他数据集链接到我分组表上的食物id ?
任何帮助都是感激的!
您可以根据当前FoodId
查找其他数据集上的值对于您的组:
=Lookup(Fields!FoodId.Value, Fields!FoodId.Value, Fields!SimilarFoods.Value, "SimilarFoodsDataset")
这假设FoodId
值之间是一对一的关系。如果您有一个值列表,例如相关表中的每个FoodId
都有几行相似的食物,那么您希望使用子报表或LookupSet
。
Subreports
子报表是一个很好的选择,因为它们可以自动工作,并且在格式化和布局方面提供了很大的灵活性。如果您想要显示多个字段,这当然是可以使用的选项。
创建名为SimilarFoods
的新报告。它应该只是一个列出相似食物的表,并有一个名为FoodId
的参数。它的数据集将有这样的SQL:
SELECT FoodId, SimilarFood
FROM SimilarFoods
WHERE FoodId = @FoodId
回到主报表中,在表的组页脚中从工具箱中插入Subreport
,并将ReportName
设置为上面创建的SimilarFoods
报表(您可能希望合并页脚行的单元格,以便报表占用表的整个长度)。右键单击报告,选择Subreport Properties...
,单击Parameters
选项卡,添加一个参数,其中Name
设置为FoodId
, Value设置为[FoodId]
(您可以从下拉列表中选择该字段)。
现在运行您的报告,对于每种食物,您将在组页脚中得到相似食物的列表。
LookupSet
LookupSet像Lookup
一样工作,但顾名思义它返回一组结果。结果不能直接在文本框中使用-您必须首先对其进行操作。但是,如果您只需要显示一个字段,那么它是一个很好的选择。
可以在如下表达式中使用:
=Join(LookupSet(Fields!FoodId.Value, Fields!FoodId.Value, Fields!SimilarFood.Value, "SimilarFoodsDataset"), vbCrLf)