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