把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即可