[英]How to pass 2 or more different type parameters to jasper from java to ireport?
我想使用java.struts2对JasperReports的master_report和subreport使用两个或多个参数。
这是我的代码段:
JasperAction.java:
private String Para_rin;
private String[] Para_rin_sub1;
public String CreateRep_rin() throws Exception {
try {
param_rin = new HashMap<String, Object>();
param_rin.put("Para_rin", new Integer(Para_rin)); // Masterreport's parameter
param_rin.put("Para_rin_sub1", Para_rin_sub1); // SubReport's parameter
System.out.println("param_rin"+param_rin);
} catch (Exception e) {
e.printStackTrace();
return ERROR;
}
return "jasper-rin";
}
master.jrxml:
<parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
<defaultValueExpression><![CDATA["G:\\pages\\iReport\\"]]></defaultValueExpression>
</parameter>
<parameter name="Para_rin_sub1" class="java.util.List"/>
<parameter name="Para_rin" class="java.lang.Integer"/>
<queryString>
<![CDATA[select * from iv_raw_in where ID=$P{Para_rin}]]>
</queryString>
subreport.jrxml:
<parameter name="Para_rin_sub1" class="java.util.List">
<defaultValueExpression><![CDATA[]]></defaultValueExpression>
</parameter>
<parameter name="Para_rin" class="java.lang.Integer" isForPrompting="false"/>
<queryString>
<![CDATA[select * from iv_raw_in where $X{IN,ID,Para_rin_sub1}]]>
</queryString>
JSP:
<s:form id="jasper" action="jasper_CreateRep_rin" namespace="/pages/iReport">
<TABLE id="reptbl" width="350px" border="1">
<TR>
<td>
MasterParam :<s:textfield name="Para_rin" label="Stock" />SubParam :<s:textfield name="Para_rin_sub1" label="sub-Parameters" />
<s:submit value="Generate Stock Report" type="button" />
</td>
<td>
<s:radio label="format" name="rptFmt" list="#{'html':'HTML','pdf':'PDF'}" value="pdf" />
</td>
</TR>
</TABLE>
</s:form>
现在我遇到了一些错误,例如:
Database Connected
reportName: rep_rin
Format pdf -- rptFmt Exception::net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :
Source text : $P{Para_rin_sub1}.toArray()
我该如何完成?
您需要添加subreportParameter
在master.jrxml。 查看样本
<subreport>
<subreportParameter name="Para_rin_sub1">
<subreportParameterExpression><![CDATA[$P{Para_rin_sub1}]]></subreportParameterExpression>
</subreportParameter>
</subreport>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.