使用BIRT實作跨資料庫資料查詢和關聯計算時遇到問題。用DB2實作跨庫的join配置很麻煩;如果用BIRT把兩個庫的資料都讀進來的話,用BIRT的腳本(java或者java script)都要寫較長的代碼來實作join,也很麻煩。采用了集算器後任務就變得簡單許多。
要在一個報表裡展現的資料來源于兩個DB2資料庫。項目的資料有保密的要求,是以用訂單表和訂單明細表來做驗證的:
訂單表(來源資料庫1),資料量10w:

訂單明細表(來源資料庫2),資料量20w:
第一步:編寫代碼,從兩個資料庫中取出資料來,在庫外做join運算:
A1到A6是連接配接兩個資料庫、取出資料、關閉資料庫。A7到A10是完成join。代碼網格A11把報表需要的資料傳回給BIRT。
第二步:将集算器內建到BIRT中
先拷貝相關jar包到jdbc驅動目錄:
再修改配置檔案:
集算器配置檔案有兩個,dfxConfig.xml和config.xml,放到dm.jar中。
然後配置BIRT資料源:
驅動類名:com.esproc.jdbc.InternalDriver (v1.0)
URL:jdbc:esproc:local://
第三步:在BIRT中建立存儲過程資料集
這裡調用的存儲過程“xjst-join2”的名字就是集算器腳本檔案名(去掉字尾.dfx)。
第四步:報表展現