我正在使用iReport开发报告,我想在其中添加空值的条件。它使用单选项作为:
(city=$P{p_city} or $P{p_city} is null)
这意味着如果我们不传递city参数的任何值,报告将起作用,但是在多选项选项的情况下这不起作用。我们在创建参数时必须在iReport中选择“Collection”值表达式:
($X{IN, country,p_country} or $P{p_country} is null)
我在JasperReports Server中创建了两个输入控件来运行此报告。一个是单选,“选择城市”,另一个是多选,“选择国家”,报告正在运行而没有传递“选择城市”参数的值,但对于“选择国家”参数,我们必须传递该值,因为“选择国家/地区”是多选项和集合类型参数,并且您不能在查询中添加空条件作为城市参数。
我们如何修改JRXML查询?
答案 0 :(得分:4)
$ X功能会自动处理。在您的情况下,您在查询中有这个:
$X{IN, country, p_country}
如果您的Collection为null,则会转换为1 = 1
。因此,没有理由将$P{p_country} is null
添加到查询中。
答案 1 :(得分:1)
当Collection参数的值为NULL时,隐藏所有数据输出都是通过以下方式完成的 表格组件上的表达式时打印。
P{Collection_Parameter_Name}.size()>0
$X{IN,filed_Name,param_Name}
,但在这里我们必须接受它
如$P{Collection_parameter_Name}
答案 2 :(得分:0)
你可以像这样设置你的条件 城市IN($ P!{p_city})
然后你可以通过网址调用:
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'