你的位置:首页 > Java教程

[Java教程]Birt使用总结


把report放到其他服务器要重新建立Data Source ,这是配置,拷贝项目时不会同时拷贝

(1)在EXTJs中利用Report实现报表的刷新

Ext.getCmp("showview").body.update("<iframe id='showviewframe'  src='"+           +"'>  </iframe>");

其中showview是要刷新的panel的id

(2)Birt报表汉化(实现标题栏在Tomcat下以中文形式存在)z下载org.eclipse.birt.report.view.nl.jar放在WEB-INF/lib下

把zh-CN文件夹放在MyEclipse/dropins下

其中zh-CN包括features和plugins

(3)报表表格线问题

先右键New style---->(Name:)TableStyle---->选Border---->

设置线,在列标头(每一列)和行标头上分别右键

AppleStyle选择刚刚设置过的样式即可

(4)报表选择项-----属性绑定SQL语句

var query="select student_name,student_id from student";

if(params["student_name"].value!="全部")

{

query+="where student_name='"+params['student_anme']+"' ";

}

this.query=query;

(5)从birt向Tomcat传值乱码问题

将URIEncoding="UTF-8" useBodyEncodingForURI="true"放在apache-tomcat/conf/server.

 <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />

里面即可。

(6)开始日期小于等于结束日期

首先是强制类型转化问题,分别得到年月日,分别转换成String再相加

var dayTime=new Date();

       Year=dayTime.getFullYear();//4位数2014

   Month=(dayTime.getMonth()+1)<10?"0"+Month:Month;

  Day=(dayTime.getDate())<10?"0"+Day:Day;

 Year.toString()+Month.toString()+Day.toString();

注意:2014年10月10日用dayTime.getMonth()得到的是9月,故要加1

var  st=Ext.getCmp('deal_date').getValue();

deal=(st.getFullYear.toString()

+((st.getMonth()+1)?<10:"0"+(st.getMonth()+1):(st.getMonth()+1)).toSting()

+((st.getDate()<10?"0"+st.getDate():st.getDate()).toString()

) 

 

(7)SQL 语句日期  between ...and .....

  金额数字 >=    <=

(8)在EXT里判断初始日期小于等于结束日期

 在EXTJs里面有自带的函数

在开始的items里面

  listeners:{

 'select':function(){

    var start=Ext.getCmp('st').getValues();

    Ext.getCmp('et').setMinValue(start);

       var  et=Ext.getCmp('et').getValue();

    if(start>et){

      Ext.getCmp('st').setValue(start);

    }   

  }

}

 

在结束的items里面:

listeners:{

 'select':function(){

    var start=Ext.getCmp('st').getValues();

    var  end=Ext.getCmp('et').getValue();

    Ext.getCmp('et').setMinValue(start);

      

    if(start>end){

      Ext.getCmp('st').setValue(et);

    }   

  }

}

 

(9)在金额里面开始金额小于等于结束金额

在查询处加上:

if(deal_feel>deal_feez){

  Ext.MessageBox.alert('提示','开始金额必须小于等于结束金额');

}else{

Ext.getCmp("showview").body.update("<ifame  id='showviewframe'  src='"+clientURL+"'  width=100%  height=100%></iframe>");

}

 

(10)去掉标题栏的显示/导出数据/打印等

在WebRoot/report-viewer/birt/pages/control/ToolbarFragment.jsp里面修改即可:

(11)模糊查询

select name from student where name =' '%'+____+'%' '   ;

(12)sql语句中if之间要有空格,否则错误在哪里,不好找

(13)不要把参数注释,方便查错

(14)把Report项目合到Web Report里面

在MyEclipde里面--->Project Capabilities---->Add  Report Capabilities即可

(15)选择合并,在编辑中对报表用if  else 语句

(16)String  类型的交易金额时,过滤条件中为String num

(17)给报表添加序号

  <1>在空白处点击一下,然后到Script页面,选择initialize,输入 var  count=0;

  <2>回到报表设计页面,带Data区域的expression 中输入:

  count++;

  count

<3>保存

(18)去掉birt自动生成的日期

点击

(19)使用超链接

    <1>新建一列 查看 超链接 Script 里面var c='查看';

    <2>

    <3>选中Data的property Editor 的Hyperlink-->Edit

      Select Hyperlink Type:选中 Drill-through

      step1: Report Design:选择要链接的报表

          Report Parameters:Parameters

                    选择where 语句的属性

                    在空白处点击一下

                    选择values

       点击OK即可

在要选择的报表中要有where语句,建Report Parameters属性

 

(20)使用Data Clubes (多维数据集)做汇总表

1.new Data Source

2.new Data Sets

3.new Data Cubes

Dataset其中Primary  dataset中将2中的Dataset  Groups  and  Summaries 中将数据一次拖放到Groups中和Summary Fields中

点击OK即可

4.将Data cube 拖放到面板

5.预览即可

(21)交叉报表与(20)类似

在Groups中依次添加交叉项目

(22)使用图表

  给X轴设置名称,不用改,会直接显示

(23)运行birt出现警告

在web.