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
工具箱中的 a 并将其设置为您在上面创建ReportName
的SimilarFoods
报表(您可能希望合并页脚行的单元格,以便报表占据整个表格长度)。右键单击报告并选择Subreport Properties...
,单击Parameters
选项卡并添加Name
设置为FoodId
和值设置为的参数[FoodId]
(您可以从下拉列表中选择此字段)。
现在运行您的报告,对于每种食物,您将在组页脚中获得类似食物的列表。
查找集
LookupSet的工作方式类似Lookup
,但顾名思义,它返回一组结果。结果不能直接在文本框中使用 - 您必须先对其进行操作。但是,如果您只需要显示一个字段,那么这是一个不错的选择。
您可以在这样的表达式中使用它:
=Join(LookupSet(Fields!FoodId.Value, Fields!FoodId.Value, Fields!SimilarFood.Value, "SimilarFoodsDataset"), vbCrLf)