我的报告可以在报告设计器中使用4个参数
例如: ticket1,ticket2,ticket3,ticket4 。
有时我可以选择给报告2个参数或者3个
例如: ticket1,ticket2 或 ticket1,ticket2,ticket3
我有一个变量TICKET_COUNT,我不知道如何总结参数的计数,因为我可能并不总是给它4,我可以从0到4给出任何一个。
如何获取我为报告提供的参数数量?
ex:ticket1,ticket2,ticket3,ticket4。 TICKET_COUNT = 4
ex:ticket1,ticket4。 TICKET_COUNT = 2
答案 0 :(得分:1)
解决。
编写一个scriptlet
package com.xxx;
import net.sf.jasperreports.engine.JRDefaultScriptlet;
import net.sf.jasperreports.engine.JRScriptletException;
public class MyScriptlet extends JRDefaultScriptlet {
public int getTicketCount() throws JRScriptletException {
String ticket1 = (String)this.getParameterValue("ticket1");
String ticket2 = (String)this.getParameterValue("ticket2");
String ticket3 = (String)this.getParameterValue("ticket3");
String ticket4 = (String)this.getParameterValue("ticket4");
int cnt = 0;
if(ticket1!=null){
cnt++;
}
if(ticket2!=null){
cnt++;
}
if(ticket3!=null){
cnt++;
}
if(ticket4!=null){
cnt++;
}
return cnt;
}
}
将scriptlet构建到jar文件,并在报告中转到classpath并添加jar
使用完全限定名称设置报告的Scritplet属性 你的scriptlet类(例如:com.xxx.MyScriptlet)
在报告中创建变量TICKET_COUNT和
将变量类设置为java.lang.Integer
将变量表达式设置为$P{REPORT_SCRIPTLET}.getTicketCount()
scriptlet配置详细信息here(第15章scriptlet)