Je dois montrer les colonnes: - envoyer - recevoir - annulé
Dans une colonne de rapport en vérifiant une valeur de DB qui est "Status". Donc, si le statut est égal à 1, envoyer, = 2 recevoir, = 3 annulé.
L'expression de champ de texte dans le rapport Jasper (? A: b) ne peut prendre qu'une seule condition, comment puis-je donner plusieurs conditions? quelque chose comme une échelle if-else?
Vous pouvez utiliser une instruction ternaire imbriquée pour y parvenir, mais c'est compliqué.
Par exemple:
(i == 1) ? "Send" : ((i == 2)? "Received" : "Cancelled");
vous pouvez utiliser la méthode replace (), mais vous devez changer la classe de votre champ en String sinon, EX:
$F{f_phone_type}.replace("0","Phone/ATA").replace("1","Gateway").replace("2","SIPTrunk")
Ma méthode préférée consiste à créer un paramètre avec les substitutions sous la forme d'un HashMap, lorsque vous avez un grand groupe de sous-stations ou si elles peuvent changer.
Vous pouvez soit passer les substitutions lors de l'exécution, soit 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 nommé "risk_types" (en utilisant la langue par défaut comme groovy), vous définiriez la valeur par défaut du paramètre à quelque chose comme
[1: "HIGH RISK", 2: "LOW RISK"]
Dans votre code, vous auriez votre expression de champ de texte comme (où risk_type est le champ de recherche de la base de données):
$P{risk_types}.get($F{risk_type})
Pour les éléments manquants dans la carte, vous obtiendrez une valeur nulle, j'étends l'expression du champ de texte comme suit:
$P{risk_types}.get($F{risk_type}) ?: "UNDEFINED"
Faites du champ d'état un paramètre transmis à partir de votre bean. De cette façon, vous pouvez effectuer le traitement dont vous avez besoin dans votre bean, affecter le résultat à la variable de paramètre et le transmettre dans votre rapport.
Boolean.valueOf(!($P{accWise}.equals("AC" ) && $F{RQAC_ACCREJ}.equals("R")))
est utile pour donner plusieurs conditions dans les propriétés ireport.