Использование условия if в параметрах

Я создаю отчет JasperReports Server с помощью iReport. У меня есть таблица с 4 столбцами. Пользователю необходимо выбрать через параметр, который будет первым столбцом. В зависимости от того, что он выбирает, решаются и другие столбцы.

Например, Если пользователь выбирает столбец 2 в элементе управления вводом, столбец 2 станет крайним левым столбцом, а столбец 1 займет место столбца 2.

Как лучше всего это сделать? Могу ли я использовать условие «если» в параметрах?


person saurabh730    schedule 08.10.2013    source источник
comment
Можете ли вы опубликовать свой файл jrxml с одним условием?   -  person user1791574    schedule 08.10.2013


Ответы (3)


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

Просто щелкните правой кнопкой мыши поле и нажмите «Редактировать выражение».

PFirst is a reports parameter

Выражение поля может быть примерно таким

$Pfirst.equals("fieldOne")?fieldOne:"" + $Pfirst.equals("fieldTwo")?fieldTwo:"" + $Pfirst.equals("fieldThree")?fieldThree:""

person coding_idiot    schedule 08.10.2013

Добавьте еще один параметр (снимите флажок «Использовать как подсказку») с оператором if в выражении значения по умолчанию. Я предполагаю, что весь оператор sql может быть в этом параметре, но тестировался только с частью оператора sql. В запросе отчета поместите эти новые параметры как $P!{paramname}. Должно сработать.

person user2859131    schedule 08.10.2013

Вы можете попробовать это: -

Если условие для текстового поля первого столбца, p_column является параметром со значением по умолчанию "col1"

 $P{p_column}.equals("col1") ? $F{col1} : $F{col2}

Если условие для второго текстового поля второго столбца: -

$P{p_column}.equals( "col1" ) ? $F{col2} : $F{col1}
person Sharad    schedule 09.10.2013