CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架
作者:csframework|C/S框架网  发布日期:2023/08/03 12:47:32

操作步骤

1. 明细表格添加图片列 (colD_ImgSmall)

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

绑定数据字段:ImgSmall

ColumnEdit 设置为 RepositoryItemPictureEdit 类型,改名:rep_ImgSmall

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

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方法)

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

在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 模型

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

4. Form.DoSave方法保存资料

C# 全选
SaveResult result = _BLL.Update();//调用业务逻辑保存数据方法
if (result.Success) //保存成功, 不需要重新加载数据,更新当前的缓存数据就行.
{
    // 省略
}

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

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

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

复制 GetImageData 方法,注意下面的修改项:

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

注意下面3个修改项:

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

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();

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

注意事项

1. GetDataByKey必须返回 res_XXX模型

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

2. 明细表的res_XXX模型必须返回 dt_Images 表三个字段

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

3. DAL.Update方法保存图片

CSFrameworkV6 |软件开发平台 | 明细表图片处理机制|C/S开发框架

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


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