Formattazione di un campo mediante ToText in un campo formula di Crystal Reports
-
03-07-2019 - |
Domanda
Sto provando a creare un campo formula Crystal Reports (per calcolare la variazione percentuale di un prezzo) che restituirà " N / A " se un determinato campo del rapporto è nullo, ma restituisce un numero con due decimali utilizzando il formato contabile (numeri negativi racchiusi tra parentesi) se non lo è.
Il più vicino che sono stato in grado di gestire è questo:
If IsNull({ValuationReport.YestPrice}) Then
'N/A'
Else
ToText({@Price}/{ValuationReport.YestPrice}*100-100, '###.00', 2)
Tuttavia, ciò rappresenta numeri negativi usando un segno negativo, non parentesi.
Ho provato a formattare stringhe come '###. 00; (###. 00)' e '(###. 00)' ma queste sono state respinte in quanto non valide. Come posso raggiungere il mio obiettivo?
Soluzione
Penso che tu stia cercando ToText(CCur(@Price}/{ValuationReport.YestPrice}*100-100))
Puoi usare CCur
per convertire numeri o stringhe nei formati Curency. CCur (numero)
o CCur(string)
Penso che questo potrebbe essere quello che stai cercando,
Sostituisci (ToText (CCur ({field})), " $ ", " ")
che fornirà le parentesi per i numeri negativi
È un po 'confuso, ma non sono sicuro che CR sia molto gentile nei modi di formattazione
Altri suggerimenti
if(isnull({uspRptMonthlyGasRevenueByGas;1.YearTotal})) = true then
"nd"
else
totext({uspRptMonthlyGasRevenueByGas;1.YearTotal},'###.00')
La logica sopra dovrebbe essere ciò che stai cercando.