ESOFT ERP

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 1397|回复: 1

ESOFT ERP插件开发(DEMO源码)

[复制链接]

5

主题

8

帖子

511

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
511
发表于 2022-3-9 11:41:34 | 显示全部楼层 |阅读模式
配置文件       向系统注册插件的功能文件,需要保证插件生成的文件名与命名空间名称一致

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using ESoft.Public;
  7. using ESToolkit;
  8. namespace TestPlugin
  9. {
  10.     public class TestPlugin : IESPlugin
  11.     {
  12.         /// <summary>
  13.         /// 插件名称
  14.         /// </summary>
  15.         public string Name { get { return "测试"; } }
  16.         /// <summary>
  17.         /// 描述
  18.         /// </summary>
  19.         public string Description { get { return "这是一个测试插件"; } }
  20.         /// <summary>
  21.         /// 版本好
  22.         /// </summary>
  23.         public string Version { get { return "V1.0.0.1"; } }
  24.         /// <summary>
  25.         /// 作者
  26.         /// </summary>
  27.         public string Author { get { return "ECHO"; } }
  28.         /// <summary>
  29.         /// 钩子列表
  30.         /// </summary>
  31.         public List<Hook> Hooks { get { return hooks; } }

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

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


  36.             });

  37.         }
  38.     }
  39. }
复制代码

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

实际嵌入的控制代码
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using ESoft.Public;
  7. using ESToolkit;
  8. using ESoft.Script;
  9. using ESoft.Public.Class;
  10. using ESoft.FormControl.Base;
  11. namespace TestPlugin
  12. {
  13.     class SaleOrderInner : PluginScript
  14.     {
  15.         public override void SetObject(object obj)
  16.         {
  17.             BaseAll baseAll = obj as BaseAll;
  18.             baseAll.BeforeConfirm += BaseAll_BeforeConfirm;
  19.         }

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

  24.         public void Confirm_Before(ESPluginParam param) {
  25.             param.Cancel = true;
  26.             param.Obj = "这是第一个插件进行功能测试,by ECHO";
  27.         }
  28.         public void Confirm_After(ESPluginParam param)
  29.         {
  30.             
  31.         }
  32.     }
  33. }
复制代码
代码说明:

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

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



TestPlugin.zip

25.33 KB, 下载次数: 11

回复

使用道具 举报

0

主题

1

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-3-11 10:11:04 | 显示全部楼层
大佬 后期考虑开源吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|ESOFT ERP

GMT+8, 2024-12-22 09:48 , Processed in 0.066620 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表