【问题标题】:Getting report template parameter types from BIRT Engine API从 BIRT Engine API 获取报告模板参数类型
【发布时间】:2016-02-22 10:57:06
【问题描述】:

我正在通过提供的 Java 引擎呈现我的 BIRT 报告。我为此使用了这个库:

<dependency>
    <groupId>org.eclipse.birt.runtime</groupId>
    <artifactId>viewservlets</artifactId>
    <version>4.5.0</version>
</dependency>

但是,我的报告参数是通过 HTTP 请求提供的,我在其中指定要使用的模板和报告参数。因此,当我从 URL 中检索它们时,我不再知道它们的类型,因为它们已转换为 String,所以我想知道 scalar-parameters的类型> 在给定的报告模板中,为了将参数转换为它们的具体类型。

IReportRunnable runnable = engine.openReportDesign(design);
IRunAndRenderTask task = engine.createRunAndRenderTask(runnable);
task.run();

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

【问题讨论】:

    标签: java birt


    【解决方案1】:

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

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

    然后,我们通过参数名访问定义,就可以得到参数的类型值(即“字符串”):

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

    【讨论】:

    • 这仍然是如何做到的吗?对我来说似乎相当难看...您是否通过任何更改找到了更方便的方法?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    相关资源
    最近更新 更多