我正在使用iReport开发一个报告,其中我想为空值添加一个条件。它使用单选选项,如下所示:
(city=$P{p_city} or $P{p_city} is null)这意味着如果我们没有为城市参数传递任何值,报表将会工作,但在多选选项的情况下不会工作。当我们创建一个参数时,我们必须在iReport中选择一个“集合值”表达式:
($X{IN, country,p_country} or $P{p_country} is null) 我在JasperReports Server中创建了两个输入控件来运行此报告。一个是单选,“选择城市”,另一个是多选,“选择国家”,报表在运行时没有传递“选择城市”参数的值,但对于“选择国家”参数,我们必须传递该值,因为“选择国家”是多选和集合类型参数,并且您不能在查询中为城市参数添加null条件。
我们如何修改JRXML查询?
发布于 2012-03-21 04:30:23
$X功能会自动处理此问题。在本例中,您的查询中包含以下内容:
$X{IN, country, p_country}在集合为空的情况下,它将转换为1 = 1。因此,没有理由将$P{p_country} is null添加到查询中。
发布于 2015-02-26 21:25:49
当Collection参数的值为NULL时,要隐藏所有数据输出,可以通过下面的print When expression on table component来完成。
P{Collection_Parameter_Name}.size()>0备注:
集合参数在SQL查询中采用语法$X{IN,filed_Name,param_Name},但在这里我们必须将其作为打印参数在报表上打印您将获得不同大小的集合参数(
$X{IN,filed_Name,param_Name}下拉列表)发布于 2016-08-05 04:32:56
你可以像这样把你的情况放在($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'https://stackoverflow.com/questions/9782107
复制相似问题