【问题标题】:How to stop rounding in ssrs report如何在 ssrs 报告中停止舍入
【发布时间】:2019-04-05 21:13:45
【问题描述】:

我有一个四舍五入货币的 SSRS 报告,我需要该报告来显示实际值。当我在查询设计器中运行查询时,所有值都正确显示。如果我将其输出到 Excel 和 SUM ,我会得到我期望的总数(例如 £56724.30)

当我运行报告时,我得到的值是 56840.00 英镑,所以看起来所使用的数据在输出之前已经四舍五入了。

我在报告中有一个名为 Total_Rent_Due_UC_Claims 的计算字段:

=iif(Fields!UC_Rent.Value = Fields!LastCharge.Value, Fields!UC_Rent.Value, 0) or 
iif(Fields!UC_Rent_Date.Value = Fields!LastCharge.Value and 
Fields!extra10a_d003.Value < Parameters!AsAtDate.Value, 0, Fields!UC_Rent_Date.Value)

然后我用它来计算总数:

=Sum(Fields!Total_Rent_Due_UC_Claims.Value)

我已将此字段格式化为货币到小数点后两位。

有人可以帮忙,使报告中的值与预期值相同吗?

【问题讨论】:

  • 与编程无关?
  • 您能否尝试将格式删除为 2 位小数并检查您得到的结果
  • 不确定“与编程无关”是什么意思? - 西蒙C
  • 我已将格式删除到小数点后两位,结果仍然是 £56840.00

标签: reporting-services


【解决方案1】:

我认为这种差异不能归因于四舍五入 - 至少不是我以前见过的任何四舍五入。相差 115.70 英镑。我认为计算字段并没有完全按照您的意愿进行操作,需要进行一些修改。我不确定它现在在做什么,但基本上这两个IIF 语句都会评估,因为OR 并没有真正按照你的方式工作。我会尝试以下表达式。

=IIF(Fields!UC_Rent.Value = Fields!LastCharge.Value, 
     Fields!UC_Rent.Value, IIF(Fields!UC_Rent_Date.Value = Fields!LastCharge.Value 
         AND Fields!extra10a_d003.Value < Parameters!AsAtDate.Value, 0, Fields!UC_Rent_Date.Value))

当然,这仍然可能是错误的,因为我无法判断所有字段是否都是日期数据类型,或者这里是否存在某种不匹配。如果这不起作用,请告诉我,我会看看是否可以调整它。

【讨论】:

  • 嗨,史蒂夫,你的公式效果很好。非常感谢您的帮助
  • @JohnK 很高兴为您提供帮助。确保用复选标记将我的答案标记为正确,以便其他人可以找到类似问题的正确答案。
  • 完成,再次感谢 :)
猜你喜欢
  • 2019-08-14
  • 1970-01-01
  • 2013-04-24
  • 1970-01-01
  • 2021-09-05
  • 1970-01-01
  • 1970-01-01
  • 2020-11-24
  • 2021-10-29
相关资源
最近更新 更多