利用ReportViewer建立報表
環境建置
如發現沒有ReportViewer相關控制項
請依以下步驟進行建置:
1.控制台 > 新增移除程式 > 選擇VisualStudio
2.點選變更
3.點選修改
4.勾選﹝Microsoft SQL Server Data Tools﹞
5.點選更新後即可完成建置
實作程式
1.加入參考
2.宣告資料來源
- 加入資料集
- 設定資料集內容
- 用拖曳方式可以加入資料集
- 對資料集的資料表按右鍵編輯可以修改SQL Command
3.宣告報表格式
- 加入報表
- 繪製報表
4.撰寫程式(以下是以.net MVC為範例)
public ActionResult Index()
{
#region Local Report 所需參數
string reportType = "Excel"; //Excel, PDF, Word, and Image
string deviceInfo = "";
string mimeType;
string encoding;
string fileNameExtension;
string[] streams;
Warning[] warnings;
#endregion
#region 宣告Report物件
LocalReport report = new LocalReport();
report.ReportPath = Server.MapPath("~/Reports/MemberReport.rdlc"); // Report檔案位置
#endregion
#region 取得報表所需資料(*.xsd檔案)
#region 前置作業
var ds = new Reports.Company(); // 宣告報表資料物件
var adapter = new Reports.CompanyTableAdapters.MembersReportTableAdapter(); // 宣告資料接口(adapter)物件
adapter.Fill(ds.MembersReport); // 利用接口(adapter)處理資料流
#endregion
#region 填入資料
ReportDataSource rds = new ReportDataSource("MemberReport", ds.MembersReport.ToList()); // 由ds實際取得資料
report.DataSources.Add(rds); // 填入Report物件
#endregion
#endregion
#region 重新定義報表內容格式
var renderedBytes = report.Render(
reportType,
deviceInfo,
out mimeType,
out encoding,
out fileNameExtension,
out streams,
out warnings
);
#endregion
//加這一行android下載才會有副檔名
if (Response != null)
Response.AddHeader("content-disposition", "attachment; filename=download." + fileNameExtension);
return File(renderedBytes, mimeType);
}
參考資料
https://msdn.microsoft.com/zh-tw/library/ms251839(v=vs.90).aspx
https://jeffprogrammer.wordpress.com/2015/12/16/%E4%BD%BF%E7%94%A8-reportviewer-%E8%A3%BD%E4%BD%9C%E5%A0%B1%E8%A1%A8-%E4%B8%80/
https://dotblogs.com.tw/jimmyyu/2009/08/30/10311
Write By Charley Chang
新手發文,若有錯誤還請指教,
歡迎留言或Mail✉給我
本著作係採用創用 CC 姓名標示-非商業性-相同方式分享 4.0 國際 授權條款授權.