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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2026 CODEPRJ.COM