【问题标题】:Rationale behind reporting framework报告框架背后的基本原理
【发布时间】:2023-06-01 03:20:01
【问题描述】:

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

在我看来,当提到“报告”这个词时,会有一个明显的区别,即出于某种原因需要一个单独的框架。

当然,报告框架通常会提供附加功能,例如报告查看器,但在许多情况下,它仅用于生成 pdf。使用 html+css+js 相对于任何其他专有语言来描述报告的优势对我来说是数不胜数的:更易于维护,更易于阅读和编写,html 是任何人都可以理解的标准,无需添加其他内容您的网络服务的技术堆栈。

我知道我的问题到目前为止可能被视为不符合 SO 准则,因此我将尝试提出更准确的问题,而不是针对企业界的咆哮。

问题

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

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

【问题讨论】:

标签: c# asp.net razor reporting-services crystal-reports


【解决方案1】:

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

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


也就是说,在我自己的应用程序中,我通常使用 Razor PDF 生成 PDF(我告诉人们打印 PDF),使用 EPPlus 生成 Excel 导出文件,使用 DocX 生成 Word 文档,并且不提供 CSV因为我讨厌这种格式。这意味着我通常必须为每种格式重做每一个报告,但我喜欢我对输出的控制。

【讨论】:

  • 由于它被插入到 iframe 中,您可以通过浏览器在客户端打印它,或者如您所说,使用 razorpdf 之类的东西。假设这是我需要支持的唯一格式。对简单剃须刀有什么警告吗?真正让我沮丧的是,我所知道的报告框架都不是基于 html 的,而是使用蹩脚的专有 xml 格式和更蹩脚的编辑器。我喜欢 html,因为它真的很简单,而且它的 主要 目标是编写文档,为什么报告与其他文档不同我想知道 :)
  • @GiacomoTagliabue 如果我是你,我会避免像瘟疫一样的 iframe。就像我说的那样,需要注意的是,您必须手动构建对导出为所需格式的支持。
  • 支持导出格式是您个人认为的唯一大缺点吗?
  • @GiacomoTagliabue 你现在在问一些非常固执和广泛的问题。可能还有其他人,这取决于您对事物的重视程度。例如,非开发人员可以在没有太多帮助的情况下使用 Crystal Reports,而让他们使用 Razor 并教他们 HTML 和 CSS 并非易事。