【问题标题】:DynamicReports vs. DynamicJasper [closed]DynamicReports 与 DynamicJasper [关闭]
【发布时间】:2011-02-10 12:06:01
【问题描述】:

背景

使用DynamicReports 开发Java EE 应用程序,到目前为止对我来说已经足够了。最近我找到了DynamicJasper,我想知道它是否是更好的选择。

我可以看到 DynamicReports 可能有更好的support 和社区。​​p>

问题

  • 您对这两个库的体验如何?
  • 哪个功能更好?
  • 各有什么优势和劣势?

谢谢!

【问题讨论】:

  • 如果他们的观点有充分的理由,那就是问题所在。最终取决于读者接受或拒绝意见。赞成 Qs
  • 在这些答案中,我发现了很多事实、参考资料和具体的专业知识。

标签: jasper-reports


【解决方案1】:

这个问题涉及使用 JasperReports API(直接或间接)创建报告的几种方法:

DynamicReports (DR) 和 DynamicJasper (DJ) 是两个免费的开源软件工具,它们使用 JasperReports API 抽象(和简化)常见任务。如果您正在考虑以编程方式开发报告,这些工具可以缩短开发时间。

DR 和 DJ API 包具有以下共同特性:

  • 动态设计
  • 动态列宽
  • 稳定
  • 将 iReport 模板与代码混合

iReport

iReport 是一个隐藏了直接调用 JasperReports 方法的复杂性的用户界面。换句话说,与手动编写 Java 调用相比,iReport 是一种开发报告的花哨且更友好的方式。最终结果是一样的:一个已编译的报告 (.jasper) 文件。

JasperReports API

JasperReports API 为程序​​员提供一组 Java 类,让计算机根据业务需求创建报告。例如,该 API 可以开发一个网站,允许用户在报告中选择他们想要的列,然后动态创建报告模板。模板准备好后,用户可以运行报告以查看结果。

iReport 缺少的一项功能是动态调整列宽的能力。通过直接使用 JasperReports API,程序员可以为报告的结果集创建具有最佳列宽的报告模板。

问题在于 JasperReports API 极其复杂,其中一部分可能需要使用更多文档。

动态碧玉

DynamicJasper 网站通过 JasperReports API 记录了以下 benefits:

  • 自动布局
  • 条形码
  • 干净的 Excel 支持
  • Struts 和 Grails 支持

API 示例展示了面向对象原则的良好运作。该网站提供了许多示例,Javadocs 的注释很少。 forum 比 DynamicReports 更活跃。

更新:该项目现在位于GitHub。没有论坛了,但是你可以申请Professional Support

动态报告

DynamicReports 网站通过 JasperReports API 记录了以下 benefits:

  • 继承的设计

该网站提供了许多示例,但遗憾的是 Javadocs 没有很多 cmets。此外,forum 似乎不如 JasperReports 或 DynamicJasper 活跃。

总结

如果您对 DynamicReports 感到满意,我会说坚持下去,否则请尝试 DynamicJasper。

【讨论】:

  • 感谢@Dave,组织得很好!
  • 非常感谢您的出色回答。
  • @kospitr 如果您认为它是好的,您应该接受答案(点击复选标记)
  • 论坛的链接似乎被交换了,DynamicJasper 中的链接指向 DynamicReports,反之亦然。描述也很奇怪。无论如何,DynamicReport 论坛的链接:dynamicreports.org/forum 和 DynamicJasper(这篇文章的 ATM 已损坏):dynamicjasper.com/forum
  • DynamicReports 网站无法访问,有什么想法吗? dynamicreports.org
【解决方案2】:

我刚刚花了几天时间使用和评估上述不同的报告选项,并认为我可以将我的 2 美分加入其中。 我在 JRXML、Dynamic Jasper 和 Dynamic Reports 中构建了相同的报告(盈亏)。 我需要一个能够以 PDF 和 excel 格式很好地输出并能够处理动态列的解决方案。

这是我发现的:

JRXML

发现使用和不使用 iReport 都非常乏味。我以前有过使用 JRXML 的经验,但我仍然发现要让报告在 PDF 和 Excel 中正确显示是一场真正的战斗。我不得不使用很多变通方法,根据它是 PDF 还是 Excel 来隐藏和显示一些字段。动态列处理不好。

动态碧玉

起初我发现 Dynamic Jasper 非常适合使用,但在对布局进行绝对控制和在报表上添加额外控件时遇到了一些问题。看来,如果您的报告是基于列的,那么它可以正常工作。我不知道如何将子报表添加到详细信息部分,而不得不将其添加到组页眉或页脚。

动态报告

在我看来,动态报告是创建动态 jasper 报告的最灵活、最简单的方法。语法简单直观,我发现启动和运行起来非常快。您可以像 Dynamic Jasper 那样进行基于列的报告,但也可以选择将组件直接放到报告的标题、详细信息或其他区域。它使用流式布局,因此您只需将组件放入报表并按该顺序显示。导出到 PDF 和 Excel 是一致的。

动态报告的最后一个也是最重要的好处是支持和更新活动。 DynamicJasper 已经有半年多没有论坛活动或支持了,而 DynamicReports 不仅在积极更新,而且开发者 (Ricardo Mariaca) 也在积极监控论坛并快速回复问题。

【讨论】:

    【解决方案3】:

    大约一年前,我遇到了 DJ。我对 DJ 的体验是最好的,因为有几个小故障需要解决。然而,当项目快完成时我发现了这些问题,并且由于这些变通方法已经存在,我继续使用 DJ。

    几个月后,我找到了 DR,并了解到 DR 的结构比 DJ 更好。我的下一个项目肯定会使用 DR。

    坦率地说,我使用的是 DJ 3.1.x 系列,并没有尝试任何更新的版本。我还没有广泛使用 DR。

    【讨论】:

      【解决方案4】:

      我是 DynamicJasper 的忠实粉丝,但最近我切换到 DynamicReports 4.0.1(当时 DynamicJasper 最新版本是 5.0.3)。 凭借在可读性和可用性方面更好的 API,DynamicReports 为动态设计报告提供了更大的灵活性。它的网站上也有大量的示例可以激发新的想法和一些可以帮助您快速入门的教程。这个link 也是一个很好的起点。

      我开始使用 DynamicReports 的唯一问题是使用 JasperReports 和 DynamicJasper,我习惯于首先创建 JasperReport(设计),然后将 JasperReport 对象与数据源一起传递给 JasperFillManager.fillReport(...) 方法创建 JasperPrint 对象。 使用 JasperPrint,唯一的事情就是在创建 JasperPrint 之前通过 report().toJasperPrint() 方法设置数据源。 您可以在其源代码中查找组件构建器或任何实用程序的用法,以了解如何使用特殊功能。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-08
        相关资源
        最近更新 更多