birt

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

3、点击 Date Sets,在点中间的"Script"标签,选择BeforeOpen,写上
var sample = params["sample"].value; if(isample=="null"){    this.queryText +="where 1=1" ; } else {    this.queryText +=" where sample=" + sample ; }
4、如此设置之后就不用再data set里面设置data set参数。
 
 

posted on 2014-04-16 09:50  elen-  阅读(569)  评论(0编辑  收藏  举报

导航