2008-10-02 65 views
7

Estoy intentando crear un campo de fórmula Crystal Reports (para calcular el cambio de porcentaje en un precio) que devolverá "N/A" si un campo de informe particular es nulo , pero devuelve un número a dos decimales usando el formato de contabilidad (números negativos rodeados por paréntesis) si no es así.Formateo de un campo usando ToText en un campo de fórmula de Crystal Reports

Lo más cerca que he sido capaz de gestionar es la siguiente:

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.

He intentado cadenas de formato como '###. 00; (#### 00)' y '(###. 00)' pero estas se rechazaron como no válidas. ¿Cómo puedo lograr mi objetivo?

Respuesta

8

creo que busca ToText(CCur(@Price}/{ValuationReport.YestPrice}*100-100))

Puede utilizar CCur para convertir números o cadena a formatos curency. CCur(number) o CCur(string)


Creo que esto puede ser lo que usted está buscando,

Replace (ToText(CCur({field})),"$" , "") que dará a los paréntesis para los números negativos

Es un poco hacky, pero no estoy seguro CR es muy amable en las formas de formatear

0
if(isnull({uspRptMonthlyGasRevenueByGas;1.YearTotal})) = true then 
    "nd" 
else 
    totext({uspRptMonthlyGasRevenueByGas;1.YearTotal},'###.00') 

La lógica anterior debe ser lo que usted está buscando.

Cuestiones relacionadas