插件案例 —— 用代码控制的实体服务规则原创
7人赞赏了该文章
1147次浏览
编辑于2020年08月13日 11:13:44
案例背景
有的时候简单的实体服务规则、值更新用的欲罢不能,简单配置即可完成开发的业务逻辑,但是有的时候,多表体的更新、复杂的规则复制,却不能满足,那么可以写普通插件,当然了,也可以写实体服务规则插件。
代码示例
在初始化的时候,OnInitialize的时候,我们对规则容器添加代码
this.View.RuleContainer.AddPluginRule<ENTRYORM>("ENTRYKEY", RaiseEventType.ValueChanged, 规则方法, "FKEY");
ENTRYORM其实就是我们单据实体的ORM类型包,例如我们的采购订单分录ORM包可以这样定义
public class POOrderEntryORM : IdView { public static readonly DynamicProperty AllAmount_LCProperty; ... }
其中IdView这个就是包含Id的ViewModel,我们在里面添加实体属性,当然了我们也可以看看Kingdee.K3.SCM.Common.BusinessEntity.dll 组件里面的内容,大致预置了一些表单实体。
最后,值更新思路是直接在规则方法中如下:
POOrderEntry.AllAmount = "123";
看完还是一头雾水吗?哈哈,参考 Kingdee.K3.SCM.Purchase.Business.PlugIn.PurchaseOrderEdit组件看看,说不定有不一样的惊喜。
当然了,直接拿着数据包,在值更新DataChanged写一通,不是更快?!
推荐阅读