web-dev-qa-db-fra.com

Mise en forme d'un champ à l'aide de ToText dans un champ de formule Crystal Reports

J'essaie de créer un champ de formule Crystal Reports (pour calculer le pourcentage de variation d'un prix) qui renvoie "N/A" si un champ de rapport donné est null, mais renvoie un nombre à deux décimales à l'aide du format de comptabilité (négatif). nombres entourés de parenthèses) si ce n’est pas.

Le plus proche que j'ai pu gérer est la suivante:

If IsNull({ValuationReport.YestPrice}) Then
    'N/A'
Else
    ToText({@Price}/{ValuationReport.YestPrice}*100-100, '###.00', 2)

Cependant, cela représente des nombres négatifs utilisant un signe négatif, pas des parenthèses. 

J'ai essayé des chaînes de formatage telles que '###. 00; (###. 00)' et '(###. 00)' mais elles ont été rejetées comme invalides. Comment puis-je atteindre mon objectif?

8
Phillip Wells

Je pense que vous recherchez ToText(CCur(@Price}/{ValuationReport.YestPrice}*100-100))

Vous pouvez utiliser CCur pour convertir des nombres ou des chaînes au format Curency. CCur(number) ou CCur(string)


Je pense que c'est peut-être ce que vous recherchez,

Replace (ToText(CCur({field})),"$" , "") qui donnera les parenthèses pour les nombres négatifs

C'est un peu hacky, mais je ne suis pas sûr que CR soit très gentil avec la façon de formater

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

La logique ci-dessus devrait correspondre à ce que vous recherchez.