Microsoft Reports添加两个列值

时间:2010-12-31 01:21:01

标签: .net reporting-services reportviewer reportbuilder

是否可以添加两个列值,表示我有3列:

Item 1                |    Item 2                |  Total

=Fields!Item1.Value   |   =Fields!Item1.Value    |   ???

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

=Fields!Item1.Value + Fields!Item2.Value

我正在寻找像

这样的东西
Column1Value + Column2Value

谢谢大家!!!!

4 个答案:

答案 0 :(得分:4)

您想要做的就是引用报表对象(文本框)的值而不是查询中的列。您可以使用ReportItems!。

来完成此操作

当您从数据集中拖出列时,它可能会在列之后命名文本框,如果列名称可能会有所不同,则您需要为将显示该值的文本框指定静态值。

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

=ReportItems!Item1.Value + ReportItems!Item2.Value

或者如果您将文本框命名为Red和Blue,那么它将是:

=ReportItems!Red.Value + ReportItems!Blue.Value

alt text alt text

点击'!'时会弹出可用的ReportItem列表在ReportItems之后。

答案 1 :(得分:3)

我只是在查询中添加并将其作为计算字段返回。

e.g。

SELECT field1, field2, field1 + field2 AS total;

我没有看到这个的可维护性问题。如果您需要将查询与其他所有内容分开,请考虑存储过程或某种工厂来生成查询。

答案 2 :(得分:3)

您也可以通过在数据集中添加计算字段来执行此操作。因此,添加两个源字段,让我们通常将它们称为 Item1 Item2 - 将 Source 设置为数据中字段的名称资源。然后添加一个计算字段,通过将字段的表达式设置为 = Fields!Item1.Value + Fields!Item2.Value <,将其称为 Total 到报表数据集/ em>的。 然后,您可以使用= Fields!Total.Value。

访问报表中的任何位置

通过这种方式,您可以在不修改基础数据源的情况下进行计算,它更易于维护(在一个地方进行计算),它简化了整个报告中的计算参考。

答案 3 :(得分:2)

如果您使用matrix,则您所寻求的行为是内置的。