2013-03-06 109 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等),其他引擎只有少數選擇。