2010-03-08 4 views
11

Est-il possible de définir une valeur par défaut pour un champ dans un rapport? J'ai beaucoup de champs String dans un rapport et je voudrais qu'ils affichent "0,00" quand ils sont null.JasperReports: valeur par défaut au lieu de 'null'

+0

Si vous n'êtes pas satisfait des réponses s'il vous plaît ajouter plus de détails à votre question – medopal

+0

Je pense que vous devriez également changer la valeur du texte en valeur numérique et définir le modèle et éventuellement 0 pas le "0,00" parce qu'il est pas de formation globale pour les nombres. –

Répondre

17

Supposant le nom du champ est "valeur", dans le champ "Texte d'expression", écrivez:

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

+5

Assurez-vous de vérifier le paramètre de langage de script pour le rapport, pour moi dans iReport Designer 4.0.2 cette syntaxe fonctionne en Java mais pas en Groovy – benz001

0

Avez-vous essayé de définir un modèle dans le champ de texte?

Si vous utilisez iReport, vous pouvez le trouver dans les propriétés du champ de texte de la section Text Field Properties.

Essayez quelque chose le long des lignes ###0.00 pour représenter 1234.56, ce qui afficherait toujours 0.00 même si elle est nulle.

4

La réponse de medopal est bonne, mais 2 ajouts:

1) Vous pouvez faire la syntaxe plus courte:

($F{field_name}) ? $F{field_name} : "0.00"

2) Assurez-vous que vos données « else » est de la même classe que v du champ alue, sinon vous obtiendrez des erreurs quand il essayera de contraindre des nombres dans la chaîne, etc. etc. C'était quelque chose que, comme j'ai commencé, j'ai mélangé.

+0

Lorsque je supprime le '! = Null' je reçois' Type incompatibilité: impossible de convertir à partir de la chaîne à booléen'. –

+0

Il est très possible que la technologie a changé dans les 7 ans depuis que j'ai fourni cette réponse, au moment où j'ai testé que cela a fonctionné avant de poster. Je ne suis plus un utilisateur actif de JasperReports, @JamieKitson J'espère que vous trouverez une ressource à jour qui vous aidera. – semperos

4

Vous pouvez également sélectionner "Blank when null" dans les propriétés du champ de texte si vous le souhaitez. D'autres options sont plus flexibles mais cela rend le tour très rapide et facile.

+0

Solution beaucoup plus élégante et simple que les précédentes. – Dekel

+0

Ouais mais cela ne fonctionne que si vous avez juste le champ unique dans la zone de texte. –

0

La méthode la plus simple consiste à utiliser la fonction Coalesce() or NVL() de la base de données dans votre requête de source de données pour restreindre les données nulles sur votre rapport.

Mais cela dépend si vous êtes autorisé à modifier la requête de source de données ou non. Sinon, vous pouvez opter pour d'autres solutions fournies dans les réponses précédentes.

Questions connexes