环境VS2013
製作报表
1.建立参考
2.建立REPORT VIEW
3.建立报表
3.1.产生连线
3.2.产生DATASET
3.3.产生报表
用程式控制报表值
4.资料繫结databind
5.webpage中将报表汇出
先加入参考
加入这2个控制项
按下[设计新报表]
资料集属性:新增或选取资料来源 & 新增或选取资料来源
选择资料连接:新增连接
加入连接:输入帐密 & 输入资料库
选择资料连接
选择您的资料库物件
资料集属性
排列栏位
选择配置
选择样式
做完会产生3个档案
1.webconfig里多了
2.多了DataSet.xsd
3.Report.rdlc
报表属性设定
设为内容 & 永远複製
用code 给CR dateset
这样报表就会做显示了
DataSet myds = getDateSet(YMDs, YMDe, iUnit, sOrderBy); this.ReportViewer1.LocalReport.ReportPath = @"Report1.rdlc"; ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local; ReportViewer1.LocalReport.DataSources.Clear(); this.ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", myds.Tables[0])); this.ReportViewer1.LocalReport.Refresh();
private static DataSet getDateSet(string YMDs, string YMDe, string iUnit, string sOrderBy) { SqlConnection sqlConn = new SqlConnection(control. ConnStr); SqlCommand sqlCmd = new SqlCommand("exec sp_xxx @YMDs,@YMDe ,@iUnit ,@OrderBy", sqlConn); sqlCmd.Parameters.Add(new SqlParameter("@YMDs", YMDs)); sqlCmd.Parameters.Add(new SqlParameter("@YMDe", YMDe)); sqlCmd.Parameters.Add(new SqlParameter("@iUnit", iUnit)); sqlCmd.Parameters.Add(new SqlParameter("@OrderBy", sOrderBy)); SqlDataAdapter myda = new SqlDataAdapter(sqlCmd); sqlCmd.CommandTimeout = 6000; DataSet myds = new DataSet(); sqlConn.Open(); myda.Fill(myds); sqlConn.Close(); return myds; }
将报表汇出成EXCEL
protected void Button1_Click(object sender, EventArgs e) { DataSet myds = getDateSet( ); this.ReportViewer1.LocalReport.ReportPath = @"Report1.rdlc "; ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local; ReportViewer1.LocalReport.DataSources.Clear(); this.ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", myds.Tables[0])); this.ReportViewer1.LocalReport.Refresh(); //---------------------------------export-------------------------- Microsoft.Reporting.WebForms. Warning[] warnings; string[] streamIds; string mimeType = string.Empty; string encoding = string.Empty; string extension = string.Empty; byte[] bytes = ReportViewer1.LocalReport.Render("EXCEL", null, out mimeType, out encoding, out extension, out streamIds, out warnings); //支援的格式包括 Excel、PDF、Word 和 Image。 Response.Buffer = true; Response.Clear(); Response.ContentType = mimeType; Response.AddHeader("content-disposition", "attachment; filename=" + "Report1" + "." + extension); Response.BinaryWrite(bytes); // create the file Response.Flush(); // send it to the client to download }
报表设计
ReportView可以随画面大小缩放
设计工具
Height="100%" Width="100%" AsyncRendering="False" SizeToReportContent="True"
Ref
https://forums.asp.net/t/1556522.aspx?RDLC+Export+directly+to+Excel+or+PDF+from+codebehind