1.建立一個報表項目pl_report ,而後建立一個報表report_1.rptdesign。併爲其建立一個jdbc數據源 java
本例是使用sqlServer數據庫,且鏈接驅動是使用jtds-1.3.1.jar。因此這裏要加入jtds-1.3.1.jar包如: sql
記住最後將設計好的報表複製到 birt_runtime項目下時也要把jtds-1.3.1.jar加入項目中。設置好參數後就完成了數據源的建立了。 數據庫
下面咱們要爲該數據源寫腳本,讓其從配置文件中讀取鏈接參數。 sqlserver
1.在項目下建立jdbc鏈接配置文件:mssql_connect.properties。文件內容以下: this
database.driver=net.sourceforge.jtds.jdbc.Driver database.host=192.168.4.30 database.prot=3433 database.userName=test database.password=test123 database.url=jdbc:jtds:sqlserver://192.168.4.30:3433/AqSc
2.選中剛纔建立的數據源而後在設計界面中選擇「腳本」選項目卡 url
咱們將在beforeOpen面板中編寫腳本,腳本內容以下: spa
importPackage(Packages.java.io); importPackage(Packages.java.util); fis = new FileInputStream("E:/WorkSpace/BirtReport/pl_report/mssql_connect.properties"); if(fis!=null){ props = new Properties(); props.load(fis); } this.setExtensionProperty('odaURL',props.getProperty("database.url")); this.setExtensionProperty('odaDriverClass',props.getProperty("database.driver")); this.setExtensionProperty('odaUser',props.getProperty("database.userName")); this.setExtensionProperty('odaPassword',props.getProperty("database.password")); if(fis!=null) fis.close();這樣當 report_1.rptdesign報表打開數據源時將執行這段代碼,並完成鏈接參數的設置。能夠看到腳本中配置文件的讀取地址仍是寫死的,這樣與不讀取配置文件沒什麼兩樣。
下面咱們將代碼改進下: .net
importPackage(Packages.java.io); importPackage(Packages.java.util); importPackage(Packages.java.net); importPackage(Packages.javax.servlet.http); req = reportContext.getHttpServletRequest(); url = req.getSession().getServletContext().getResource("/pl_report/mssql_connect.properties"); props = new Properties(); props.load(url.openStream()); this.setExtensionProperty('odaURL',props.getProperty("database.url")); this.setExtensionProperty('odaDriverClass',props.getProperty("database.driver")); this.setExtensionProperty('odaUser',props.getProperty("database.userName")); this.setExtensionProperty('odaPassword',props.getProperty("database.password"));
而後將pl_report直接複製到birt runtime下便可
最後運行該報表便可如: 設計
http://localhost:8080/birt/frameset?__report=pl_report/report_1.rptdesign code