资产变更单二次开发,变更资产卡片自定义字段原创
16人赞赏了该文章
5,900次浏览
编辑于2023年03月08日 15:47:51
摘要由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) }
推荐阅读