报告框架背后的基本原理

Rationale behind reporting framework

在企业界,似乎如果要显示报告,您必须使用报告框架。您将其命名为:Crystal 报告、Jasper 报告、ActiveReports、SSRS。但我不明白为什么在 2015 年,您应该更喜欢报告框架而不是生成 HTML 页面服务器端。例如,在 .NET 应用程序中,与使用 razor 生成 html 网页的更简单方法相比,使用此类框架的优势是什么?然后可以打印该页面以生成 pdf。

在我看来,当提到 "report" 这个词时,感觉上存在差异,出于某种原因需要一个单独的框架。

当然,报告框架通常会提供其他功能,例如报告查看器,但在许多情况下,它仅用于生成 pdf。使用 html+css+js 比任何其他专有语言来描述报告的优势对我来说是不可估量的:更易于维护,更易于阅读和编写,html 是一个标准任何人,并且无需向您的 Web 服务的技术堆栈添加另一部分。

我理解到现在我的问题可以被视为不符合 SO 准则,所以我会尝试提出一个更准确的问题,而不是对企业界的咆哮。

问题

假设我的用例是生成这样的报告:

在页面或 iframe 中。在 ASP.NET 网站中使用 Crystal Reports 或 ActiveReports 而不是像我对所有其他服务那样使用 Razor 渲染有什么优势?与普通报告相比,生成报告时有什么我应该更加小心的吗?如果我得到的好处是页面顶部那个蹩脚的顶部栏,那么,我很乐意摆脱使用报告框架的痛苦。

因此您生成了一个 HTML 页面。你打算如何打印它?你打算拉图书馆来做吗?正确设置样式并确保导航元素不会出现在打印报告中的策略是什么?您将如何支持导出为 Word、Excel、CSV 或 PDF?

报告工具通常会为您处理这些细节。


也就是说,在我自己的应用程序中,我通常使用 Razor PDF (and I tell people to print the PDF), generate Excel exports with EPPlus, Word documents with DocX 生成 PDF,并且不提供 CSV,因为我讨厌这种格式。这意味着我通常必须为每种格式重做每份报告,但我喜欢我对输出的控制。