插件案例 —— 用代码控制的实体服务规则原创
金蝶云社区-MiLai
MiLai
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写一通,不是更快?!


赞 7