reportview制作报表

本文分享了如何通过借鉴他人程序实现报表构建,包括数据集选择、参数设置及代码实现细节,同时展示了如何根据需求添加参数并将其与数据库对应。重点介绍了表头与表体的代码实现,以及如何通过存储过程获取详细销售数据,最终通过实例演示报表的完整设计流程。

          在这里要好好感谢一位同学,谢谢他将写好的程序借我参考

       网上关于建报表的最初步骤,有一篇文章写的很详细,见

                     http://blog.youkuaiyun.com/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);是一个执行存储过程返回数据集

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值