FastReport.NET v2021 主从表报表打印图片 | 开发框架
作者:C/S框架网|www.csframewo  发布日期:2023/04/07 21:08:49
  FastReport.NET v2021 主从表报表打印图片 | 开发框架

前言

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


销售订单页面


贴图图片-fastreport.net-4


打印效果


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


贴图图片-fastreport.net-3



C# 源码参考


获取报表数据源:


C# Code:

//取报表数据
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




获取每行的图片资料:


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






C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务
上一篇 下一篇