eclipse birt 经验积累

一.报表动态查询
1.前台提交部分
var url= 'frameset?__report=fa/detailSaleOnPassReport.rptdesign';
var fbegdate = queryTBar.find('name', 'fbegdate')[0].getValue();
var fenddate = queryTBar.find('name', 'fenddate')[0].getValue();
if( !Ext.isEmpty(fbegdate)){
     src = src + '&fbegdate=' + Ext.util.Format.date(fbegdate, 'Y-m-d');                                 
 }
if( !Ext.isEmpty(fenddate)){
     src = src + '&fenddate=' + Ext.util.Format.date(fenddate, 'Y-m-d');                                 
}
window.location = url


2.报表部分
(1)在报表设计器里的Report paramenters 里面新建参数。
参数名称要与url传递来的参数一致。顺便把 Is Required 选项去掉。
(2)在设计器面板,选择Data Set 然后点击Script
在before open面板中获取参数,并拼写where条件
var where_sql = "1=1";
var fbegdate = reportContext.getParameterValue("fbegdate");
var fenddate = reportContext.getParameterValue("fenddate");
if(fbegdate!=null && fbegdate!=""){
	where_sql += " and a.fbilldate >= to_date('"+fbegdate+" 00:00:00','yyyy-mm-dd hh24:mi:ss') ";
}
if(fenddate!=null && fenddate!=""){
	where_sql += " and a.fbilldate <= to_date('"+fenddate+" 23:59:59','yyyy-mm-dd hh24:mi:ss') ";
}
var tmp_sql = this.queryText.replace("1=1",where_sql);
this.queryText = tmp_sql;


以上方式是简单的通过设计器处理。以后再尝试使用Birt API来处理。

二.表样设置

猜你喜欢

转载自21841625a.iteye.com/blog/1844912