在这里要好好感谢一位同学,谢谢他将写好的程序借我参考
网上关于建报表的最初步骤,有一篇文章写的很详细,见
http://blog.csdn.net/mountplorer/article/details/4157216
言归正传:
粗粗的做了一张报表,效果如下:
我所建的数据集为SalePrint,数据集中的数据表名为Orderdetail,因为我的Orderdetail中列是要显示在表体中,在这里一定要注意,名字一定要与数据库中列名一致
上图中的表单编号,客户号,是在如下图中的参数中添加后,在将其拉入对应的文本框中
表基本上设计好后,就是代码的问题:
对于表头的代码如下:
private void Form1_Load(object sender, EventArgs e)
{
ReportParameter[] para=new ReportParameter[2];
para[0] = new ReportParameter("orderno",order.orderno);
para[1] = new ReportParameter("customerno",order.customerno);
this.reportViewer1.LocalReport.SetParameters(para);
getsaleDetail(order.orderno);//表体显示
this.reportViewer1.RefreshReport();
}
//表体显示
private void getsaleDetail(string OrderNo) {
ReportDataSource rds = new ReportDataSource("ErpSalePrint",GetorderDetail(OrderNo));
this.reportViewer1.LocalReport.DataSources.Clear();
this.reportViewer1.LocalReport.DataSources.Add(rds);
}
public DataTable GetorderDetail(string orderno) {
DataTable dsnewdetail = new DataTable();
SqlParameter[] prams ={
//此时只有一个参数
new SqlParameter("@orderno",SqlDbType.VarChar,15)
};
prams[0].Value =orderno;
dsnewdetail = ExecuteProc("saleprint", prams);
return dsnewdetail;
}
说明ExecuteProc("saleprint",prams);是一个执行存储过程返回数据集