Как избежать нулевых значений в отчетах о яшме

У меня есть поле в моем отчете о яшме, который имеет значение выражения как

$F{address_street1}+" "+$F{address_street2}+ " " +$F{address_state} + " "+$F{address_country}+ " "+$F{address_zip}

Моя проблема состоит в том, что, если какое-либо из полей в здесь является пустым, я получаю нулевое значение между другими вещами как

101 Main St****null****ILUnited States12345 

Заметьте выделенный пустой указатель. Есть ли какой-либо способ, которым я могу избежать этого?

Я попытался проверить нулевое значение на конкретное поле в нем с помощью булева выражения и заменив его пробелом, но это, кажется, не работает.

29
задан Michael Currie 11 September 2015 в 04:36
поделиться

3 ответа

В выражении разрешено использовать код 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}
35
ответ дан 28 November 2019 в 00:39
поделиться

Установите для свойства isBlankWhenNull значение true.

  • В iReport установите флажок «Пусто, когда пусто», когда выбрано ваше поле.
  • В файле jasper jrxml:
42
ответ дан 28 November 2019 в 00:39
поделиться

@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})
12
ответ дан 28 November 2019 в 00:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: