2010-03-08 20 views
11

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'

+0

se non sei soddisfatto delle risposte aggiungi ulteriori dettagli alla tua domanda – medopal

+0

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. –

risposta

17

Supponendo che il nome del campo è "valore", nel "campo di testo Expression", scrivono: risposta

($F{value} != null) ? $F{value} : "0.00"

+5

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

0

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.

4

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.

+0

Quando rimuovo '! = Null' ottengo' Tipo non corrispondente: impossibile convertire da String a booleano'. –

+0

È 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

4

È 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.

+0

Molto più elegante e semplice soluzione rispetto ai precedenti. – Dekel

+0

Sì, ma funziona solo se hai solo il singolo campo nella casella di testo. –

0

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.

Problemi correlati