Как дать условие для нулевых значений параметра множественного выбора в Ireport? - PullRequest
0 голосов
/ 20 марта 2012

Я разрабатываю отчет, используя iReport , где я хочу добавить условие для нулевых значений. Он работает с одним вариантом выбора как:

(city=$P{p_city} or $P{p_city} is null)

Это означает, что здесь, если мы не передадим какое-либо значение для параметра city, отчет будет работать, но это не работает в случае опции множественного выбора. Мы должны выбрать выражение значения «Коллекция» в iReport при создании параметра:

($X{IN, country,p_country} or $P{p_country} is null) 

Я создал два элемента управления вводом в JasperReports Server для запуска этого отчета. Один - это отдельный выбор, «Выбрать город», а другой - множественный выбор, «Выбрать страну», и отчет выполняется без передачи значения для параметра «Выбор города», но для параметра «Выбор страны» мы должен передать значение, потому что «Выбор страны» является множественным выбором и параметром типа «Коллекция», и вы не можете добавить нулевое условие в запросе, как для параметра города.

Как мы можем изменить запрос JRXML ?

Ответы [ 3 ]

4 голосов
/ 21 марта 2012

Функция $ X обрабатывает это автоматически.В вашем случае у вас есть это в вашем запросе:

$X{IN, country, p_country}

Это преобразуется в 1 = 1 в случае, если ваша коллекция равна нулю.Поэтому нет смысла добавлять $P{p_country} is null в запрос.

1 голос
/ 26 февраля 2015

Если значение параметра Collection равно NULL, то скрытие всех выводимых данных выполняется ниже. печать при выражении в компоненте таблицы.

P{Collection_Parameter_Name}.size()>0

Примечания:

  1. Параметр коллекции принимает синтаксис $X{IN,filed_Name,param_Name} в запросе SQL, но здесь мы должны принять его как $P{Collection_parameter_Name}
  2. Если вы напечатаете параметр в отчете, вы получите различные размеры параметра коллекции (количество выбранных значений в коллекции)
0 голосов
/ 04 августа 2016

Вы можете поставить свое состояние как этот город IN ($ P! {P_city})

Тогда вы можете позвонить по URL с:

http://ip:8080/jasperserver/flow.html?_flowId=viewReportFlow&standAlone=true&_flowId=viewReportFlow&ParentFolderUri=/reports/reports&reportUnit=/reports/reports/rptReporte&j_username=jasperreportadmin&j_password=jasperreportadmin&p_city='city1','city2'
...