CSFrameworkV6 -软件开发平台 - 明细表图片处理机制
目录
操作步骤
1. 明细表格添加图片列 (colD_ImgSmall)
绑定数据字段:ImgSmall
ColumnEdit 设置为 RepositoryItemPictureEdit 类型,改名:rep_ImgSmall
2. 明细表 res_XXX 模型添加图片字段
C# 全选
public string Img_isid { get; set; }
public System.Byte[] ImgSmall { get; set; }
public System.Byte[] ImgLarge { get; set; }
3. 加载图片右键弹出菜单 (Form.InitializeForm方法)
在Form.InitializeForm 方法内添加下面代码:
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;
}
});
注意
注意:rs_tb_QOs 改名 为当前明细表 res_XXX 模型
4. Form.DoSave方法保存资料
C# 全选
SaveResult result = _BLL.Update();//调用业务逻辑保存数据方法
if (result.Success) //保存成功, 不需要重新加载数据,更新当前的缓存数据就行.
{
// 省略
}
5. BLL层 Update方法
添加一个 Update() 无参数方法。 重写Update方法,直接调用 _Bridge.Update接口:
C# 全选
//添加一个 Update 无参数方法
public SaveResult Update()
{
return _Bridge.Update(this.CurrentBusiness);
}
//重写方法,直接调用 _Bridge.Update接口
public override SaveResult Update(BusinessData<res_tb_QO, res_tb_QOs> data)
{
return _Bridge.Update(data);
}
IBridge_XX.cs 修改 Update 方法:
C# 全选
SaveResult Update(BusinessData<res_tb_QO, res_tb_QOs> data);
6. DAL层Update方法
参考: dal_QO.cs
复制 GetImageData 方法,注意下面的修改项:
注意下面3个修改项:
7. DAL层的GetDataByKey方法
参考: dal_QO.cs
关联查询明细表及图片资料。
C# 全选
//关联查询明细表资料及图片
var listDetail = (from s in q_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
{
isid = s.isid,
QONO = s.QONO,
Queue = s.Queue,
ProductCode = s.ProductCode,
ItemDescription = s.ItemDescription,
//图片资料
ImgLarge = c.ImgLarge,
ImgSmall = c.ImgSmall,
Img_isid = c.isid,
}).ToList();
注意事项
1. GetDataByKey必须返回 res_XXX模型
2. 明细表的res_XXX模型必须返回 dt_Images 表三个字段
3. DAL.Update方法保存图片
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
NewDoc C/S框架网