2016-01-22 69 views
1

我在我的Spring MVC Web應用程序中使用BIRT報告(腳本數據源)。我的Web應用程序中的不同用戶組有不同的數據庫。當特定用戶登錄時,數據庫連接更改動態。 問題是當數據庫發生變化時,BIRT報告應該用當前數據庫更新,但不更新。 請建議方式,如何使用BIRT腳本動態更改BIRT數據庫連接與當前數據庫連接。BIRT與當前數據庫連接

回答

0

在我的Maximo BIRT報告中,數據源存儲在報告設計文件之外的外部源中。

<data-sources> 
     <script-data-source name="maximoDataSource" id="64" extends="MaximoSystemLibrary.maximoDataSource"/> 
</data-sources> 

我認爲最好的辦法是到源文件的內容更改爲新的數據庫時在用戶登錄。這樣,你的數據庫改變邏輯保持在一個地方。

如果只有有限數量的數據庫,則可以對所有數據源進行硬編碼,並在報告中設置一個腳本,用正確的數據源名稱設置一些全局變量。 每個數據集開始與選擇數據源:

maximoDataSet = MXReportDataSetProvider.create(this.getDataSource().getName(), this.getName()); 
maximoDataSet.open(); 

您可以用朝向正確的數據源指向新的全局變量替換this.getDataSource()的getName()。

+0

我正在使用腳本數據源,當用戶登錄時,只有數據庫獲取更改,但報表數據庫沒有更新,仍然與第一個數據庫連接。 –