Как избежать нулевых значений в отчетах яшмы - PullRequest
26 голосов
/ 05 июля 2010

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

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

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

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

Обратите внимание на выделенный ноль.Можно ли как-нибудь избежать этого?

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

Ответы [ 14 ]

0 голосов
/ 06 декабря 2016

У меня есть похожий случай, в котором я хочу избежать отображения null в выходных данных, если у меня есть нулевой параметр
я использую T($P{city}) в редакторе выражений, он оценивается как пустая строка, если вы не передали ему параметр

T () возвращает текстовую строку, если значение является строкой, в противном случае - пустое строка возвращается

пример использования:

$P{name} + " " + (T($P{city}).isEmpty() ? "" : " from " )+ (T($P{city}).isEmpty() ? "" : "\"" +  T($P{city}) + "\"")

если я передам параметр в $ P {city}
Результат:

abdulkahliq из "Эр-Рияда"

если я не передам параметр в $ P {city}, результат будет:

abdulkahliq

Спасибо и всего наилучшего,

0 голосов
/ 23 ноября 2016

Если вы работаете в ecliple + jasper softReports, вы просто выполняете следующие шаги 1. выберите поле + щелкните правой кнопкой мыши и выберите параметр showProperties 2. Нажмите TextField, выберите BlankWhenNull 3.Скомпилируйте и восстановите, проверьте его.

0 голосов
/ 06 апреля 2016
($F{address_street1} + " " + $F{address_street2} + " " + $F{address_state} + " " +
    $F{address_country} + " " + $F{address_zip}).replaceAll("null", "")
0 голосов
/ 05 июня 2013

Вы можете написать код Java

 package com.xyz

 Class ReportUtil 
  {
      public static String getMyString (String str1 , String str2)
         {
             if((str1!=null) && (str2!=null))
                 return str1 + " " + str2 ;
             else if str1==null
                  return str2 ; 
             return str1 ;                            
          }

   }

В JRXML вы можете использовать следующее выражение в текстовом поле

com.xyx.ReportUtil.getMyString ($F{firstName},$F{lastName}) 

Установить для свойства "Пусто при нулевом" значение true

С уважением,

Анкуш

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...