我在我的Spring MVC Web应用程序中使用BIRT报告(脚本数据源)。在我的Web应用程序中,不同的用户组有不同的数据库。当特定用户登录时,数据库连接会动态更改。 问题是当数据库发生变化时,BIRT报告应该用当前数据库更新,但它没有更新。 请提出建议,如何使用BIRT脚本动态更改当前数据库连接的BIRT数据库连接。
答案 0 :(得分: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()。