0

我正在开发一个报告应用程序,用户可以在其中从 100 个报告列表中选择(和订购)报告并要求提供主报告。此主报告将包含所有选定的报告,其顺序准确,并带有一个目录,其中列出了主报告中包含的报告。可供用户选择的报告(可能是 100 份)存储在数据库中。

我的问题是:-

  1. 要使用用户选择的报告生成主报告,我能看到的唯一解决方案是使用 Reporting Engine API 生成一个动态报告,我必须将用户选择的报告添加为子报告。这是解决这个问题的正确和最简单的方法吗?有没有人有报告引擎 API 使用示例,特别是在主报告中注入子报告?
  2. 由于我将报告存储在 db(blob) 中,因此我试图找到一种方法来使用输入流而不是 中指定的 URL 生成子报告ResourceManager.createDirectly(url, MasterReport.class),但直到现在还没有成功。如何从存储在数据库中的定义生成报告?应该有一些资源抽象。
4

1 回答 1

1

将您的报告读入字节数组,然后像往常一样使用 ResourceManager.createDirectly 方法。这将解决您解析报告的问题。

您可以使用将它们直接解析为子报表

ResourceManager.createDirectly(bytes, SubReport.class)

然后可以将这些子报表作为带状子报表添加到您的主报表中。如果您希望所选报告在新页面上开始,请确保在子报告的报告标题上设置“pagebreak-before”样式。

有一个资源抽象:它称为“LibLoader”,您可以创建自己的 ResourceLoader 来处理将数据作为原始流从数据库中取出的问题,以便 ResourceFactory 实现可以解释/解析原始数据。

但是每个数据库的设计都不同,因此作为系统集成商必须为其编写胶水代码。我们只能提供接口。

于 2011-01-12T16:15:33.090 回答