2016-01-22 70 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

我正在使用脚本数据源,当用户登录时,只有数据库获取更改,但报表数据库没有更新,仍然与第一个数据库连接。 –