在Crystal Reports中格式化数据

时间:2011-05-13 13:37:25

标签: crystal-reports

我有一个Double的字段。要在报告上显示,如果该值为负,那么我需要通过将其乘以-1来反转该数字。结果应格式如下:“(1,000)”(注意没有“ - ”符号)。我怎么能在Crystal中做到这一点?我使用显示字符串公式来尝试这样做,因为“显示反向符号”选项对我不起作用(因为出于其他原因需要它是一个公式)。

到目前为止,我有:

if {columnName} < 0 then
  "(" & ToText({columnName}, "#,###", 0) & ")"
else
  "(" & ToText({columnName} * -1, "#,###", 0) & ")"

但是这给了我这样的东西:“( - 6,500)”,我需要摆脱那个讨厌的减号。

修改
我实现了一个像这样的公式字段:

-Abs({columnName})

然后从格式列表中选择看起来像(1,234)的格式,如下面Craig所述。

3 个答案:

答案 0 :(得分:3)

Crystal Reports支持“会计”格式化,而不需要付出太多努力:

  • 右键单击字段,选择格式字段...
  • 选择数字标签(如果未选中)
  • 选择类似'(1,123.00)'
  • 的风格

**编辑**

您也可以将此格式应用于公式字段。

答案 1 :(得分:1)

我以这种方式完成了我的要求&lt;我添加了一个公式并分配了所需字段的总和,然后我设置了它的格式(12,34.00),我也删除了美元符号。

Formula = replace(totext(Sum({myfield}) * -1),"$","")

答案 2 :(得分:0)

我面临同样的责任,但它具体操作系统。在Windows XP上没有任何格式问题,但在xp这个问题上面。删除所有格式后,在显示公式中使用以下公式。

替换(替换(替换(ToText(CurrentFieldValue,“##,##,##,## 0.00”,2),“$”,“”),“ - ”,“”),“,” , “”)