Ma méthode préférée est de créer un paramètre avec les substitutions dans la forme d'un HashMap, quand vous avez un grand groupe de sous-stations ou si elles peuvent changer.
Vous pouvez passer les substitutions lors de l'exécution ou définir une valeur par défaut. L'avantage étant que vous pouvez mettre à jour la carte sans recompiler votre rapport.
Par exemple, si vous deviez avoir un paramètre appelé « risk_types » (en utilisant la langue par défaut groovy) vous souhaitez définir la valeur par défaut de paramètre à quelque chose comme
[1: "HIGH RISK", 2: "LOW RISK"]
Dans votre code, vous devriez que votre champ texte expression (où risk_type est le champ de recherche de la base de données):
$P{risk_types}.get($F{risk_type})
pour les articles manquants sur la carte, vous obtiendriez une valeur nulle, je peux prolonger l'expression du champ de texte à:
$P{risk_types}.get($F{risk_type}) ?: "UNDEFINED"
Je l'ai aussi fait plusieurs fois, et ça peut aller jusqu'à trois conditions ... mais qui pourrait le décoder si vous écrivez 5 conditions ou plus? – davorp
merci, moi aussi fait cela .. mais comme @davorp a dit .. 3 est max. – cherit
Cette réponse donne une odeur de code à coup sûr. @Sean a raison: Faites n'importe quelle logique dans votre bean, en passant le résultat au rapport. – inanutshellus