Ответ 1
Вы можете использовать вложенное тернарное выражение для достижения этого, но оно беспорядочно.
Например:
(i == 1) ? "Send" : ((i == 2)? "Received" : "Cancelled");
Мне нужно показать столбцы: - Отправить - Получать - отменено
В столбце отчета, проверив значение из БД, которое является "Состояние". Поэтому, если состояние равно 1, то отправьте: = 2 receive, = 3 отменено.
Выражение текстового поля в отчете jasper (? a: b) может принимать только одно условие, как я могу дать несколько условий? что-то вроде лестницы if-else?
Вы можете использовать вложенное тернарное выражение для достижения этого, но оно беспорядочно.
Например:
(i == 1) ? "Send" : ((i == 2)? "Received" : "Cancelled");
вы можете использовать метод replace() но вы должны изменить свой класс полей на String, если это не так, EX:
$F{f_phone_type}.replace("0","Phone/ATA").replace("1","Gateway").replace("2","SIPTrunk")
Сделайте поле статуса параметром, который передается из вашего bean. Таким образом, вы можете выполнить любую необходимую обработку в bean, присвоить результат переменной параметра и передать ее в свой отчет.
Мой предпочтительный метод - создать параметр с заменами в форме HashMap, когда у вас есть большая группа подстанций или если они могут измениться.
Вы можете либо передать подстановки во время выполнения, либо установить значение по умолчанию. Преимущество состоит в том, что вы можете обновить карту, не перекомпилируя отчет.
Например, если у вас должен быть параметр с именем "risk_types" (используя язык по умолчанию как groovy), вы должны установить значение по умолчанию для параметра примерно как
[1: "HIGH RISK", 2: "LOW RISK"]
В вашем коде у вас будет выражение вашего текстового поля (где risk_type - это поле поиска из базы данных):
$P{risk_types}.get($F{risk_type})
Для элементов, отсутствующих на карте, вы получите нулевое значение, я расширяю выражение текстового поля:
$P{risk_types}.get($F{risk_type}) ?: "UNDEFINED"
Boolean.valueOf(!($P{accWise}.equals("AC" ) && $F{RQAC_ACCREJ}.equals("R")))
полезно использовать несколько условий в свойствах ireport.