1,birt数据源使用session中的数据
script代码:
open:
importPackage(Packages.javax.servlet.http); req=reportContext.getHttpServletRequest(); session=req.getSession(); list = session.getAttribute("fylist"); iteratorparams=list.iterator();
fetch:
if(iteratorparams.hasNext()==false){ return false; } zybxqkmxb=iteratorparams.next(); row["zb[0]"]=zybxqkmxb[0]; row["zb[1]"]=zybxqkmxb[1]; row["zb[2]"]=zybxqkmxb[2]; row["zb[3]"]=zybxqkmxb[3]; row["zb[4]"]=zybxqkmxb[4]; row["zb[5]"]=zybxqkmxb[5]; row["zb[6]"]=zybxqkmxb[6]; row["zb[7]"]=zybxqkmxb[7]; row["zb[8]"]=zybxqkmxb[8]; if(zybxqkmxb[9]!=null){ row["zb[9]"]=zybxqkmxb[9].toString().substring(0,10); } else { row["zb[9]"]=""; } if(zybxqkmxb[10]!=null){ row["zb[10]"]=zybxqkmxb[10].toString().substring(0,10); } else { row["zb[10]"]=""; } row["zb[11]"]=zybxqkmxb[11]; row["zb[12]"]=zybxqkmxb[12]; row["zb[13]"]=zybxqkmxb[13]; row["zb[14]"]=zybxqkmxb[14]; if(zybxqkmxb[15]!=null){ row["zb[15]"]=zybxqkmxb[15].toString().substring(0,10); } else { row["zb[15]"]=""; } row["zb[16]"]=zybxqkmxb[16]; row["zb[17]"]=zybxqkmxb[17]; row["zb[18]"]=zybxqkmxb[18]; return true;
close: zybxqkmxb=null; iteratorparams=null;
2,jsp给birt传参
本文只是用jsp的url方式传递参数给birt报表,然后在birt的sql语句里面使用:
一、第一个中方法:
1、在jsp的URL里面添加所要传递的参数:
http://localhost:8080/birt-web/frameset?__report=test.rptdesign&sample=my+parameter
2、在报表当中添加同名报表参数sample,然后可以添加data set参数关联到报表参数sample,这样data set参数就可以得到从jsp页面传递过来的参数从而作为查询条件。
二、第二种方法:
1、在jsp的URL里面添加所要传递的参数:
http://localhost:8080/birt-web/frameset?__report=test.rptdesign&sample=my+parameter
2、在报表当中添加同名报表参数sample