我正在通过提供的Java引擎渲染我的BIRT报告。我使用此库:
<dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>viewservlets</artifactId>
<version>4.5.0</version>
</dependency>
但是,我的报表参数是通过 HTTP 请求提供的,在该请求中,我指定要使用的模板和报表参数。因此,当我从 URL 检索它们时,我不再知道它们的类型,因为它们已转换为 String,因此我想知道给定报告模板中标量参数的类型,以便将参数转换为其具体类型。
IReportRunnable runnable = engine.openReportDesign(design);
IRunAndRenderTask task = engine.createRunAndRenderTask(runnable);
task.run();
当我使用这段代码从模板呈现报表时,有没有办法从IReportRunnable
或IRunAndRenderTask
中检索标量参数类型?由于参数是在模板文件中声明的,并且是 XML 文件,因此它们是可解析的,但最好知道引擎 API 是否支持此功能。
刚刚找到它,看起来有点棘手。我们需要在可运行元素上创建一个参数定义任务:
IReportRunnable runnable = engine.openReportDesign(design);
IGetParameterDefinitionTask paramTask = engine.createGetParameterDefinitionTask(runnable);
然后,我们通过参数名称访问定义,我们可以获取参数的类型值(即"字符串"):
paramTask.getParameterDefn("my_parameter_name").getHandle().getElement()
.getProperty(null, "dataType").toString();