asp.net中的报告建议

时间:2013-03-06 21:27:04

标签: c# asp.net report

我正在使用asp.net(webforms)开发一个系统,用户可以登录并查看他们的报告。我在报告中使用RDL,但现在我想在报告更具动态性时使用另一种技术,就像这样:

http://ap.demo.qlikview.com/QvAJAXZfc/opendoc.htm?document=qvdocs/Plant%20Operations.qvw&host=Demo11&anonymous=true

但是我需要一个免费的技术,这需要在asp.net中使用我的项目。我可以用什么?

3 个答案:

答案 0 :(得分:1)

我玩过像Crystal Reports或SQL Reports这样的报告系统,发现它们有学习曲线,但也很僵硬且不灵活,或者生成可怕的HTML。

ASP.NET MVC可以用作一个很棒的报告系统,方法如下:

  1. (可选)使用VirtualPathProvider将MVC .aspx文件存储在数据库中。
  2. 让Controller类具有动作“GenerateReport”,该动作仅创建EF上下文/存储库对象甚至是原始数据库连接,并将其作为对象传递给视图,没有其他模型。
  3. 打破MVC的规则“视图中没有数据访问逻辑”!您的视图(在.aspx文件中)应该有一个<% %>区域,通过运行查询和内容来执行所有报告生成逻辑。
  4. 对于图形和图表和内容,使用RESTful图表生成库,您也可以编写自己的图表。这基本上意味着生成静态图像文件并将其存储在某处并将路径放在<img src="">元素中,而不是生成静态图像文件,而是执行此操作:<img src="RestfulImage.ashx?line1={1.2,4.6,8...." />。谷歌实际上有一个你可以使用的服务:https://developers.google.com/chart/image/docs/making_charts
  5. 因此,每个报告都是一个.aspx文件,它被赋予一个数据访问对象,然后直接查询并自己生成报告。显然,对于需要花费很长时间才能构建的报告(但这通常是数据库设计错误或缺少索引的症状),这不适用,但如果您的要求很简单(即一堆SQL SELECT查询呈现给<table>和一些图表以便随之而来)然后这种方法很有效。

答案 1 :(得分:0)

您可以将SAP CRYSTAL REPORTS用于报告。

答案 2 :(得分:0)

首先,选择您要使用的报告引擎... Crystal Reports,DevExpress Reporting,Telerik Reporting,ComponentOne ActiveReports是Microsoft SSRS之外的主要参与者。根据您要“结婚”的工具做出决定,因为创建报告可能很麻烦,也可能很容易,具体取决于您为工作选择的工具。

完成后,选择适合您情况的服务器软件。 Crystal服务器有多种选择(包括SAP Crystal Server,VersaReports ReportServer等),其他引擎只有几种选择。