FastReport.NET+.NET8高级开发篇:明细表打印图片,自动行高

FastReport.NET+.NET8高级开发篇:明细表打印图片,自动行高
界面数据

报表预览


C#代码
C# 全选
//打开选择报表界面
frmUserCustomReport.ExecuteByDataset(nameof(DocTypeNames.PO), "PONO", owner.GetType().FullName, ds, list,
(e) =>
{
//注意:FastReport.NET默认采用mm单位,要转换为像素
var bandHeightImg = PixelMmConverter.MmToPixel(28.22f); //Band有图片高度
var bandHeightNoImg = PixelMmConverter.MmToPixel(7.92f); //Band无图片高度
var imageHeight = PixelMmConverter.MmToPixel(20f); //图片高度
//图片打印事件
var dataBand = e.Report.FindObject("Data2") as FastReport.DataBand;
dataBand.BeforePrint += (sender, e) =>
{
//取出当前正在打印的记录(DataRow)。
DataRow row = (sender as DataBand).DataSource.CurrentRow as DataRow;
//当前Report实例
var report = (sender as DataBand).Report;
//获取图片PictureObject组件
PictureObject pic = report.FindObject("picDetailImage") as PictureObject;
TextObject txt = report.FindObject("picEmptyRow") as TextObject;
if (pic == null) return;
//取图片参数
var input = new req_Images()
{
DocType = ImageDocType.PO.ToString(),
DocNo = row["isid"].ToStringEx(), //主键
};
//从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 (ImgSmall != null)//有图片
{
pic.Height = imageHeight + 2;
txt.Height = imageHeight + 2;
dataBand.Height = bandHeightImg;
}
else //无图片
{
pic.Height = 0;
txt.Height = 0;
dataBand.Height = bandHeightNoImg;
}
};
},
(e) =>
{
var pic = (e.Report.FindObject("Picture3") as PictureObject);
if (pic != null)
{
if (Loginer.CurrentUser.DBID == nameof(DBIDs.JLM))
pic.Image = Globals.LoadImage("StampJLM.gif");
if (Loginer.CurrentUser.DBID == nameof(DBIDs.HD))
pic.Image = Globals.LoadImage("StampHD.png");
}
ReportLib.SetCompanyReportTitle(e.Report);
},
(e) => { LogDB.LogData(DataLogType.print, $"打印预览【{docNo}】", nameof(tb_Plan)); },
(e) => { new bll_PO().UpdatePrintInfo(docNo); }
);
开发框架版本:CSFrameworkV6.1
报表版本:FastReport.NET 2023, .NET8

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





