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?
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
if(isnull({uspRptMonthlyGasRevenueByGas;1.YearTotal})) = true then
"nd"
else
totext({uspRptMonthlyGasRevenueByGas;1.YearTotal},'###.00')
La logique ci-dessus devrait correspondre à ce que vous recherchez.