5

是否可以添加两列值说我有 3 列:

Item 1                |    Item 2                |  Total

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

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

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

我宁愿寻找类似的东西

Column1Value + Column2Value

多谢你们!!!!

4

4 回答 4

5

听起来您想要做的是引用报表对象(文本框)的值,而不是查询中的列。您可以使用 ReportItems! 来做到这一点。

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

因此,在您给出的初始示例中,您将拥有名为 Item1、Item2 和 Total 的文本框。因此,在适当的 Total 文本框中,您将需要:

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

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

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

替代文字 替代文字

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

于 2011-01-03T16:16:47.853 回答
4

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

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

于 2011-01-05T23:12:02.180 回答
3

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

例如

SELECT field1, field2, field1 + field2 AS total;

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

于 2011-01-03T01:22:11.627 回答
2

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

于 2011-01-03T01:25:05.550 回答