二开案例.列表插件.打印列表插件

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.列表插件.打印列表插件

【应用场景】

运行时查看列表上当前正在使用的列表插件。

当怀疑某些插件不工作,或者怀疑后台注入了未知插件,可通过此方法观察某个列表上当前正在使用的列表插件。


【案例演示】

采购订单列表,查看当前正在使用的列表插件。


【实现步骤】

<1>编写列表插件,代码如下。

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.List.PlugIn;

using Kingdee.BOS.Util;

using System;

using System.ComponentModel;

using System.Linq;

using System.Reflection;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【列表插件】打印列表插件

    /// </summary>

    [Description("【列表插件】打印列表插件"), HotUpdate]

    public class ShowListPlugInListPlugIn : AbstractListPlugIn

    {

        public override void AfterBindData(EventArgs e)

        {

            base.AfterBindData(e);

            var eventsProxyProperty = this.View.GetType().GetProperties(BindingFlags.Instance | BindingFlags.NonPublic).FirstOrDefault(o => o.Name == "EventsProxy");

            if (eventsProxyProperty != null)

            {

                var eventsProxy = eventsProxyProperty.GetValue(this.View, null) as DynamicFormViewPlugInProxy;

                if (eventsProxy != null)

                {

                    var msg = string.Join("\r\n", eventsProxy.PlugIns.Select(o =>

                    {

                        var type = o.GetType();

                        if (type == typeof(PythonListPlugIn))

                        {

                            var scriptStringField = type.GetFields(BindingFlags.Instance | BindingFlags.NonPublic).FirstOrDefault(p => p.Name == "scriptString");

                            if (scriptStringField != null)

                            {

                                return string.Format("【{0}】\r\n【Begin】\r\n{1}\r\n【End】", type.Name, scriptStringField.GetValue(o));

                            }

                        }

                        return type.FullName;

                    }));

                    this.View.ShowMessage(msg);

                }

            }

        }

    }

}


<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE扩展采购订单,注册列表插件,保存元数据,开发完毕。

或者将上面的C#代码转Python代码并注册Python插件。


【功能验证】

<1>登录业务站点,打开采购订单列表界面,即可查看采购订单当前正在使用的列表插件。

---------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696


【Python】【列表插件】打印列表插件.rar

二开案例.列表插件.打印列表插件

【应用场景】运行时查看列表上当前正在使用的列表插件。当怀疑某些插件不工作,或者怀疑后台注入了未知插件,可通过此方法观察某个列表上当...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息