在订单上新增一个按钮,并为其二开写一个插件原创
金蝶云社区-岚思榛
岚思榛
11人赞赏了该文章 148次浏览 未经作者许可,禁止转载编辑于2024年05月23日 13:23:44
  1. 创建项目命名规则

    {开发商标识符}[.K3][.客户缩写][.业务系统][.模块][.功能]

    业务系统 ::= K/3业务系统标识符    如SCM供应链

       模块 ::= K/3模块标识符    如PUR采购

       功能 ::= 功能标识符    如 Business 表示业务功能,Service 表示服务功能,Report 表示报表

 如:开发商标识符.K3.CUST.SCM.PUR.Business.PlugIn  (采购系统业务对象界面插件)

    2.在客户端的C:\Program Files (x86)\Kingdee\K3Cloud\WebSite\bin目录下找到需要引用的插件,并引入到项目中

上传图片

3.编写代码块(因为之前没有写过C#的代码所以注释写的比较完整)

using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace XXX.K3.SCM.Test.Business.PlugIn
{
    [System.ComponentModel.Description("采购订单新增一个按钮的点击事件")]
    //AbstractDynamicFormPlugIn 引用表单插件
    public class test: AbstractDynamicFormPlugIn
    {
        /// <summary>
        /// F_Jac_Button是根据按钮元数据XML的key取值 等同于唯一标识符
        /// const :定义常量
        /// </summary>
        const string ButtonKey = "F_hcrj_Button_qtr";

        // 使用 override 关键字可以确保派生类中的方法正确覆盖了基类中的方法
        // ButtonClick : 按钮点击事件
        public override void ButtonClick(ButtonClickEventArgs e)
        {
            //调用基类的ButtonClick方法
            base.ButtonClick(e);

            //StringComparison.OrdinalIgnoreCase : 比较字符串时忽略大小写
            if (e.Key.Equals(ButtonKey, StringComparison.OrdinalIgnoreCase))
            {
                //this.View.ShowMessage :用于显示消息或弹出框的方法
                //string.Format :用于将指定的格式字符串和参数组合成一个新的字符串
                //this.View.GetControl<Button>(ButtonKey).Text : 获取与ButtonKey关联的按钮控件文本内容
                //{0}是按钮的文本内容(this.View.GetControl<Button>(ButtonKey).Text),{1}是e.Key的值
                this.View.ShowMessage(string.Format("【{0}[{1}]】被点击啦!", this.View.GetControl<Button>(ButtonKey).Text, e.Key));
                return;
            }
        }

    }
}

4.用BOS设计在表单中添加按钮

上传图片

5.把写好的插件挂载上去

上传图片

上传图片

6.后面一直点确定,保存就可以(最后一定要记得重启IIS,否则插件不生效)

赞 11