我是Birt的新手。
我正在尝试将连接从我的 java 应用程序传递给报告,但出现错误:
以下项目有错误:
ReportDesign (id = 1): + 评估脚本“importPackage(Packages.it.lfiammetta.birt); var conn = new ReportRenderer(); reportContext.getAppContext().put("OdaJDBCDriverPassInConnection", conn);”时出错:在函数 __bm_beforeOpen() 中执行脚本失败。资源:
" + importPackage(Packages.it.lfiammetta.birt); var conn = new ReportRenderer(); reportContext.getAppContext().put("OdaJDBCDriverPassInConnection", conn); + "
发生 BIRT 异常。有关详细信息,请参阅下一个例外。评估 Javascript 表达式时出错。脚本引擎错误:ReferenceError:未定义“ReportRenderer”。(/report/data-sources/oda-data-source[@id="43"]/method[@name="beforeOpen"]#2) 脚本来源:/report/data-sources/oda-data-source[ @id="43"]/method[@name="beforeOpen"],行:0,文本:__bm_beforeOpen()。(元素 ID:1)
这是我创建和启动报告的 java 代码:
package it.lfiammetta.birt;
public class ReportRenderer {
public void executeReport() {
code...
Map<String, Object> appContext = task.getAppContext();
appContext.put("OdaJDBCDriverPassInConnection", myConnection);
appContext.put("OdaJDBCDriverPassInConnectionCloseAfterUse", false);
task.setAppContext(appContext);
task.run();
code...
}
}
这是我在脚本“beforeOpen”数据源中编写的代码:
importPackage(Packages.it.lfiammetta.birt);
var conn = new ReportRenderer();
reportContext.getAppContext().put("OdaJDBCDriverPassInConnection", conn);
我设置了类路径。
我使用的Birt版本是4.2.1。
提前感谢您的帮助,我为我的英语道歉。