Я хочу отображать другой текст заголовка столбца и разные значения этого заголовка в моей таблице. Текст заголовка и значение зависят от одного значения параметра. Этот параметр определен в разделе «Параметры» отчета как строка, я также вижу его в представлении «Предварительный просмотр», и я также задаю ему значение там.
Моя проблема в том, что он не работает (этот столбец всегда пуст: нет текста заголовка, нет подробного значения) :) Как я могу правильно использовать здесь любой оператор IF? Это мой код для заголовка таблицы:
($P{first_column} == "first_column") ? "First Column" : ($P{first_column} == "second_column" ? "Second Column" : ($P{first_column} == "third_column" ? "Third Column" : ""))
Что я делаю неправильно? Спасибо!
РЕДАКТИРОВАТЬ.:
это выражение TextField, скопированное из "исходного" представления:
<textField>
<reportElement mode = "Opaque" x = "0" y = "0" width = "58" height = "30" backcolor = "#CFCFCF" uuid = "96edf250-4a1c-4448-8995-3753c76f4a1e"/>
<textElement verticalAlignment = "Middle">
<font size = "9"/>
</textElement>
<textFieldExpression><![CDATA[($P{first_column}.equals("first_column") ? "First Column" : ($P{first_column}.equals("second_column") ? "Second Column" : ""))]]></textFieldExpression>
</textField>





Сравнение строк в Java выполняется с помощью метода equals(). Эта почта объясняет это.
Предполагая, что у вас есть параметры на основе java.lang.String, вы можете:
($P{first_column}.equals("second_column") ? "Second Column" : ($P{first_column}.equals("third_column") ? "Third Column" : ""))
Да, параметр имеет тип Java.lang.String, но, к сожалению, с .equals () он все еще пуст :(
Вам нужно опубликовать образец JRXML, чтобы воспроизвести вашу проблему.
добавлен источник TextField
Это слишком мало для работы.
Какая еще часть отчета имеет отношение к проблеме? Параметр? <parameter name = "first_column" class = "java.lang.String" /> Просто определите TextField и Parameter, посмотрите, сможете ли вы заставить работать статус If :)
Значение вашего параметра может не соответствовать вашим ожиданиям. Вы пытались вывести именно это? Вы можете установить значение параметра по умолчанию.
Я просто пробую с "превью". Я сохранил сейчас как .xml, но не вижу, какое значение получает мой параметр. Возможно, я разверну его и посмотрю, работает ли он в серверной среде или это просто ошибка предварительного просмотра Jasper ...
Позвольте нам продолжить обсуждение в чате.
Это не имеет ничего общего со сравнением Java, это проблема Jasper.