Birt使用总结

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

把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.xml的

<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自动生成的日期

点击xml Source ,将<page-footer>....</page-footer>删去即可

(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.xml中将<param-name>BIRT_VIEWER_LOG_LEVE</param-name>中的waring改为SEVERE即可

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航