2011-11-16 77 views
1

在我的asp.net mvc3(razor)項目中,我有一個非常類似於telerik's demo的網格,我需要從中做出報告,以便用戶可以打印並存檔頁。如何將數據網格導出爲報表以供打印

可能有100多行,因此它可能需要幾頁,並且有一些細節我想添加到網格中不存在的報告中,但是我(當然)在服務器中。


例子:

public class Employee 
{ 
    public int ID {get; set;} 
    public long Phone {get; set;} 
    public double Salary {get; set;} 
    public string Address {get; set;} 
    public string Country {get; set;} 
} 

我怎樣才能讓一個類似的報告:
enter image description here

+0

一種選擇可能是對打印一個單獨的樣式表,並把它添加到頁。這樣用戶就可以打印他們正在查看的頁面以獲取報告,而不必通過其他操作生成報告。 (這裏沒有足夠的信息來涵蓋所有其他可能的選項。) – David

+0

打印樣式表允許使用不同的表示,但不允許其他數據,這似乎是需要的。除非這些數據被隱藏在視圖中,並且在打印樣式表中可見,這當然會浪費帶寬。 –

+0

@David感謝您的回覆。假設我有一份員工名單,我需要編寫一份報告 - PDF/EXCEL/WORD並不重要。 – gdoron

回答

1

如果你需要做的是將數據導出到一個CSV文件(每對上述問題的評論),然後here's a quick tutorial如何可以在ASP.NET中完成(無論是在WebForms頁面還是MVC操作)。

由於您使用的是MVC,我建議您更進一步,並將creating a custom action result從控制器邏輯中抽象出來。

基本上,您所做的只是手動將您的數據行寫入HttpResponse(設置一些標頭值之後)。在這種情況下,CSV將是一個非常簡單的方法,因爲它沒有特殊的格式。它只是用逗號分隔的文本,在行之間有回車符。

當然,你的數據包含任何逗號/換行/等,可拋出一個扳手到作品...

+0

對不起,但我的老闆說這個CSV太醜了。必須有一個簡單的報告生成器。 – gdoron

+1

@gdoron:你的老闆應該首先提出要求,而不是在實施後改變主意:)如果他想要一個全面的報告,那麼你可以使用Report Viewer控件並設計一個報告rdlc文件:http ://msdn.microsoft.com/en-us/library/ms251671%28v=VS.100%29.aspx我聽說Visual Studio 2008的報表設計器實際上比2010年好,但我不知道第一 - 手。我個人不喜歡使用rdlc文件,但有些人會這樣做。另外一個好處是,如果您想要集中報告,您可以將它們轉移到SSRS服務器。 – David

相關問題