Dar formato a un campo usando ToText en un campo de fórmula de Crystal Reports
-
03-07-2019 - |
Pregunta
Estoy intentando crear un campo de fórmula de Crystal Reports (para calcular el cambio porcentual en un precio) que devolverá " N / A " si un campo de informe en particular es nulo, pero devuelve un número a dos decimales utilizando el formato de contabilidad (números negativos entre paréntesis) si no lo es.
Lo más cercano que he podido administrar es esto:
If IsNull({ValuationReport.YestPrice}) Then
'N/A'
Else
ToText({@Price}/{ValuationReport.YestPrice}*100-100, '###.00', 2)
Sin embargo, esto representa números negativos utilizando un signo negativo, no paréntesis.
Probé cadenas de formato como '###. 00; (###. 00)' y '(###. 00)' pero estas fueron rechazadas por no ser válidas. ¿Cómo puedo lograr mi objetivo?
Solución
Creo que está buscando ToText(CCur(@Price}/{ValuationReport.YestPrice}*100-100))
Puede usar CCur
para convertir números o cadenas a formatos de Curency. CCur (número)
o CCur(string)
Creo que esto puede ser lo que estás buscando,
Replace (ToText (CCur ({field})), " $ ", " " >
que le dará los paréntesis para los números negativos
Es un poco intrincado, pero no estoy seguro de que CR sea muy amable en cuanto a la forma de formatear
Otros consejos
if(isnull({uspRptMonthlyGasRevenueByGas;1.YearTotal})) = true then
"nd"
else
totext({uspRptMonthlyGasRevenueByGas;1.YearTotal},'###.00')
La lógica anterior debe ser lo que estás buscando.