admin 发表于 2022-3-9 11:41:34

ESOFT ERP插件开发(DEMO源码)

配置文件       向系统注册插件的功能文件,需要保证插件生成的文件名与命名空间名称一致

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ESoft.Public;
using ESToolkit;
namespace TestPlugin
{
    public class TestPlugin : IESPlugin
    {
      /// <summary>
      /// 插件名称
      /// </summary>
      public string Name { get { return "测试"; } }
      /// <summary>
      /// 描述
      /// </summary>
      public string Description { get { return "这是一个测试插件"; } }
      /// <summary>
      /// 版本好
      /// </summary>
      public string Version { get { return "V1.0.0.1"; } }
      /// <summary>
      /// 作者
      /// </summary>
      public string Author { get { return "ECHO"; } }
      /// <summary>
      /// 钩子列表
      /// </summary>
      public List<Hook> Hooks { get { return hooks; } }

      private List<Hook> hooks = new List<Hook>();
      public TestPlugin() {

            hooks.AddRange(new Hook[] {
                new Hook{ MCA="SO.SaleOrderInner.Confirm",Class="SaleOrderInner"},


            });

      }
    }
}
代码说明:
new Hook{ MCA="SO.SaleOrderInner.Confirm",Class="SaleOrderInner"}上式代码MCA 表示 嵌入在哪里(即在那处执行代码),Class 为本插件需要执行的代码。

实际嵌入的控制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ESoft.Public;
using ESToolkit;
using ESoft.Script;
using ESoft.Public.Class;
using ESoft.FormControl.Base;
namespace TestPlugin
{
    class SaleOrderInner : PluginScript
    {
      public override void SetObject(object obj)
      {
            BaseAll baseAll = obj as BaseAll;
            baseAll.BeforeConfirm += BaseAll_BeforeConfirm;
      }

      private void BaseAll_BeforeConfirm(object sender, BaseAll.ESBeforeOperateEventArgs e)
      {
         //throw new NotImplementedException();
      }

      public void Confirm_Before(ESPluginParam param) {
            param.Cancel = true;
            param.Obj = "这是第一个插件进行功能测试,by ECHO";
      }
      public void Confirm_After(ESPluginParam param)
      {
            
      }
    }
}
代码说明:

baseAll.BeforeConfirm += BaseAll_BeforeConfirm;确认前的事件,这类事件有 保存前,保存中,保存后,确认前,确认中,确认后,审核前,审核后,删除前,删除中,删除后 等等事件

public void XXX_Before(ESPluginParam param) {}XXX_Before 为前执行
XXX_After 为后执行
具体源码请下载附件



林yu森 发表于 2022-3-11 10:11:04

大佬 后期考虑开源吗?:lol
页: [1]
查看完整版本: ESOFT ERP插件开发(DEMO源码)