本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

BIRT 获取报告中所需参数的列表

发布于2023-09-25 20:20     阅读(506)     评论(0)     点赞(24)     收藏(2)


假设我有一个报告,在执行之前需要设置一些必需的参数。如果我在 BIRT 查看器中执行报告,则会出现弹出窗口,要求输入所需参数。我使用 BIRT API,并且不想在我的应用程序中部署 BIRT 查看器。如何以编程方式获取执行报告之前需要设置的参数列表?

或者换句话说,我如何以编程方式知道,在执行之前应该设置哪些参数?

以及如何设置我从用户那里获得的报告值?


解决方案


我发现了以下决定。我们应该定义一个单独的任务:

IGetParameterDefinitionTask taskGetParameters = engine
                .createGetParameterDefinitionTask(design);

之后我们可以从此任务中获取参数的迭代器:

Collection params = taskGetParameters.getParameterDefns(true);
        Iterator iter = params.iterator();

之后我们可以迭代参数并获取它们的属性。我正在获取我在报告设计阶段定义的参数名称及其帮助文本,以及存储类型和默认值的位置:

while (iter.hasNext()) {
            IParameterDefnBase param = (IParameterDefnBase) iter.next();
            System.out.println(param.getName() + ": " + param.getHelpText());
        }

然后我形成参数的 Hashmap,键是名称,值是值,并将其传递给 IRunAndRenderTask:

HashMap<String, String> setParameters = new HashMap<String, String>();
//some code for adding parameters to the hashmap is here
IRunAndRenderTask task = engine.createRunAndRenderTask(design);
task.setParameterValues(setParameters);
EXCELRenderOption options = new EXCELRenderOption();
options.setOutputFormat("csv");
options.setOutputFileName("output\\myxls.csv");
task.setRenderOption(options);
task.run();
task.close();

我省略了一些代码以避免此处出现大量文本,当然必须关闭引擎和所有 BIRT 资源以避免内存泄漏。

如您所见,要点是我们需要从一个任务获取参数属性并将其传递给另一个任务。

我在这里找到了一些提示



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/677408/55d99e38c4959ba013a9/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

24 0
收藏该文
已收藏

评论内容:(最多支持255个字符)