"(boolean expression) ? if true : if false" is the only if/then/else//case logic for the fields in ireport, it does get complicated and hard to maintain with the increase of possible outcomes, but you can get used to it. Also, you have standard Java operators (&&, ||, ==, !=, ....) that you can combine, and there are methods of individual classes (String.equals() for example). Once you start designing the report you will see what option (combination) you are most comfortable with, but I think you won't avoid boolean?true:false :)