Use Class print

第一步:创建一个类,该类的结构来自数据集、数据表或其他,实例化类时赋值(图片返回用二进制流)
    class Class2
    {
  private string m_name;
        private System.Drawing.Image m_pic;

        public Class2(string name, System.Drawing.Image pic)
        {
            m_name = name;
            m_pic = pic;
        }

        public string Name
        {
            get
            {
                return m_name;
            }
        }
        public byte[] Pic
        {
            get
            {
                //二进制流
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                m_pic.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
                return ms.GetBuffer();

                //反向
                //MemoryStream ms = new MemoryStream(byt);
                //Image img = Image.FromStream(ms);

            }
        }

    }
第二步:创建数据集,菜单-》数据-》添加新数据集-》对象-》(选择对象)
【数据集,布局完成后可删除】

第三步:从工程中添加-》添加-》添加新建项-》报表
用新建的数据集,布局,填充报表(图片设置属性Source为Database,MIMEType为image/jpeg)

第四步:从工具箱创建“BindingSource”,在下一步中设置属性Class2BindingSource.DataSource

第五步:在事件中添加代码

            Class2 print = new Class2("汽车",pictureBox2.Image );
            //this.Class2BindingSource.DataSource = typeof(Test0.Class2);

 

            this.reportViewer1.LocalReport.EnableExternalImages = true; //打开图片支持
            this.reportViewer1.LocalReport.ReportEmbeddedResource = @"Test0.Report1.rdlc"; //加载报表
            this.reportViewer1.SetDisplayMode(DisplayMode.PrintLayout);

            Class2BindingSource.DataSource = print;

            this.reportViewer1.ZoomMode = ZoomMode.Percent;
            this.reportViewer1.ZoomPercent = 100;


第六步:类列表(集合)生成与打印

     1、修改数据源对象
            List<Class2> print = new List<Class2>();
            print.Add(new Class2("汽车", 10000, pictureBox1.Image, MyTab));
            print.Add(new Class2("火车", 10000, pictureBox1.Image, MyTab));
            print.Add(new Class2("飞机", 10000, pictureBox1.Image, MyTab));
            print.Add(new Class2("轮船", 10000, pictureBox1.Image, MyTab));

            this.Class2BindingSource.DataSource = typeof(List<Test0.Class2>);

  2、在Test0.Report1.rdlc中添加表格,添加字段

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值