Значение выражения в отчете Jasper: ошибка «Невозможно привести из строки в логическое значение» - PullRequest
4 голосов
/ 19 июля 2009

Это мой код выражения:

($F{Personel_ODEME}.equals(Boolean.TRUE)) ? "PAID" : "NO PAID"

Если Персоналу платят, его / его налоговый отчет Джаспера будет иметь вид PAID, в противном случае NO PAID. В БД это поле имеет логический тип, но выражение возвращает тип String. Итак, я получаю Cannot cast from String to Boolean ошибку.

Ответы [ 5 ]

10 голосов
/ 19 июля 2009

Проблема связана с вашим тестом $F{Personel_ODEME}.equals(Boolean.TRUE), который Джаспер считает сравнением от String до Boolean, и ему это не нравится. Чтобы это исправить, попробуйте это:

($F{Personel_ODEME}.equals(Boolean.TRUE.toString())) ? "PAID" : "NO PAID"

Это приведет к сравнению String с String.

Хорошо отметить, что в Java "true".equals(Boolean.TRUE) приведет к ложному.

редактировать:

Это выглядит как выражение PrintWhen от Jasper, которое позволяет вам определять, печатать ли содержимое ячейки или нет. Он ожидает Boolean.TRUE или Boolean.FALSE в качестве возвращаемых значений. Когда вы возвращаете «Оплачено», Джаспер пытается оценить это String как Boolean, которое он не может, поэтому выдает исключение.

3 голосов
/ 19 июля 2009

ОК, я исправил это. Я изменил тип $F{Personel_ODEME} на String, затем он работал как шарм.

2 голосов
/ 03 августа 2011

Вы должны изменить выражение класса для поля на java.lang.String, так как по умолчанию оно будет java.lang.Boolean. Когда он вычисляет ваш if и пытается вернуть «PAID» или «NO PAID», поле пытается преобразовать его в логическое значение, чтобы его можно было отобразить.

Весь кредит поступает на:

http://jasperforge.org/plugins/espforum/view.php?group_id=83&forumid=101&topicid=61775

1 голос
/ 14 ноября 2010

Попробуйте это:

Boolean.valueOf($F{Personel_ODEME}.equals('TRUE')) ? "PAID" : "NO PAID" 
0 голосов
/ 22 декабря 2015
($F{Personel_ODEME}==true?"PAID":"NO PAID")

Примечание: true (ключевое слово) чувствительно к регистру. И не должно быть капитала (ИСТИНА)

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