CSFrameworkV6旗舰版-单据窗体明细表格图片处理
目录
一、Form界面处理
1、设置表格自动高度
C# 全选
gvDetail.OptionsView.RowAutoHeight = true;
2、标题添加图片列 RepositorePictureEdit

3、明细表格加载图片右键菜单
C# 全选
//明细表格加载图片右键菜单
DetailImageManager.LoadImageMenu(this, gvDetail, rep_ImgSmall, nameof(res_tb_QOs.ImgLarge),
(large, small) =>
{
var row = gvDetail.GetObject<res_tb_QOs>();
if (large != null)//加载图片
{
row.ImgLarge = large;
row.ImgSmall = small;
}
else//删除图片
{
row.ImgLarge = null;
row.ImgSmall = null;
row.Img_isid = null;
}
});
二、DAL层处理
1、明细表 res_XXX模型添加3个字段
C# 全选
/// <summary>
/// 大图片
/// </summary>
public byte[] ImgLarge { get; set; }
/// <summary>
/// 小图片
/// </summary>
public byte[] ImgSmall { get; set; }
/// <summary>
/// 图片记录isid主键值
/// </summary>
public string Img_isid { get; set; }
2、查询显示图片 - GetDataByKey
C# 全选
var q_Images = _Database.GetQueryable<dt_Images>().Where(w => w.DocType == ImageDocType.QO.ToString());
//明细表res模型
var listDetail = (from s in q_tb_QOs//明细表
join c in q_Images on s.isid equals c.DocNo into tmp1//关联逻辑:明细表isid = dt_images.DocNo
from c in tmp1.DefaultIfEmpty()
where s.QONO == docNo.Trim()//外键,关联主表单据号码
select new res_tb_QOs
{
//
//省略....
//
//图片资料
ImgLarge = c.ImgLarge,
ImgSmall = c.ImgSmall,
Img_isid = c.isid,
}
3、保存数据 DAL.Update

如果传人的参数模型是 res_XX,需要转换保存的实体:
C# 全选
//创建用于保存的临时数据
var data = new BusinessData<tb_QO, tb_QOs>
{
Master = ObjectHelper.Convert<tb_QO>(input.Master),//主表
Details = ObjectHelper.ConvertList<tb_QOs>(input.Details),//明细
};
C# 全选
#region 保存图片
//获取明细表的图片
var listImages = this.GetImageData(input.Details);//图片
var isids = _Database.GetQueryable<tb_QOs>().Where(w => w.QONO == data.Master.QONO)
.Select(s => s.isid).ToList();
listImages.ForEach(i => i.MasterDocNo = data.Master.QONO);//设置单据号码
this.UpdateImage(_Database, ImageDocType.QO, data.Master.QONO, listImages, isids);
#endregion;
C# 全选
/// <summary>
/// 获取明细表的图片资料
/// </summary>
/// <returns></returns>
public List<dt_Images> GetImageData(List<res_tb_QOs> listDetail)
{
var list = listDetail.Where(w => w.ImgSmall != null).Select(s => new dt_Images
{
isid = s.Img_isid,
Title = $"{ImageFormat.Jpeg}:{s.ProductName},{s.Description}".GetLeft(100),
ImgLarge = s.ImgLarge,
ImgSmall = s.ImgSmall,
DocType = ImageDocType.QO.ToString(),
DocNo = s.isid,
MasterDocNo = s.QONO,
ImageType = ImageFormat.Jpeg.ToString(),
Remark = s.Remark
}).ToList();
return list;
}
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网





