如何在SSRS的表格页脚中链接多个数据集?

时间:2013-06-18 16:21:47

标签: c# sql reporting-services

我正在使用带有C#的SQL Server Reporting Services 2008作为ASPX网页。

说我有食物表。

然后说我把食物分组。 对于每种食物,我需要展示相当多的信息,包括:

  • 味道相似的食物清单
  • 可能的健康风险列表
  • 评级

以下是我在SSRS中如何做到这一点的初步想法:

  1. 从获取所有食物的数据表开始
  2. 按食物ID
  3. 对表格进行分组
  4. 对于每个组,在页脚中创建一个列表,其中包含该食物的所有信息(类似食物,健康风险,评级等)的字段/表格。
  5. 我的问题:

    我以为我能够拥有以下数据集:

    • 获取所有食物
    • 获得与食物ID相关的类似食物
    • 与食物ID相关的健康风险
    • 获得与食物ID相关的评级等

    然后,在页脚中,我将特定于食物的数据集链接到该特定组的食物ID。

    但是,我不能在组的页脚中引用多个数据集。

    有没有办法能够将页脚中的其他数据集链接到我的桌子上的食物ID?

    感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

您可以根据当前FoodId在其他数据集上查找值  为你的小组:

=Lookup(Fields!FoodId.Value, Fields!FoodId.Value, Fields!SimilarFoods.Value, "SimilarFoodsDataset")

这假定FoodId值之间存在一对一的关系。如果您有一个值列表,请为相关表格中的每个FoodId说几行类似的食物,那么您希望使用子报告或LookupSet

<强>子报表

子报表是一个很好的选择,因为它们可以自动工作,并为格式化和布局提供了很大的灵活性。如果您想要显示多个字段,这当然是可以使用的选项。

创建名为SimilarFoods的新报告。它应该只是一个列出类似食物的表,并有一个名为FoodId的参数。它的数据集将包含如下SQL:

SELECT FoodId, SimilarFood
FROM SimilarFoods
WHERE FoodId = @FoodId

返回主报告,在表格的组页脚中插入工具箱中的Subreport,并将ReportName设置为您在上方创建的SimilarFoods报告(您可能希望合并页脚行的单元格,以便报表占据表格的整个长度。右键点击报告,然后选择Subreport Properties...,点击Parameters标签,添加一个参数,Name设置为FoodId,值设置为[FoodId](您可以从下拉列表中选择此字段)。

现在运行您的报告,对于每种食物,您将在组页脚中获得类似食物的列表。

<强> LookupSet

LookupSet的工作方式与Lookup类似,但顾名思义它会返回一组结果。结果不能直接在文本框中使用 - 您必须先操作它。但是,如果您只需要显示一个字段,那么这是一个不错的选择。

你可以在这样的表达式中使用它:

=Join(LookupSet(Fields!FoodId.Value, Fields!FoodId.Value, Fields!SimilarFood.Value, "SimilarFoodsDataset"), vbCrLf)