U8 内嵌.Net UserControl,winform挂菜单

目录

  • 1.创建类库
  • 2.项目引用U8安装路径dll:
  • 3.新建类MyLoginable 继承 NetLoginable:
  • 4.新建类 MyNetUserControl 实现接口 INetUserControl:
  • 5.新建类 NetSampleDelegate 实现上面的CreateToolbar方法
  • 6.新建你的用户控件
  • 7.最后一步到UAP挂接菜单,到U8上就看到了

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:

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:

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方法

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上就看到了

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/613027.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端文件下载方法(包含get和post)

export const downloadFileWithIframe (url, name) > {const iframe document.createElement(iframe);iframe.style.display none; // 防止影响页面iframe.style.height 0; // 防止影响页面iframe.name name;iframe.src url;document.body.appendChild(iframe); // 这…

【设计模式-02】Strategy策略模式及应用场景

一、参考资料 Java 官方文档 Overview (Java SE 18 & JDK 18)module indexhttps://docs.oracle.com/en/java/javase/18/docs/api/index.html Java中使用到的策略模式 Comparator、comparable Comparator (Java SE 18 & JDK 18)declaration: module: java.base, pa…

计算数学表达式的程序(Java课程设计)

1. 课设团队介绍 团队名称 团队成 员介绍 任务分配 团队成员博客 XQ Warriors 徐维辉 负责计算器数据的算法操作&#xff0c;如平方数、加减乘除&#xff0c;显示历史计算记录 无 邱良厦&#xff08;组长&#xff09; 负责计算器的图形设计&#xff0c;把输入和结果显…

模型评估:ROC曲线

二值分类器&#xff08;Binary Classifier&#xff09;是机器学习领域中最常见也是应用最广泛的分类器。评价二值分类器的指标很多&#xff0c;比如precision、recall、F1 score、P-R曲线等。相比而言&#xff0c;ROC曲线有很多优点&#xff0c;经常作为评估而知分类器最重要的…

斯坦福Mobile ALOHA提到的ACT之外的另两项技术:Diffusion Policy、VINN

前言 本文接上一篇文章《斯坦福机器人Mobile ALOHA的关键技术&#xff1a;动作分块ACT的算法原理与代码剖析》而来&#xff0c;当然最开始本文是作为上一篇文章的第二、第三部分的 但因为ACT太过关键&#xff0c;除了在上一篇文章中写清楚其算法原理之外&#xff0c;还得再剖…

如何在 Ubuntu 20.04 上安装 Node.js

前些天发现了一个人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;最重要的屌图甚多&#xff0c;忍不住分享一下给大家。点击跳转到网站。 如何在 Ubuntu 20.04 上安装 Node.js 介绍 Node.js是用于服务器端编程的 JavaScript 运行时。它允许开发人员使…

基于jackson封装的json字符串与javaBean对象转换工具

文章目录 一、概述二、编码实现1. pom文件引入组件2. 核心代码 三、功能测试1. 测试文件2. 测试代码 四&#xff0c;完整代码 一、概述 带有API接口交互的web项目开发过程中&#xff0c;json字符串与javaBean对象之间的相互转换是比较常见的需求&#xff0c;基于jackson Objec…

数控开料机对比木工雕刻机的优势

数控开料机和木工雕刻机都属于木工机械加工设备&#xff0c;都可以用来开料和雕刻&#xff0c;但在市场价格、床体结构、技术要求等方面二者存在不小的差异&#xff0c;那么全自动数控开料机对比普通木工雕刻机有什么优势呢。 首先我们都知道&#xff0c;木工雕刻机主要应用于…

鸿蒙开发之组件不同状态样式设置stateStyles

开发中会有一种场景&#xff0c;组件&#xff08;如&#xff1a;按钮&#xff09;在不同状态下展示的样式不同。例如在normal状态和按下状态显示不同的样式&#xff0c;这个时候就可以通过stateStyles属性来设置组件。 Entry Component struct OfficialStateStylePage {State …

【5种常见的rpc封装方案】

1)回调(唯一callbackId) 1.显式回调写法 // 自己封装callbackId send(msgId, req, (data)->{ }) 隐式回调写法: send(msgId, req); ResHandler(data){ } 协程其实也算是隐式的写法&#xff0c;毕竟协程只能在进程内通信&#xff0c;只不过算是等到对方回复后&#xff0…

开启golang学习之路

Go 编程语言是一个开源项目&#xff0c;旨在提高程序员的工作效率。 Go 富有表现力、简洁、干净且高效。它的并发机制使编写能够充分利用多核和联网机器的程序变得容易&#xff0c;而其新颖的类型系统可以实现灵活和模块化的程序构建。 Go 可以快速编译为机器代码&#xff0c;…

Prometheus实战篇:Alertmanager配置概述及告警规则

Prometheus实战篇:Alertmanager配置概述及告警规则 在此之前,环境准备和安装我就不在重复一遍了.可以看之前的博客,这里我们直接步入正题. Alertmanager配置概述 Alertmanager主要负责对Prometheus产生的告警进行统一处理,因此在Alertmanager配置中一般会包含以下几个主要部分…

电脑提示dll丢失怎么办,教你一招将dll修复

使用电脑时&#xff0c;你的电脑是否出现关于dll文件丢失或找不到的问题&#xff0c;出现这种问题又该如何解决呢&#xff0c;dll文件问题会导致软件无法打开&#xff0c;或者会导致系统崩溃。今天就来教大家如何快速解决dll文件修复。 一.如何修复dll修复 方法一&#xff1a;…

虹科分享 | 实现网络流量的全面访问和可视性——Profitap和Ntop联合解决方案

文章速览&#xff1a; 为什么客户抱怨“网速太慢”&#xff1f;网络流量监控联合解决方案Profishark&Ntop联合解决方案的优势 这次和大家分享如何捕捉、分析和解读网络数据&#xff0c;从而更有效地监控网络流量&#xff0c;实现网络性能的最大化。先来看一个实际的问题—…

计算机体系结构----重排序缓冲(ROB)

ROB的思想&#xff1a;不按顺序完成指令&#xff0c;但在使结果对体系结构状态可见之前重新排序 当指令被解码时&#xff0c;它会在 ROB 中保留下一个顺序条目当指令完成时&#xff0c;它将结果写入 ROB 条目当指令在 ROB 中最早并且无一例外地完成时&#xff0c;其结果移动到…

HJ12 字符串反转

题目描述 接受一个只包含小写字母的字符串&#xff0c;然后输出该字符串反转后的字符串。&#xff08;字符串长度不超过1000&#xff09; 题目来源 题目来源 输入描述 输入一行&#xff0c;为一个只包含小写字母的字符串。 输出描述&#xff1a; 输入一行&#xff0c;为一…

mathglm代码调试记录

论文地址&#xff1a;https://arxiv.org/pdf/2309.03241v2.pdf 项目地址&#xff1a;https://github.com/THUDM/MathGLM#arithmetic-tasks 数据集格式&#xff1a; 读取数据集代码&#xff1a; def make_loaders(args, create_dataset_function):"""makes t…

检测并批量导出项目文件中所有最近修改文件的实用工具

本篇文章主要讲解工具的使用和操作教程&#xff0c;这是一个能够检测项目内最近修改的文件并保留路径导出文件的实用工具。 日期&#xff1a;2024年1月10日 工具介绍&#xff1a; 这是一款可以帮助你自动检测并导出指定文件修改时间内的文件及文件目录的实用工具&#xff0c;在…

PDO【配置】

PDOr: 6040 控制字 6060 模式 6083 加速度 6084 减速度 =====================【定位1】:// 补间7 607A 定位位置 6081 定位速度 =====================【速度3】: 60FF 目标速度 =====================【力矩4…

Python语言基础

目录 任务驱动式学习 任务一&#xff1a;输出问候语 一、Python程序的两种编程模式 二、Python程序的执行方式——解释执行 三、基本输入输出函数 任务二&#xff1a;计算圆的周长和面积 一、语句块缩进 二、变量与对象 三、数据类型及转换 四、数字类型及运算 五、…