电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

二开案例.服务插件.全事件演示

来源:金蝶云社区作者:金蝶2024-09-236

二开案例.服务插件.全事件演示

【案例演示】

演示操作服务插件所包含的全部事件及其触发顺序。



【实现步骤】

<1>编写操作服务插件,代码如下。

using Kingdee.BOS.Util;
using System;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.App.PlugIn
{
    /// <summary>
    /// 【服务插件】全事件
    /// https://vip.kingdee.com/article/122724714954450688
    /// </summary>
    [Description("【服务插件】全事件"), HotUpdate]
    public class AllEventOperationServicePlugIn : Kingdee.BOS.Core.DynamicForm.PlugIn.AbstractOperationServicePlugIn
    {
        #region event
        /// <summary>
        /// 选项设置
        /// 1.在操作服务初始化是执行
        /// 2.可以对操作的执行参数进行设置,比如是否是否启动事务,是否支持批量处理等
        /// </summary>
        /// <param name="e"></param>
        public override void OnPrepareOperationServiceOption(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.OnPrepareOperationServiceEventArgs e)
        {
            PrintEventInfo("OnPrepareOperationServiceOption", e);
            base.OnPrepareOperationServiceOption(e);
        }
        /// <summary>
        /// 在执行保存操作前触发
        /// 1.此时数据包没有填充主键数据
        /// 2.只有继承了AbstractSave的保存服务才会触发此事件
        /// </summary>
        /// <param name="e"></param>
        public override void BeforeDoSaveExecute(Kingdee.BOS.Core.DynamicForm.PlugIn.BeforeDoSaveExecuteEventArgs e)
        {
            PrintEventInfo("BeforeDoSaveExecute", e);
            base.BeforeDoSaveExecute(e);
        }
        /// <summary>
        /// 加载指定字段到实体数据包里
        /// 1.在列表上执行操作时,单据的字段并没有被完全加载。 如果操作插件用到了未被加载的字段,一定会中断。
        /// 2.本事件允许插件,强制要求加载某些字段,避免中断
        /// </summary>
        /// <param name="e"></param>
        public override void OnPreparePropertys(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.PreparePropertysEventArgs e)
        {
            PrintEventInfo("OnPreparePropertys", e);
            base.OnPreparePropertys(e);
        }
        /// <summary>
        /// 初始化操作结果
        /// </summary>
        /// <param name="result"></param>
        public override void InitializeOperationResult(Kingdee.BOS.Core.DynamicForm.IOperationResult result)
        {
            PrintEventInfo("InitializeOperationResult", result);
            base.InitializeOperationResult(result);
        }
        /// <summary>
        /// 添加自定义数据校验器
        /// 在系统开始执行校验前,插件可以追加自己的校验器进入操作校验器集合
        /// </summary>
        /// <param name="e"></param>
        public override void OnAddValidators(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.AddValidatorsEventArgs e)
        {
            PrintEventInfo("OnAddValidators", e);
            base.OnAddValidators(e);
        }
        /// <summary>
        /// 执行操作事务前事件,通知插件对要处理的数据进行排序等预处理(事务外触发)
        /// 1.此事件在操作校验之后、操作实现代码之前执行
        /// 2.此事件在操作事务之前,即此事件中的数据库处理,不受操作的事务保护
        /// 3.通常此事件,也可以用来进行数据校验
        /// </summary>
        /// <param name="e">e.SelectedRows 准备要处理的扩展实体 e.DataEntitys 处理后的实体</param>
        public override void BeforeExecuteOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeforeExecuteOperationTransaction e)
        {
            PrintEventInfo("BeforeExecuteOperationTransaction", e);
            base.BeforeExecuteOperationTransaction(e);
        }
        /// <summary>
        /// 操作事物前事件(事务内触发)
        /// </summary>
        /// 1.此事件在操作校验之后
        /// 2.此事件在操作事务开始之后
        /// 3.此事件在操作执行代码之前
        /// 4.此事件中的数据库处理,受操作的事务保护
        /// 5.通常此事件,可以用来做数据准备,在操作之前,提前写数据到库
        /// <param name="e"></param>
        public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e)
        {
            PrintEventInfo("BeginOperationTransaction", e);
            base.BeginOperationTransaction(e);
        }
        /// <summary>
        /// 操作事物后事件(事务内触发)
        /// 1.此事件在操作执行代码之后,操作的内部逻辑已经执行完毕
        /// 2.此事件在操作事务提交之前
        /// 3.此事件中的数据库处理,受操作的事务保护
        /// 4.通常此事件,可以用来做同步数据,如同步生成其他单据,而且需要受事务保护
        /// </summary>
        /// <param name="e"></param>
        public override void EndOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.EndOperationTransactionArgs e)
        {
            PrintEventInfo("EndOperationTransa

二开案例.服务插件.全事件演示

【案例演示】演示操作服务插件所包含的全部事件及其触发顺序。【实现步骤】<1>编写操作服务插件,代码如下。using Kingdee.BOS.Util;using ...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信