从BIRT Engine API获取报告模板参数类型

时间:2016-02-22 10:57:07

标签: java birt

我通过提供的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();

由于我正在使用这段代码从模板呈现报告,是否有某种方法可以从IReportRunnableIRunAndRenderTask检索标量参数类型?由于参数是在模板文件中声明的并且是XML文件,因此它们是可解析的,但是知道引擎API是否支持这一点会很好。

1 个答案:

答案 0 :(得分:0)

刚刚发现它,但看起来有点棘手。我们需要在runnable元素上创建一个参数定义任务:

IReportRunnable runnable = engine.openReportDesign(design);
IGetParameterDefinitionTask paramTask = engine.createGetParameterDefinitionTask(runnable);

然后,我们通过参数名称访问定义,我们可以得到参数的类型值(即&#34; string&#34;):

paramTask.getParameterDefn("my_parameter_name").getHandle().getElement()
    .getProperty(null, "dataType").toString();