2013-03-06 108 views
1

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

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

但我需要一个免费的技术,这与我在ASP项目工作。净。我可以使用什么?

+1

你需要什么零件?图表? – MikeSmithDev 2013-03-06 22:30:57

+0

桌子和图表 – 2013-03-06 23:20:03

+0

看看[DotNet.Highcharts](http://dotnethighcharts.codeplex.com/) – MikeSmithDev 2013-03-07 00:07:04

回答

1

我已经玩弄了像Crystal Reports或SQL Reports这样的报表系统,并发现它们有一个学习曲线,但也是僵化和不灵活的,或者生成可怕的HTML。

ASP.NET MVC可以作为一个伟大的报告制度,方法如下:

  1. 视需要使用VirtualPathProvider,让您的MVC .aspx文件存储在数据库中。
  2. 拥有一个带有“GenerateReport”操作的Controller类,该操作只创建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

所以每个报告是一个.aspx文件被赋予一个数据访问对象,然后直接查询并生成报告本身。显然,这对于需要很长时间才能构建的报告来说并不适用(但这通常是数据库设计不良或缺乏索引的症状),但是如果您的要求很简单(即,一组SQL查询呈现为<table>以及一些图表),那么这种方法很好。

+0

和我能做些什么来打印它或导出为pdf/excel? – 2013-03-07 14:51:00

+0

您可以使用Web服务从您的应用程序(如Saaspose)中生成PDF文件和Excel电子表格,或者使用像Aspose这样的库,但这可能会很昂贵。 – Dai 2013-03-07 20:22:07

0

您可以使用SAP CRYSTAL REPORTS报告。

0

首先,选择您想要使用的报表引擎... Crystal Reports,DevExpress Reporting,Telerik Reporting,ComponentOne ActiveReports是微软SSRS之外的主要参与者。根据您决定选择哪种工具“结婚”,因为创建报告可能很痛苦,也可能很容易,具体取决于您选择哪种工具。

一旦你有了,选择适合你的情况的服务器软件。 Crystal服务器有多种选择(包括SAP Crystal Server,VersaReports ReportServer等),其他引擎只有少数选择。