资产变更单二次开发,变更资产卡片自定义字段原创
金蝶云社区-H4
H4
16人赞赏了该文章 5,900次浏览 未经作者许可,禁止转载编辑于2023年03月08日 15:47:51
summary-icon摘要由AI智能服务提供

文本主要介绍了如何在资产管理系统(如K3Cloud)中扩展卡片单据以添加自定义字段,并在变更单中显示和管理这些字段。方法包括扩展基础资料资产卡片和变更单以添加自定义字段,编写并注册服务端插件,以及处理变更管理中的特殊情况。此外,还提供了在客户端和服务端重写方法的示例代码,以应对字段变更时的特定需求。


[tr][td]背景:
      近来,有不少客户提到这个样一个需求,卡片单据头添加了一个字段,在资产变更单上显示,并且希望能够变更管理这个字段,单纯资产卡片添加字段显示在变更单,可以参考我写的帖子(https://vip.kingdee.com/article/19360),如果希望变更该字段,可以参考以下方法方案:
     新建一个变更单服务端插件,直接继承K3Cloud的标准的变更的服务插件,在变更单的审核结束后,更新字段信息到最新卡片上
步骤:
1.     扩展基础资料资产卡片,添加自定义字段,扩展单据资产卡片,添加自定字段
基础资料资产卡片


单据资产卡片

2.     扩展变更单,添加自定义字段
扩展


卡片编码字段添加引用属性


卡片编码引用属性(测试部门自动写入变更前后自定义字段)



3.    使用visual studio新建一个类,并继承原单据的类
添加相关引用:


添加using:

继承标准产品的单据服务插件:

注:只需要重载基类的两个方法:OnPreparePropertys(PreparePropertysEventArgs e)AfterExecuteOperationTransaction(AfterExecuteOperationTransaction e)        

4.    注册插件扩展后,添加注册二次开发的插件,并取消原来插件启用(此处极容易出错,一旦重现编译组件或者移动组件位置之后,一定记得重新注册插件)




5.     清除缓存,重新登录Cloud至此,就可以在报表通过自定的扩展的字段查询数据了

最后补充:当只变更自定义字段,系统提示没有字段不能变更时,可采用下面这种方案二开实现

1.客户端拆件重写beforeSave方法:
public override void BeforeSave(BOS.Core.Bill.PlugIn.Args.BeforeSaveEventArgs e)
        {
            base.BeforeSave(e);
            //这个位置检查备注复选框是否勾选,如果没有勾选,通过代码,勾选复选框备注,并将变更后备注,填充文本,比如(@123)
            
        }
2.服务端重写BeginOperationTransaction
public override void BeginOperationTransaction(BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e)
        {
            base.BeginOperationTransaction(e);
            //检查备注是否变更,变更后的值如果是(@123),取消复选框勾选,清空值(@123)
        }