首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Ireport中给出多选参数空值的条件?

如何在Ireport中给出多选参数空值的条件?
EN

Stack Overflow用户
提问于 2012-03-20 14:11:38
回答 3查看 8.1K关注 0票数 0

我正在使用iReport开发一个报告,其中我想为空值添加一个条件。它使用单选选项,如下所示:

代码语言:javascript
复制
(city=$P{p_city} or $P{p_city} is null)

这意味着如果我们没有为城市参数传递任何值,报表将会工作,但在多选选项的情况下不会工作。当我们创建一个参数时,我们必须在iReport中选择一个“集合值”表达式:

代码语言:javascript
复制
($X{IN, country,p_country} or $P{p_country} is null) 

我在JasperReports Server中创建了两个输入控件来运行此报告。一个是单选,“选择城市”,另一个是多选,“选择国家”,报表在运行时没有传递“选择城市”参数的值,但对于“选择国家”参数,我们必须传递该值,因为“选择国家”是多选和集合类型参数,并且您不能在查询中为城市参数添加null条件。

我们如何修改JRXML查询?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-21 04:30:23

$X功能会自动处理此问题。在本例中,您的查询中包含以下内容:

代码语言:javascript
复制
$X{IN, country, p_country}

在集合为空的情况下,它将转换为1 = 1。因此,没有理由将$P{p_country} is null添加到查询中。

票数 4
EN

Stack Overflow用户

发布于 2015-02-26 21:25:49

当Collection参数的值为NULL时,要隐藏所有数据输出,可以通过下面的print When expression on table component来完成。

代码语言:javascript
复制
P{Collection_Parameter_Name}.size()>0

备注:

集合参数在SQL查询中采用语法$X{IN,filed_Name,param_Name},但在这里我们必须将其作为打印参数在报表上打印您将获得不同大小的集合参数(

  1. in $X{IN,filed_Name,param_Name}下拉列表)
票数 1
EN

Stack Overflow用户

发布于 2016-08-05 04:32:56

你可以像这样把你的情况放在($P!{p_city})

然后你可以通过url调用:

代码语言:javascript
复制
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'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9782107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档