U8 内嵌.Net UserControl,winform挂菜单

目录

1.创建类库

创建类库命名:UFIDA.U8.Portal.+自定义名称...

2.项目引用U8安装路径dll:

F: U8SOFT\Interop\Interop.U8Login.dll //设置嵌入互操作类型为false

F: U8SOFT\Interop\Interop.UFPortalProxylnterface.dll

F: U8SOFT\Portal \UFIDA.U8.Portal.Common.dll

F: U8SOFT\Portal\UFIDA.U8.Portal.Framework.dll

F: U8SOFT\Portal \UFIDA.U8.Portal.Proxy.dll

F: U8SOFT\Framework\UFSoft.U8.Framework.Login.Ul.dl

3.新建类MyLoginable 继承 NetLoginable:

csharp 复制代码
using UFIDA.U8.Portal.Proxy.editors;
using UFIDA.U8.Portal.Proxy.supports;

namespace UFIDA.U8.Portal.Produce.Print
{
    public class MyLoginable : NetLoginable
    {
        public override object CallFunction(string cMenuId, string cMenuName, string cAuthId, string cCmdLine)
        {
            INetUserControl mycontrol = new MyNetUserControl();
            mycontrol.Title = "生产计划核销物料";
            base.ShowEmbedControl(mycontrol, cMenuId, true);
            return null;
        }
        public override bool SubSysLogin()
        {
            GlobalParameters.gLoginable = this;
            return base.SubSysLogin();
        }

        public override bool SubSysLogOff()
        {
            return base.SubSysLogOff();
        }

        public static class GlobalParameters
        {
            private static MyLoginable _myLoginable = null;
            public static MyLoginable gLoginable
            {
                get
                {
                    return _myLoginable;
                }
                set
                {
                    _myLoginable = value;
                }
            }
        }

    }
}

4.新建类 MyNetUserControl 实现接口 INetUserControl:

csharp 复制代码
using System.Windows.Forms;
using UFIDA.U8.Portal.Framework.Actions;
using UFIDA.U8.Portal.Framework.MainFrames;
using UFIDA.U8.Portal.Produce.Print.Utility;
using UFIDA.U8.Portal.Proxy.Actions;
using UFIDA.U8.Portal.Proxy.editors;
using UFSoft.U8.Framework.Login.UI;

namespace UFIDA.U8.Portal.Produce.Print
{
    public class MyNetUserControl : INetUserControl
    {
        #region INetUserControl 成员
        UserControlSummaryPrint  summaryPrint = null;
        private IEditorInput _editInput = null;
        private IEditorPart _editPart = null;
        private string _title;

        /// <summary>
        /// EditorInput
        /// </summary>
        public IEditorInput EditorInput
        {
            get
            {
                return _editInput;
            }
            set
            {
                _editInput = value;
            }
        }

        /// <summary>
        /// EditorPart
        /// </summary>
        public IEditorPart EditorPart
        {
            get
            {
                return _editPart;
            }
            set
            {
                _editPart = value;
            }
        }

        /// <summary>
        /// 页签标题
        /// </summary>
        public string Title
        {
            get
            {
                return this._title;
            }
            set
            {
                this._title = value;
            }
        }
        public bool CloseEvent()
        {
            //throw new Exception("The method or operation is not implemented.");
            return true;
        }

        public Control CreateControl(clsLogin login, string MenuID, string Paramters)
        {
            DBConfig.connStr = login.GetLoginInfo().ConnString.Substring(18).Replace("Provider=SQLOLEDB;", string.Empty);
            // objConnection = "Data Source=yuyang;Initial Catalog=UFDATA_888_2006;User ID=sa;Password=123";
            DBConfig.operDate = login.GetLoginInfo().operDate;
            DBConfig.UserName = login.GetLoginInfo().UserName;
            DBConfig.UserId = login.GetLoginInfo().UserId;
            DBConfig.AccID = login.GetLoginInfo().AccID;
            DBConfig.AppServer = login.GetLoginInfo().AppServer;
            DBConfig.AccName = login.GetLoginInfo().AccName;
            DBConfig.iYear = login.GetLoginInfo().iYear;
            DBConfig.iBeginYear = login.GetLoginInfo().iBeginYear;
            //构造U8登陆对象
            U8Login.clsLogin u8login = new U8Login.clsLoginClass();
            if (login != null)
            {
                u8login.ConstructLogin(login.userToken);
                string taskId = login.GetTaskID("DP");
                u8login.set_TaskId(ref taskId);
            }

            summaryPrint = new UserControlSummaryPrint();
            summaryPrint.Name = "生产计划核销物料";
            return summaryPrint;
        }

        public NetAction[] CreateToolbar(clsLogin login)
        {
            IActionDelegate nsd = new NetSampleDelegate();
            //string skey = "mynewcontrol";
            //NetAction ac = new NetAction("sss", nsd);
            NetAction[] aclist;
            aclist = new NetAction[0];
            //ac.Text = "Sample Button 2";
            //ac.Tag = summaryPrint;
            //aclist[0] = ac;
            return aclist;

            // throw new Exception("The method or operation is not implemented.");
        }


        #endregion

    }
}

5.新建类 NetSampleDelegate 实现上面的CreateToolbar方法

csharp 复制代码
using UFIDA.U8.Portal.Common.Core;
using UFIDA.U8.Portal.Framework.Actions;

namespace UFIDA.U8.Portal.Produce.Print
{
    public class NetSampleDelegate : IActionDelegate
    {
        public void Run(IAction action)
        {
            //throw new NotImplementedException();
        }

        public void SelectionChanged(IAction action, ISelection selection)
        {
            //throw new NotImplementedException();
        }
    }
}

6.新建你的用户控件

7.最后一步到UAP挂接菜单,到U8上就看到了

相关推荐
czhc11400756634 小时前
7.29:树形;
c#
cm04Z9c915 小时前
C#摸鱼实录——IoC与DI案例详解
开发语言·c#
心念枕惊9 小时前
OpenClaw.NET 重大更新:Goal 机制登场,让 AI Agent 不再“半途而废“
.net
geovindu10 小时前
CSharp:Chain of Responsibility Pattern
开发语言·后端·设计模式·c#·.net·责任链模式·行为模式
颜x小12 小时前
[C#]泛型类与泛型方法
开发语言·c++·c#
caishenzhibiao13 小时前
顺势交易矩阵主图 同花顺期货通指标
java·c语言·c#
TDengine (老段)13 小时前
TDengine Node.js 与 C# 连接器 — Web 服务与 .NET 集成
大数据·数据库·node.js·c#·.net·时序数据库·tdengine
河西石头14 小时前
再谈C#的抽象类和接口:从“适配器”到“毛坯房”的设计哲学
开发语言·c#·接口·依赖注入·抽象类·依赖倒挂
颜x小14 小时前
[C#]——接口与继承
开发语言·c++·c#
Listen·Rain15 小时前
用AI开发出一个AI
java·人工智能·spring boot·tomcat·intellij-idea·mybatis·visual studio