2008-10-02 10 views
7

Ich versuche ein Crystal Reports-Formelfeld zu erstellen (um die prozentuale Änderung eines Preises zu berechnen), die "N/V" zurückgibt, wenn ein bestimmtes Berichtsfeld null ist , aber geben Sie eine Zahl auf zwei Dezimalstellen zurück, indem Sie das Abrechnungsformat verwenden (negative Zahlen in Klammern), wenn dies nicht der Fall ist.Formatieren eines Felds mithilfe von ToText in einem Crystal Reports-Formelfeld

Die nächstgelegene ich in der Lage gewesen zu verwalten, ist dies:

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

Doch diese negativen Zahlen stellen ein negatives Vorzeichen, nicht Klammern.

Ich versuchte Formatstrings wie '###. 00; (###. 00)' und '(###. 00)' aber diese wurden als ungültig abgelehnt. Wie kann ich mein Ziel erreichen?

Antwort

8

Ich glaube, Sie suchen ToText(CCur(@Price}/{ValuationReport.YestPrice}*100-100))

Sie CCur verwenden können, Zahlen oder String Curency-Formate zu konvertieren. CCur(number) oder CCur(string)


Ich denke, das, was Sie suchen, sein können,

Replace (ToText(CCur({field})),"$" , ""), die die Klammern für negative Zahlen

Es ist ein wenig hacky geben wird, aber ich bin nicht sicher, CR ist sehr freundlich in der Art der Formatierung

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

Die obige Logik sollte das sein, was Sie suchen.

Verwandte Themen