在十进制的RDLC报告中使用SUM会产生奇怪的结果

时间:2012-09-09 10:28:12

标签: c# rdlc

我正在尝试生成一个RDLC报告,其中一列Amount将在底部有一个“Total”行。这不是一个奇怪的东西,这是一个非常基本的RDLC报告,但不是在底部得到正常的“总计”值我得到别的东西,请允许我演示:

enter image description here

不应该说97,140.00,应该说971,40所以我有点困惑。该栏总结如下:

= SUM(CDEC(字段!Amount.Value))

我必须先将其转换为某种原因,否则我会得到#Error而不是错误的数字。这很奇怪,模型属性是十进制的,我使用的DataTable属性是小数。

我唯一的猜测是,它与瑞典语有关,并使用逗号作为小数分隔符而不是句点。

4 个答案:

答案 0 :(得分:3)

问题显然在于CDec功能。如果你确定没有其他方法可以不使用CDec试试这个:CDec(Sum(Fields!Oil_Gas.Value)) 或者:FormatNumber(CDec(Sum(Fields!Oil_Gas.Value)),2) 或者:FormatNumber(Sum(Fields!Oil_Gas.Value),2)

我无法真正重现您的问题,但所有提到的解决方案都适合我。

答案 1 :(得分:1)

解决了问题,因为错误发生在数据表中。 当我生成要投入的数据表时,我没有设置DataColumn 类型,因此它们都默认为字符串。 由于某种原因,即使它们被数据表处理为字符串,CDec()和FormatNumber()也不起作用。

无论如何,在正确创建具有正确数据类型的数据表后,每个列都能正常工作。

答案 2 :(得分:1)

此解决方案对我有用。试试这个

=ROUND(Sum(Fields!Outros.Value, "DataSet1"),2) 

答案 3 :(得分:0)

试试这个表达,它对我有用:

=Format(Sum(CDec(Fields!Outros.Value)),"#,##0.00")