У меня есть поле в моем отчете о яшме, который имеет значение выражения как
$F{address_street1}+" "+$F{address_street2}+ " " +$F{address_state} + " "+$F{address_country}+ " "+$F{address_zip}
Моя проблема состоит в том, что, если какое-либо из полей в здесь является пустым, я получаю нулевое значение между другими вещами как
101 Main St****null****ILUnited States12345
Заметьте выделенный пустой указатель. Есть ли какой-либо способ, которым я могу избежать этого?
Я попытался проверить нулевое значение на конкретное поле в нем с помощью булева выражения и заменив его пробелом, но это, кажется, не работает.
В выражении разрешено использовать код Java.
Итак, что вам нужно сделать, это проверить, что значение поля равно null, если да, то заменить его пустой строкой.
$F{address_street1} == null ? "" : $F{address_street1}+ " " +
$F{address_street2} == null ? "" : $F{address_street2}+ " " +
$F{address_state} == null ? "" : $F{address_state} + " " +
$F{address_country} == null ? "" : $F{address_country}+ " " +
$F{address_zip} == null ? "" : $F{address_zip}
Установите для свойства isBlankWhenNull
значение true.
@Vash, Да, это то, что я бы сделал, но я думаю, что вы, возможно, захотите поместить каждое выражение внутрь круглых скобок, чтобы каждое выражение было независимым от других. Например, так:
($F{address_street1} == null ? "" : $F{address_street1}+ " ") +
($F{address_street2} == null ? "" : $F{address_street2}+ " ") +
($F{address_state} == null ? "" : $F{address_state} + " ") +
($F{address_country} == null ? "" : $F{address_country}+ " ") +
($F{address_zip} == null ? "" : $F{address_zip})