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



我正在通过提供的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 是否支持此功能。

刚刚找到它,看起来有点棘手。我们需要在可运行元素上创建一个参数定义任务:

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

然后,我们通过参数名称访问定义,我们可以获取参数的类型值(即"字符串"):

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

相关内容

最新更新