我想为报告参数添加一个默认值javascript,所以我做了以下(在eclipse birt设计师中):
我遇到的问题是:当我部署应用程序(包含报告)时,不评估javascript:
但是,当我在birt报告设计器中预览报告时,它会评估javascript默认值:
以下是我使用的代码(过滤后仅包含相关内容):
IReportRunnable design = getReportRunnable(pathToTemplate);
IRunAndRenderTask task = _birtReportEngine.createRunAndRenderTask(design);
task.setRenderOption(options);
task.getAppContext().put(EngineConstants.APPCONTEXT_CLASSLOADER_KEY, ReportEngine.class.getClassLoader());
task.setParameterValues(parameters);
task.validateParameters();
task.run();
问题是:我错过了什么吗?我应该在某处添加一个强制评估默认javascript表达式的选项吗?
答案 0 :(得分:6)
您展示的代码是用于创建和呈现报告的代码,但它不是用于显示参数表单的代码。
您使用的是Birt-Webviewer还是自行开发的Web应用程序?
在后一种情况下,如果您按org.eclipse.birt.report.engine.api.IScalarParameterDefn.getDefaultValue()
检索默认参数值,则不会评估javascript表达式。
要获得评估表达式的默认参数值,您必须使用引擎任务IGetParameterDefinitionTask,并使用方法org.eclipse.birt.report.engine.api.IGetParameterDefinitionTask.getDefaultValue(IParameterDefnBase arg0)
。