C'è un modo per impostare un valore predefinito in un campo in un report? Ho un sacco di campi String in un report e vorrei che mostrassero "0,00" quando sono nulli.JasperReports: valore predefinito invece di 'null'
risposta
Supponendo che il nome del campo è "valore", nel "campo di testo Expression", scrivono: risposta
($F{value} != null) ? $F{value} : "0.00"
Assicurati di controllare l'impostazione del linguaggio di scripting per il report, per me in iReport Designer 4.0.2 questa sintassi funziona in Java ma non in Groovy – benz001
Hai provato a impostare un motivo nel campo di testo?
Se si utilizza iReport, questo può essere trovato nelle proprietà per il campo di testo nella sezione Text Field Properties
.
Provare qualcosa sulla falsariga di ###0.00
per rappresentare 1234.56, che visualizzerebbe sempre 0.00 anche se è nullo.
di medopal è buono, ma 2 aggiunte:
1) E possibile rendere la sintassi più corta:
($F{field_name}) ? $F{field_name} : "0.00"
2) assicurarsi che i dati "altro" è della stessa classe di v del campo alore, altrimenti otterrai degli errori quando cerchi di forzare i numeri in una stringa, ecc. ecc. Questo è stato qualcosa che, come ho iniziato, ho mescolato.
Quando rimuovo '! = Null' ottengo' Tipo non corrispondente: impossibile convertire da String a booleano'. –
È molto probabile che la tecnologia sia cambiata nei 7 anni da quando ho fornito questa risposta, al momento ho verificato che funzionasse prima di postare. Non sono più un utente attivo di JasperReports, @JamieKitson Spero che tu trovi una risorsa aggiornata che aiuti. – semperos
È anche possibile selezionare "Vuoto se null" nelle proprietà del campo di testo, se lo si desidera. Altre opzioni sono più flessibili, ma questo è il trucco molto semplice e veloce.
Molto più elegante e semplice soluzione rispetto ai precedenti. – Dekel
Sì, ma funziona solo se hai solo il singolo campo nella casella di testo. –
Questo è il modo più semplice per utilizzare la funzione Coalesce() or NVL()
del database nella query di origine dati per limitare i dati nulli nel report.
Ma dipende se è possibile modificare la query dell'origine dati o meno. In caso contrario, si può andare per altre soluzioni fornite nelle risposte precedenti.
se non sei soddisfatto delle risposte aggiungi ulteriori dettagli alla tua domanda – medopal
Penso che dovresti anche cambiare il valore del testo in valore numerico e impostare pattern e quindi eventualmente impostare 0 non lo "0,00" perché è non globale formando per i numeri. –