1

使用 SQL Server Reporting Services,如果数据库中的值为零,则以下格式表达式将其转换为 --- 正确到小数点后 2 位:

,0.00;(#,0.00);'---'

但是,如果值为 0.001,并且报告需要显示为 2 位小数(即应显示 0.00),则结果格式 --- 仍会显示在报告中。

有没有办法避免 SSRS 中的这些舍入问题,如果是这样,新的格式/功能/等会是什么?对于 0.001,结果应该是 0.00。

4

1 回答 1

3

这是一个有趣的。我复制了你的结果:

在此处输入图像描述

对于最后一列,我在 TextBox 中使用了以下表达式:

=Switch(Fields!val.Value = 0.0, "---"
    , Fields!val.Value > 0.0, Format(Fields!val.Value, "#,0.00")
    , Fields!val.Value < 0.0, Format(Fields!val.Value, "(#,0.00);(#,0.00)"))

这给出了您需要的结果。

看起来不错,对吧?也许......对于在网页上显示或导出为 PDF 我认为这很好,如果烦人,但对于导出到 Excel,因为您使用Format的是,在报告中显式返回一个字符串,因此将是一个字符串Excel 导出,而不是像在前三列中那样导出为数字。

只有您可以说这是否会成为您的环境中的问题。

我认为没有办法绕过 SSRS 将小数字视为零,因此在文本框本身中处理它可能是您唯一的选择。

于 2013-09-12T10:20:57.143 回答