在Crystal Reports公式字段中使用ToText格式化字段
时间:2020-03-06 15:01:59 来源:igfitidea点击:
我正在尝试创建一个Crystal Reports公式字段(以计算价格的百分比变化),如果特定的报告字段为null,则将返回" N / A",但使用会计格式(负数)将数字返回两位小数如果不是,请用括号括起来的数字)。
我能够管理的最接近的是:
If IsNull({ValuationReport.YestPrice}) Then 'N/A' Else ToText({@Price}/{ValuationReport.YestPrice}*100-100, '###.00', 2)
但是,这是使用负号而不是括号来表示负数。
我尝试使用格式字符串,例如'###。00;(###。00)'和'(###。00)',但这些字符串被视为无效。我如何实现我的目标?
解决方案
我认为我们正在寻找ToText(CCur(@Price} / {ValuationReport.YestPrice} * 100-100))
我们可以使用" CCur"将数字或者字符串转换为"货币"格式。 CCur(number)
或者CCur(string)
我想这可能是我们要寻找的
Replace(ToText(CCur({field}))," $","")
,将给出负数的括号
这有点hacky,但是我不确定CR在格式化方面是否很好
if(isnull({uspRptMonthlyGasRevenueByGas;1.YearTotal})) = true then "nd" else totext({uspRptMonthlyGasRevenueByGas;1.YearTotal},'###.00')
上面的逻辑应该是我们要寻找的。