报告框架背后的基本原理

时间:2015-05-19 14:20:36

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

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

在我看来,当提到“报告”这个词时,存在一种感觉上的差异,对某些人来说需要一个单独的框架。

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

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

问题

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

enter image description here

在页面或iframe中。在ASP.NET网站中使用Crystal Reports或ActiveReports而不是像我对其余服务一样使用Razor呈现有什么好处?与普通报告相比,生成报告时是否应该更加谨慎?如果我得到的奖金是页面顶部那个糟糕的顶栏,那么,我很乐意摆脱使用报告框架的痛苦。

1 个答案:

答案 0 :(得分:2)

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

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

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