我查看了 BIRT 的基础教程,我觉得 BIRT 是高度以数据库为中心的。我的情况完全不同。
我必须从不同类型的数据源生成报告。要发布的数据是动态创建的(这是另一个模块的工作),并且我有复杂的数据结构来保存数据(如 map 列表)。我无法拥有模板,因为这一切都取决于用户交互。但数据结构包含创建每个报表所需的所有数据,即列名、行数和行值。
我真的很困惑如何从这种数据源创建报告。 BIRT 仅支持 POJO。有什么方法可以将 map 指定为数据集并将 Java 类指定为数据源吗?或者如果没有,有什么替代方案?
最佳答案
您有几种不同的选择:
1) 使用脚本数据源并通过应用程序上下文传入列表/ map 结构。在您的报告中,您将在初始化事件中执行类似以下操作:
var myData = reportContext.getApplicationContext().get("myPassedInValue");
reportContext.setGlobalVariable("data", myData);
然后,在脚本化数据集的获取事件中,根据需要迭代列表/ map 。
2) 创建一个 ODA 插件来显式处理您的数据结构。这是很多跑腿工作,但它使设计报告变得更容易。
3) 使用 BIRT 的设计引擎 API 以编程方式构建报告和数据。
关于java - 使用 BIRT 创建报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4586532/