Microsoft 报告添加两个列值

Lui*_*uis 5 .net reportviewer reportbuilder reporting-services

假设我有 3 列,是否可以添加两列值:

Item 1                |    Item 2                |  Total

=Fields!Item1.Value   |   =Fields!Item1.Value    |   ???
Run Code Online (Sandbox Code Playgroud)

我想避免(出于可维护性原因)做这样的事情:

=Fields!Item1.Value + Fields!Item2.Value
Run Code Online (Sandbox Code Playgroud)

我宁愿寻找类似的东西

Column1Value + Column2Value
Run Code Online (Sandbox Code Playgroud)

多谢你们!!!!

D.S*_*.S. 5

听起来您想要做的是引用报表对象(文本框)的值而不是查询中的列。您可以使用 ReportItems! 来完成此操作。

当您从数据集中拖出列时,它可能会在列之后命名文本框,如果列名称可以变化,您将需要为将在其中显示该值的文本框分配一个静态值。

因此,在您给出的最初示例中,您将拥有名称为 Item1、Item2 和 Total 的文本框。因此,在相应的“总计”文本框中,您将需要:

=ReportItems!Item1.Value + ReportItems!Item2.Value
Run Code Online (Sandbox Code Playgroud)

或者如果您将文本框命名为红色和蓝色,则为:

=ReportItems!Red.Value + ReportItems!Blue.Value
Run Code Online (Sandbox Code Playgroud)

替代文本 替代文本

当您点击“!”时,将弹出可用报告项目的列表。在报告项目之后。

  • 我只是用它来进行一些可变格式设置,例如如果总计为 3,则背景变为紫色。我厌倦了输入两次表达式,一次输入值,一次输入颜色。这也给维护带来了困难。现在我只执行 IIF(ReportItems!Total.Value=3,...)。感谢 DS 的回答和 Luis 的提问! (2认同)

Sco*_*eke 4

您还可以通过在数据集中添加计算字段来完成此操作。因此,添加两个源字段,通常将它们称为Item1Item2 - 将它们的Source设置为数据源中字段的名称。然后添加一个计算字段,通过将字段的表达式设置为=Fields!Item1.Value + Fields!Item2.Value ,将其称为Total到报表数据集。然后,您可以在报告中的任何位置使用 =Fields!Total.Value 访问计算值。

通过这种方式,您无需修改​​底层数据源即可获得计算,它更易于维护(计算在一个地方),它简化了在整个报告中引用计算的过程。