Сравнение строк в выражениях JasperReports - PullRequest
2 голосов
/ 31 января 2011

Поле базы данных с именем income_source запрашивается с использованием:

SELECT * FROM table_name WHERE income_source LIKE "salaried%"

Это извлекает income_source значения с префиксом «наемный».В iReport значение PrintWhenExpression для поля устанавливается как:

$F{income_source}.equals("Salaried")? Boolean.TRUE:Boolean.FALSE  

Почему выходные данные отчета отличаются от выходных данных SQL?

1 Ответ

5 голосов
/ 04 февраля 2011

Есть несколько проблем:

  • Значение "salaried%" в SQL отличается от значения "Salaried" в выражении.
  • Значение "salaried%" использует % для сопоставления всего текста после буквы d.
  • В PrintWhenExpression .

Попробуйте следующее выражение:

$F{income_source}.startsWith( "salaried" )

Или:

$F{income_source}.trim().toLowerCase().startsWith( "salaried" )

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

$F{income_source} == null ? Boolean.FALSE :
  $F{income_source}.trim().toLowerCase().startsWith( "salaried" )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...