为什么在部署的Web应用中不评估BIRT报告参数的默认javascript值?

时间:2011-11-20 21:33:56

标签: birt

我想为报告参数添加一个默认值javascript,所以我做了以下(在eclipse birt设计师中):

reportDesignerAddParameter

我遇到的问题是:当我部署应用程序(包含报告)时,不评估javascript:webpageReportParamsJavascriptInDefaultValueNotEvaluated

但是,当我在birt报告设计器中预览报告时,它会评估javascript默认值:

birtViewerJavascriptIsEvaluated

以下是我使用的代码(过滤后仅包含相关内容):

  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表达式的选项吗?

1 个答案:

答案 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)