Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Microsoft报告添加了两个列值_.net_Reporting Services_Reportviewer_Reportbuilder - Fatal编程技术网

.net Microsoft报告添加了两个列值

.net Microsoft报告添加了两个列值,.net,reporting-services,reportviewer,reportbuilder,.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 谢谢大家 我只需在查询中

可以添加两列值吗?例如,我有3列:

Item 1                |    Item 2                |  Total

=Fields!Item1.Value   |   =Fields!Item1.Value    |   ???
我想要避免的(出于可维护性原因)是这样做:

=Fields!Item1.Value + Fields!Item2.Value
我在找像这样的东西

Column1Value + Column2Value

谢谢大家

我只需在查询中进行加法,并将其作为计算字段返回

e、 g


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

< P>如果使用A,则所寻找的行为是内置的。

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

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

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

=ReportItems!Item1.Value + ReportItems!Item2.Value
或者,如果您将文本框命名为红色和蓝色,则会是:

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


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

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


通过这种方式,您可以在不修改基础数据源的情况下获得计算结果,它更易于维护(在一个位置进行计算),它简化了整个报告中对计算结果的引用。

这是否来自某种数据库,如果是,为什么不可能在查询中获取总数?这来自一个Web服务,数据集是一个自定义对象列表。我可以在对象本身中实现总体逻辑,但它仅在报告中有意义,因此我避免在对象中进行合计,因为我将在该对象中使用“新的总体属性堆”,我使用自定义业务对象,这些合计对对象没有意义,而仅对报告本身有意义,我想避免在对象本身中计算它。如果可能,如果不可能,那么我将不得不使用建议的方法。ThanksHumm..不是在我的特殊情况下,因为这些总数不是一行的总和,而是两列的总和,这意味着我可以有第四列,我不想包含在总数中。希望这是有意义的。我只是用它来做一些变量格式化,比如如果总数是3,那么背景会变成紫色。我厌倦了两次输入表达式,一次输入值,一次输入颜色。这也使得维护变得困难。现在我只做IIF(ReportItems!Total.Value=3,…)。感谢D.S.的回答和路易斯的问题!在查询中的字段名更改之前,此操作一直有效。你又回到了使用这些字段,这是OP说他们不想做的。所以这不是答案。您仍然需要使用ReportItems。更改字段名的值并让我知道其工作原理。实际上,表达式中使用的字段名(即fields!Item1,fields!Item2)完全由报表作者控制,并在报表的数据集元素中指定。数据源的基础字段名在RDL字段元素的“source”中指定。因此,报表数据集的字段可以是Item1,但它可以绑定到数据源中具有不同名称的字段。是的,如我所说,更改数据源的字段名称,并让我知道发生了什么。当您引用报表项时,它可以从“CustomerTotal”更改为“CustotalAt”,并且仍然有效,因为添加的是文本框的实际值,而不是字段名的值。
=ReportItems!Red.Value + ReportItems!Blue.Value