FastReport.NET报表打印多张图片


FastReport.NET报表打印多张图片

FastReport报表预览

 

FastReport.NET报表打印多张图片

 

解决方案

报表数据源:DataSet/DataTable数据

报表的DataBand组件绑定BeforePrint事件

C# 全选
//打印图片,需要在BeforePrint事件内处理
detailBand.BeforePrint += new EventHandler(DetailBand_BeforePrint2);

 

BeforePrint事件代码参考

 

C# 全选
        /// <summary>
        /// 图片处理(北方款)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DetailBand_BeforePrint2(object sender, EventArgs e)
        {
            //取出当前正在打印的记录(DataRow)。
            DataRow row = (sender as DataBand).DataSource.CurrentRow as DataRow;

            //当前Report实例
            var report = (sender as DataBand).Report;

            //设置工序,工序打勾
            ReportLib.ApplyProcessSettings(report, row);

            //获取纸盒图片
            var ListDetails = DataTableHelper.ConvertObject<res_PF_Process>(row);//强转获取从表
            if (ListDetails.Cartonisid != null)
            {
                //获取纸盒图片的PictureObject组件
                PictureObject pic = (sender as DataBand).Report.FindObject("Picture") as PictureObject;

                //取图片参数
                var input = new req_Images()
                {
                    DocType = ImageDocType.Carton.ToString(),
                    DocNo = ListDetails.Cartonisid,
                };

                //从dt_Images中获取对应的图片
                var ImgSmall = new bll_Images().GetByDocType(input);
                if (ImgSmall != null)
                {
                    Image img = ImageHelper.FromBytes(ImgSmall.ImgSmall);//将字节转换为图片                    
                    if (pic != null) pic.Image = new Bitmap(img); //注意:必须是Bitmap, Image不受支持!
                }
                else
                {
                    if (pic != null) pic.Image = null; 
                }
            }

            //获取唛头图片
            if (ListDetails.SOsisid != null)
            {
                //获取唛头图片的PictureObject组件
                PictureObject pic = (sender as DataBand).Report.FindObject("Picture1") as PictureObject;

                //从tb_AttachFile中获取对应的图片
                var listImgSmall = new bll_AttachFile().GetData("SO", ListDetails.SOsisid);
                if (listImgSmall.Count > 0)
                {
                    Image img = ImageHelper.FromBytes(listImgSmall.FirstOrDefault().FileBody);//将字节转换为图片                    
                    if (pic != null) pic.Image = new Bitmap(img); //注意:必须是Bitmap, Image不受支持!
                }
                else
                {
                    if (pic != null) pic.Image = null;
                }
            }
        }

 

FastReport.NET报表模版

 

FastReport.NET报表打印多张图片

 

 

版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
评论列表

发表评论

评论内容
昵称:
关联文章

FastReport.NET报表打印图片
FastReport for .Net打印图片
C# FastReport.NET批量打印条形码报表详解教程
报表图片使用工具FastReport.NET 2013.2.5
FastReport for .NET 报表打印水印(WaterRemark)设置水印字体颜色
使用FastReport打印RichTextBox RTF 格式的报表
FastReport.NET隐藏打印对话框和隐藏打印进度条(Progress)|C/S框架网
FastReport for.Net开发指南-单表报表设计详解
FastReport.NET 不显示打印对话框
FastReport for .NET 设置显示报表水印
FastReport.NET主从表报表完整版源码
FastReport for .Net 实例 - 主从报表读取当前记录的数据
FastReport.NET 隐藏 不显示 打印进度条
喜鹊ERP - FastReport.NET报表实施与开发操作指引
FastReport.NET制作动态栏位列报表C#实例
DAL - 保存表的资料
FastReport for.Net开发指南-主从表(Master/Detail)报表设计详解
使用FastReport制做报表实战-报表模块开发框架
FastReport.NET 2023 报表预览窗体及报表设计器汉化
企业版:入仓单(IN)新增一份无打印窗体的报表例子,查主从表数据,支持打印图片