求上上,而得其上;求其上,而得其中;求其中,而得其下;求其下,而得其下下。这句话真的很有道理,当你站在某一个高度,去学习某一个东西时,学到的东西是不尽相同的。努力争取做的更好......
嘿嘿,把前段时间做的报表,写成笔记,方便日后。
报表的制作在管理系统里应该是很常见。对于常见的东西,应该做的更好。不废话了,下面就是开发报表的流程。
1.在更目录下新建一个Reports文件夹,如图:
2.创建DataSet1数据源
3.创建DataTable
4.添加DataTabl的列
5.创建和设计RDLC报表
6.创建Control
/// <summary> /// 调拨入账凭证打印 /// </summary> /// <param name="mGUID"></param> /// <param name="str"></param> /// <returns></returns> public ActionResult DY(string mGUID,string str) { try { LocalReport localReport = new LocalReport(); localReport.ReportPath = Server.MapPath("~/Reports/DBRZPZDY.rdlc");//报表样式路径 ReportDataSource reportDataSource = new ReportDataSource("DataSet1", ef.MVC_DBRZPZ_DY(mGUID, str));//报表数据源 localReport.DataSources.Add(reportDataSource); string reportType = "PDF";//类型 string mimeType; string encoding; string fileNameExtension; //The DeviceInfo settings should be changed based on the reportType //http://msdn2.microsoft.com/en-us/library/ms155397.aspx string deviceInfo = "<DeviceInfo>" + " <OutputFormat>PDF</OutputFormat>" + " <PageWidth>8.5in</PageWidth>" + " <PageHeight>11in</PageHeight>" + " <MarginTop>0.5in</MarginTop>" + " <MarginLeft>1in</MarginLeft>" + " <MarginRight>1in</MarginRight>" + " <MarginBottom>0.5in</MarginBottom>" + "</DeviceInfo>"; Warning[] warnings; string[] streams; byte[] renderedBytes; //读出报表 renderedBytes = localReport.Render( reportType, deviceInfo, out mimeType, out encoding, out fileNameExtension, out streams, out warnings); return File(renderedBytes, mimeType); } catch (Exception ex) { ViewBag.errorMessage = ex.InnerException.Message; return View("Error"); } return View("Index"); }
7.设计报表引用
8.运行的结果