Mi método preferido es el de crear un parámetro con las sustituciones en la forma de un HashMap, cuando tiene un gran grupo de subestaciones o si pueden cambiar.
Puede pasar las sustituciones en el tiempo de ejecución o establecer un valor predeterminado. El beneficio es que puede actualizar el mapa sin volver a compilar su informe.
Por ejemplo, si usted tuviera un parámetro denominado "risk_types" (usando el idioma predeterminado como maravilloso) lo haces con el valor por defecto del parámetro a algo así como
[1: "HIGH RISK", 2: "LOW RISK"]
En su código, que había tener su expresión como campo de texto (donde risk_type es el campo de búsqueda de la base de datos):
$P{risk_types}.get($F{risk_type})
para los elementos que faltan en el mapa, se obtendría un valor nulo, que ampliar el campo de texto la expresión a ser:
$P{risk_types}.get($F{risk_type}) ?: "UNDEFINED"
También hice esto algunas veces, y está bien para un máximo de tres condiciones ... ¿pero quién lo decodificará si escribe 5 o más condiciones? – davorp
gracias, yo también hice esto ... pero como dijo @davorp .. 3 es max. – cherit
Esta respuesta da como resultado un olor codificado seguro. @Sean tiene razón: haga cualquier lógica en su bean, pasando el resultado al informe. – inanutshellus