FastReport.NET v2021 主从表报表打印图片 | 开发框架
FastReport.NET v2021 主从表报表打印图片 | 开发框架 前言
FastReport.NET 打印图片有多种处理方式,下面案例是打印销售订单明细表的图片。因报表Report绑定的数据源是DataSet类型,所以在BeforePrint 事件内需要做特殊处理。
销售订单页面

打印效果
适当加高资料行高度,效果会更好。

C# 源码参考
获取报表数据源:
C# Code:
//取报表数据
var data = new bllSO().QueryReportData(P);
rptSO.Tag = data; //缓存报表数据,(放到FastReport.Report.Tag 对象)
//来源:C/S框架网 | www.csframework.com | QQ:23404761
var data = new bllSO().QueryReportData(P);
rptSO.Tag = data; //缓存报表数据,(放到FastReport.Report.Tag 对象)
//来源:C/S框架网 | www.csframework.com | QQ:23404761
绑定 BeforePrint 事件 :
C# Code:
//给DataBand(明细数据)绑定数据源
DataBand detailBand = rptSO.FindObject("Data2") as DataBand;
detailBand.DataSource = rptSO.GetDataSource("D"); //明细表
//打印图片,需要在BeforePrint事件内处理
detailBand.BeforePrint += new EventHandler(DetailBand_BeforePrint);
//来源:C/S框架网 | www.csframework.com | QQ:23404761
//给DataBand(明细数据)绑定数据源
DataBand detailBand = rptSO.FindObject("Data2") as DataBand;
detailBand.DataSource = rptSO.GetDataSource("D"); //明细表
//打印图片,需要在BeforePrint事件内处理
detailBand.BeforePrint += new EventHandler(DetailBand_BeforePrint);
//来源:C/S框架网 | www.csframework.com | QQ:23404761
获取每行的图片资料:
C# Code:
private void DetailBand_BeforePrint(object sender, EventArgs e)
{
//取出当前正在打印的记录(DataRow)。
DataRow row = (sender as DataBand).DataSource.CurrentRow as DataRow;
//获取当前报表缓存数据 (FastReport.Report.Tag 对象)
var source = ((sender as DataBand).Report.Tag as BusinessDataList<res_SO, res_SOs>).ListDetails;
var data = source.Where(w => w.isid == row["isid"].ToStringEx()).FirstOrDefault();
if (data != null && data.ImgSmall != null)
{
Image img = ImageHelper.FromBytes(data.ImgSmall);//将字节转换为图片
PictureObject pic = (sender as DataBand).Report.FindObject("Picture") as PictureObject;
if (pic != null) pic.Image = new Bitmap(img); //注意:必须是Bitmap, Image不受支持!
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
private void DetailBand_BeforePrint(object sender, EventArgs e)
{
//取出当前正在打印的记录(DataRow)。
DataRow row = (sender as DataBand).DataSource.CurrentRow as DataRow;
//获取当前报表缓存数据 (FastReport.Report.Tag 对象)
var source = ((sender as DataBand).Report.Tag as BusinessDataList<res_SO, res_SOs>).ListDetails;
var data = source.Where(w => w.isid == row["isid"].ToStringEx()).FirstOrDefault();
if (data != null && data.ImgSmall != null)
{
Image img = ImageHelper.FromBytes(data.ImgSmall);//将字节转换为图片
PictureObject pic = (sender as DataBand).Report.FindObject("Picture") as PictureObject;
if (pic != null) pic.Image = new Bitmap(img); //注意:必须是Bitmap, Image不受支持!
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761

参考文档:
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
FastReport.NET2023 报表设计器|FastReport教程|C/S开发框架
C/S架构软件开发平台旗舰版V6.0 | 使用FastReport.NET制作二维码报表|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置JsonDataSourceConnection连接|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置MsSqlDataConnection连接|C/S开发框架
FastReport.NET2023报表数据源配置详解|C/S开发框架
喜鹊ERP | FastReport.NET报表实施与开发操作指引|C/S开发框架
FastReport.NET 2023 报表预览窗体及报表设计器汉化|C/S开发框架
CSFrameworkV6 | 用户自定义打印机设置 (FastReport.NET 2023.1.8)|C/S开发框架
FastReport.NET2023|动态列报表自动隐藏列及调整标签宽度|C/S开发框架
为什么FastReport.NET v2021 打印预览只显示一条记录 | 软件开发平台
FastReport.NET v2021 打印预览报表出错NullReferenceException / RestoreEncodedText,踩坑!
FastReport.NET v2021 打印动态图片报表 | 软件开发平台
Winform C/S框架 - FastReport.NET组件下载-C/S开发框架
C# FastReport.NET批量打印条形码报表详解教程-C/S开发框架
FastReport.NET自动文本宽度+自动换行+自动行高|C/S开发框架
FastReport.NET2023破解版去除水印DEMO VERSION (2025.1.14/2023.2.18版本)|C/S开发框架
FastReport.NET2023 报表设计器|FastReport教程|C/S开发框架
C/S架构软件开发平台旗舰版V6.0 | 使用FastReport.NET制作二维码报表|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置JsonDataSourceConnection连接|C/S开发框架
FastReport.NET 2023使用DataTable报表数据源配置MsSqlDataConnection连接|C/S开发框架
FastReport.NET2023报表数据源配置详解|C/S开发框架
喜鹊ERP | FastReport.NET报表实施与开发操作指引|C/S开发框架
FastReport.NET 2023 报表预览窗体及报表设计器汉化|C/S开发框架
CSFrameworkV6 | 用户自定义打印机设置 (FastReport.NET 2023.1.8)|C/S开发框架
FastReport.NET2023|动态列报表自动隐藏列及调整标签宽度|C/S开发框架
为什么FastReport.NET v2021 打印预览只显示一条记录 | 软件开发平台
FastReport.NET v2021 打印预览报表出错NullReferenceException / RestoreEncodedText,踩坑!
FastReport.NET v2021 打印动态图片报表 | 软件开发平台
Winform C/S框架 - FastReport.NET组件下载-C/S开发框架
C# FastReport.NET批量打印条形码报表详解教程-C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
