SSRS - 使用不同数据集字段的表达式

12
我有一个包含多个数据集的报告。报告的不同位置使用了来自不同数据集的字段。
在报告的某个部分,我需要使用来自两个不同数据集的字段进行计算。在表达式中是否可以实现这个功能?我能否以某种方式引用字段所在的数据集?
例如,我想要做类似于以下的操作:
=Fields.Dataset1.Field / Fields.Dataset2.Field
3个回答

20

你可以通过像这样指定字段的作用域来实现:

=First(Fields!fieldName_A.Value, "Dataset1") / First(Fields!fieldName_B.Value, "Dataset2")
假设A为10,B为2,并且它们是数字类型,则在报表呈现时,您将获得5的结果。
在表达式构建器中,您可以选择类别:数据集,在项目下选择所需的数据集,然后双击所需字段,在值下将其添加到表达式字符串中,并添加作用域。
使用相同的逻辑,您可以像这样连接两个字段:
=First(Fields!fieldName_A.Value, "Dataset1") & “ “ & First(Fields!fieldName_B.Value, "Dataset2")

3
根据PerPlexSystem的说法,假设您只想将数据集中的第一个值与另一个数据集中的值进行比较,则可以使用First函数。但是,如果您想将一个数据集中每一行的值与另一个数据集中每一行的值进行比较,则需要使用子报表-有关详细信息,请参见此处

如果您无法忍受子报表带来的问题,比如对齐问题和 SSRS 在呈现方面的微妙差异,那么您可以在过滤表达式中使用 =LookupSet() 方法。 - Rudy Hinojosa

1

另一种选择是将参数用作变量。如果您想在数据集中创建一个计算字段,这将非常有帮助。当参数值来自包含单个记录的数据集时,最好使用此选项。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接