0

我正在创建一个 rptlibrary 与我公司的所有报告共享。该库有一个创建并共享给所有报告的 oda 数据源。我们想从 ReportEventAdapter.initialize() 对数据库进行一些查询,以从数据库中获取信息。我可以通过这种方式访问​​库中的数据源:

ReportDesignHandle rdh = (ReportDesignHandle)reportContext.getReportRunnable().getDesignHandle();
DesignSessionImpl ds = rdh.getModule().getSession();
String rsf = ds.getResourceFolder( );
LibraryHandle libhan = ds.openLibrary(rsf + "/my.rptlibrary" ).handle( );
DataSourceHandle datasource = libhan.findDataSource("myDS");

但是一旦我有了数据源,就无法从数据源连接到数据库。这样做的唯一方法是使用数据源中的数据创建到数据库的经典 JDBC 连接?有什么方法可以使用更优雅的方法从 java 处理程序连接到数据库?像使用池,重用连接等。

谢谢。

4

1 回答 1

0

我们可以在报告脚本事件中迭代数据集值,因此如果使用 JNDI URL 定义数据集,则查询可以利用连接池。

然而,它相当复杂。本主题中有一个完整的示例:报表参数的“getDefaultValueList”事件中定义的脚本可以移动到报表中的任何位置,然后初始化一个全局变量。特别是我们可以将它移动到“初始化”事件,或“beforeFactory”事件(在你的情况下,“beforeFactory”可能是你想要的)。

于 2014-07-28T08:24:58.507 回答