birt 報表設計(10)—jdbc數據源

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

相關文章
相關標籤/搜索