如何将多个连接传递到Birt Report?

时间:2018-09-25 04:17:00

标签: java birt

我可以通过Java代码将数据库连接传递给报表。以下是我的实现方式:

DataSource datasourceOracle= (DataSource)initialContext.lookup("java:jboss/jdbc/BirtConn");
task.getAppContext().put("OdaJDBCDriverPassInConnection", datasourceOracle.getConnection());

我的问题是报告正在使用多个数据源。所以我需要通过两个多重连接来报告。我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果您知道Java代码中连接的详细信息,则可以传递这些详细信息,而不仅仅是JNDI名称,如下所示:

task.getAppContext().put("conn1.username", "scott");
task.getAppContext().put("conn1.password", "tiger");
task.getAppContext().put("conn1.url", "oracle:jdbc:thin:@//oracledb:1521/orcl");

task.getAppContext().put("conn2.username", "hr");
task.getAppContext().put("conn2.password", "x");
task.getAppContext().put("conn2.url", "oracle:jdbc:thin:@//other-db:1521/xyz");

然后在报告中,您可以使用数据集的属性绑定对话框从上下文中设置值,例如为您的第一个数据源:

Database URL: reportContext.getAppContext().get("conn1.name");
User Name:    reportContext.getAppContext().get("conn1.username");
Password:     reportContext.getAppContext().get("conn1.password");
相关问题