1

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

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

但我需要一项免费技术,这必须与我在 asp.net 中的项目一起使用。我能用什么?

4

3 回答 3

1

我玩过 Crystal Reports 或 SQL Reports 之类的报告系统,发现它们有一个学习曲线,但也很僵化和不灵活,或者生成可怕的 HTML。

ASP.NET MVC 可用作出色的报告系统,方法如下:

  1. 可以选择使用 aVirtualPathProvider来允许您将 MVC.aspx文件存储在数据库中。
  2. 有一个带有动作“GenerateReport”的控制器类,它只创建一个 EF 上下文/存储库对象甚至一个原始数据库连接并将其作为对象传递给视图,没有其他模型。
  3. 打破MVC“视图中没有数据访问逻辑”的规则!您的视图(在.aspx文件中)应该有一个<% %>区域,该区域通过运行查询和其他内容来执行所有报告生成逻辑。
  4. 对于图形和图表之类的东西,使用 RESTful 图表生成库,您也可以编写自己的。这基本上意味着报告不是生成静态图像文件并将其存储在某处并将路径放入<img src="">元素中,而是这样做:<img src="RestfulImage.ashx?line1={1.2,4.6,8...." />. Google 实际上有一项您可以使用的服务:https ://developers.google.com/chart/image/docs/making_charts

因此,每个报告都是一个.aspx文件,它被赋予一个数据访问对象,然后它直接查询并自己生成报告。显然,这不适用于需要很长时间才能构建的报告(但这通常是不良数据库设计或缺乏索引的症状),但如果您的要求很简单(即SELECT呈现给的一堆 SQL 查询<table>和一些图表一起去)那么这种方法效果很好。

于 2013-03-07T02:03:14.007 回答
0

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

于 2013-03-07T01:42:27.277 回答
0

首先,选择您要使用的报告引擎... Crystal Reports、DevExpress Reporting、Telerik Reporting、ComponentOne ActiveReports 是 Microsoft SSRS 之外的主要参与者。根据您要“嫁给”哪种工具来决定,因为创建报告可能会很痛苦,也可能很容易,这取决于您为工作选择的工具。

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

于 2013-11-26T12:51:20.887 回答