由于水晶报表导出XLS显示不够直观,现在笔记一个vs2008自动的RDLC报表实例,
前台:
1\新建一个ASPX页面,并把MicrosoftReportViewer控件拖放进去页面中,
2\新建一个RDLC报表,
3\新建一个sxd供数据库源
后台:
绑定涵数:
public DataTable Query_print(string Comtype_scr, string Company_type,string maxter_ID) { using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["gft_esp"].ConnectionString)) { string SQLString = "SELECT......"; DataTable dadr = new DataTable(); DataSet ds = new DataSet(); try { connection.Open(); SqlDataAdapter command = new SqlDataAdapter(SQLString, connection); command.Fill(ds, "ds"); dadr = ds.Tables["ds"]; } catch (System.Data.SqlClient.SqlException ex) { // return dadr; connection.Close(); } finally { connection.Close(); } return dadr; } }
DataTable dads = inv_report.Query_print(Comtype_scr, Company_type, maxter_ID);数据集绑定
Report_invoice.ProcessingMode = ProcessingMode.Local;//本地化报表
Report_invoice.LocalReport.ReportPath = @"ReportTemplate/invoice_Report.rdlc";//绑定RDLC
Report_invoice.LocalReport.DataSources.Add(new ReportDataSource("v_inv_to", dads));
//绑定数据源,字段要与SXD对应哦
Report_invoice.LocalReport.Refresh();
RDLC:
添加数据源: Report---data sources..--选中SXD中的数据源,点OK保存退出
在Body中拖放一个Table控件,设置相关数据源,选中,Table 右键属性,找到,Dataset neme 下拉有得选的,后就可以设置相关字段了,很方便的
SXD:
拖放一个TableAdapter控件,并设置相对应的数据源,记录一定要与方法涵數里的字段对应哦,
技巧:
RDLC的Body除外的地方,不可以直接使用字段来显示的,那我们就得使用ASPX传参数给RDLC了,
1/我们在ASPX 页里进行传递:
List<ReportParameter> parameterList = new List<ReportParameter>();
parameterList.Add(new ReportParameter("Contact", dads.Rows[0]["Contact"].ToString()));
Report_invoice.LocalReport.SetParameters(parameterList);
2/RDLC报表进行接收:
添加数据源: Report---report parameters--Add 进行设置,记录这里同的记录要与ASPX里的设置的字符串一样哦,如:Contact
后就可以在字段选择里找到相应的参数了