.Net 平台应用与技巧
MRZ图表分组数据源过滤设计示例
平台应用类
OrBit平台Job配置
【序列号规则】插件使用说明
工单自定义流程节点应用说明
平台 【SVN 版本管理】工具使用说明
平台SPC应用介绍
平台WebAPI文件上传、下载(OrBitWebAPI2)
平台【元对象授权】功能使用说明
平台【分级授权】功能使用说明
平台【消息对象】使用说明
平台【表单消息升级】应用说明
平台可配置【 Excel 文件导出】功能使用说明
按产品定义采集功能使用说明
用户自定义编码及系统单据状态、单据类型的颜色配置
系统中如何增加用户密码过期更换提醒
通用在线打印功能使用说明
平台技巧类
MS-SQL 添加并引用 DLL 程序集
OrBit “自定义对话框”使用说明
Matrix标签打印(OrBitMESHelp/OrBitMetaHelp)
MES事务对象Scripter--扩展方法
MES事务帮助类OrBitMESHelp
WebView2管理类--用于展示看板
元对象Scripter--扩展方法
元对象帮助类OrBitMetaHelp
外挂Exc程序(发布为平台插件)---调用自定义对话框
自定义对话框--Xml/Json数据解析神器
OrBit-KanBan File 类型应用说明
OrBit-X 如何支持 Https 协议
OrBit-X 平台 Bartender 标签模板制作说明
OrBit-X 平台元对象多文件上传、预览
OrBit-X 平台内置 WebAPI 使用说明
OrBit-X 应用打包-扩展工具-快捷迁移
OrBit平台“调用摄像头拍照、录制视频,并上传FTP”窗体控件的应用
元对象可配置Excel导入功能应用说明
元对象嵌入看板
基于 Json 数据格式的 Mrt 模板设计说明
如何利用 Bartender 标签模板实现一拖几打印
平台 Excel 对象导入功能应用说明
平台 MES 事务对象实现网格多选效果
平台 WebAPI 应用说明
平台中 Mrz 模板实现钻取功能
平台发布接口(OrBitWebAPI&OrBitWebAPI2)
平台通过 CLR 实现企业微信消息及文件自动推送
标签/报表实现只预览不打印
通过平台 Web 服务实现远端 Wifi 打印说明
静态事务“平铺按钮”控件的应用
静态事务”调用摄像头扫码识别条码(条形码/二维码)“功能的应用与实现
钉钉机器人接口实现及其他API扩展
-
+
首页
外挂Exc程序(发布为平台插件)---调用自定义对话框
# 一、概述 有时候需要写一个外挂Exe程序发布成平台插件,且Exe程序需要使用对话框,如果自行开发的话,太浪费时间了,很难达到目标效果,因此对超级对话框进行扩扩展,是外挂Exe程序能够使用超级对话框。 # **二、步骤**: 1、在用VS开发窗体程序时,添加对OrBitUserDialog.dll、OrBitScript.Dll引用 # **三、使用** #### 1、继承实现接口IOrBitExApi,例子: ```csharp using OrBitUserDialog.API; using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Test_窗体1 { class MyOrBitExApi : IOrBitExApi { /* 注意:请根据具体情况实现IOrBitExApi接口,本文只是例子 */ /// <summary> /// 插件的命令 /// </summary> public string PlugInCommand { get => "IQC8D"; set => PlugInCommand = value; } /// <summary> /// 插件的名字 /// </summary> public string PlugInName { get => "8D报告"; set => PlugInName = value; } /// <summary> /// 语言ID /// </summary> public string LanguageId { get => "2"; set => LanguageId = value; } /// <summary> /// 用户ID /// </summary> public string OrBitUserId { get => "SUR1000003NL"; set => OrBitUserId = value; } /// <summary> /// 用户名 /// </summary> public string OrBitUserName { get => "HH0102"; set => OrBitUserName = "HH0102"; } /// <summary> /// 资源(电脑)ID /// </summary> public string ResourceId { get => "RES100000109"; set => ResourceId = value; } /// <summary> /// 资源名 /// </summary> public string ResourceName { get => "Gu"; set => ResourceName = value; } /// <summary> /// 执行SQL获取数据集 /// </summary> /// <param name="SQLString"></param> /// <returns></returns> public DataSet GetSqlDataSet(string SQLString) { #region Demo string ConnectionString = "Data Source=" + "." + ";Initial Catalog=" + "OrBitMOM_Dev" + ";password=" + "sa" + ";Persist Security Info=True;User ID=" + "sa"; DataSet ds = new DataSet(); using (var connection = new SqlConnection(ConnectionString)) { connection.Open(); using (SqlCommand cmd = new SqlCommand(SQLString, connection)) //这种写法可解决:DataReader 必须首先将它关闭 的问题 { SqlDataAdapter da = new SqlDataAdapter(cmd); da.Fill(ds); da.Dispose(); } connection.Close(); } return ds; #endregion } /// <summary> /// 系统语言翻译 /// </summary> /// <param name="owner">所有者</param> /// <param name="module">模块名</param> /// <param name="controlName">控件名</param> /// <param name="defaultText">默认文本</param> /// <returns></returns> public string GetUIText(string owner, string module, string controlName, string defaultText) { //Demo return string.IsNullOrWhiteSpace(defaultText) ? module : defaultText; } /// <summary> /// 发消息到状态栏 /// </summary> /// <param name="Message">Message</param> public void SendToStatusBar(string Message) { //Demo } /// <summary> /// 上传文件 /// </summary> /// <param name="FtpFileId">输出FtpFileId</param> /// <param name="FileName">文件全名</param> /// <param name="ButtonName">按钮名</param> /// <returns>上传结果</returns> public bool UploadFile(out string FtpFileId, string FileName, string ButtonName) { //Demo FtpFileId = ""; return false; } /// <summary> /// 下载文件 /// </summary> /// <param name="FtpFileId">FtpFileId</param> /// <param name="FileName">FileName</param> /// <param name="ButtonName">ButtonName</param> /// <returns>下载结果</returns> public bool DownloadFile(string FtpFileId, string FileName, string ButtonName) { //Demo return false; } /// <summary> /// 显示SOP文件 /// </summary> /// <param name="sopURL">文件url 或 FtpFileId</param> /// <param name="sopName">文件名</param> public void ShowSOP(string sopURL, string sopName) { //Demo } /// <summary> /// 获取界面参数值 /// </summary> /// <param name="ParameterName">ParameterName</param> /// <returns></returns> public string GetParameterValue(string ParameterName) { return ParameterName;//Demo } /// <summary> /// 设置界面参数值。主要用于MES事务(OrBitAPI) /// </summary> /// <param name="ParameterName">参数名</param> /// <param name="ParameterValue">参数值</param> public void SetParameterValue(string ParameterName, string ParameterValue) { //Demo } /// <summary> /// 显示冒泡消息 /// </summary> /// <param name="Message">Message</param> /// <param name="IsSay">IsSay</param> public void ShowPopMessage(string Message, bool IsSay) { //Demo } /// <summary> /// 标签打印 /// </summary> /// <param name="MrzFiles">标签:FtpFileId</param> /// <param name="SourceDataSet">数据源</param> /// <param name="IsPreview">是否预览</param> /// <returns>打印结果</returns> public bool PrintMRZReport(string MrzFiles, DataSet SourceDataSet, bool IsPreview) { return false;//Demo } /// <summary> /// 获取标签,可以多个 /// </summary> /// <param name="panelApi">自定义对话框面板API</param> /// <param name="tabIndex">对话框页签索引</param> /// <param name="parentGridRowId">双网格时,A网格行Id</param> /// <param name="dataSubmit">网格数据,单网格时为A网格、双网格时为B网格</param> /// <param name="btnName">按钮名称:固定“提交按钮” 或 自定义按钮</param> /// <returns>标签。“Tuple,string为标签,bool为是否预览”</returns> public List<Tuple<string, bool>> GetMrzFiles(PanelApi panelApi, int tabIndex, string parentGridRowId, string dataSubmit, string btnName) { //Demo List<Tuple<string, bool>> list = new List<Tuple<string, bool>>(); list.Add(new Tuple<string, bool>("FTP1000001GC", true)); return list; } } } ``` #### 2、调用 ```csharp private void button1_Click(object sender, EventArgs e) { //建议用OrBitAPI //OrBitScript.OrBitMetaAPI Scripter = new OrBitScript.OrBitMetaAPI(); OrBitScript.OrBitAPI Scripter = new OrBitScript.OrBitAPI(); EventInject eventInject = new EventInject(); eventInject.GridAfterCellUpdate = UltraGrid_AfterCellUpdate; eventInject.FormLoad = Form_Load; eventInject.FormClosed = Form_Closed; eventInject.BtnSubmitClickBefore = BtnSubmit_ClickBefore; eventInject.OrBitExApi = new MyOrBitExApi(); OrBitUserDialog.Dialog.Show(Scripter, "WES ASNItem_Add", "", "", eventInject); } ``` ```csharp /// <summary> /// 自定义对话框。网格-单元格值更新事件 /// </summary> /// <param name="TabIndex">Tab索引:1、2</param> /// <param name="Grid">网格</param> /// <param name="e"> 参数</param> /// <param name="GridName">网格名:A、B</param> /// <param name="PanelApi">面板API接口</param> private void UltraGrid_AfterCellUpdate(int TabIndex, Infragistics.Win.UltraWinGrid.UltraGrid Grid, Infragistics.Win.UltraWinGrid.CellEventArgs e, string GridName, OrBitUserDialog.API.PanelApi PanelApi) { //to do.. } /// <summary> /// 自定义对话框。窗体加载事件 /// </summary> /// <param name="TabIndex">Tab索引:1、2</param> /// <param name="AGrid">A网格</param> /// <param name="BGrid">B网格,可能为null</param> /// <param name="PanelApi">面板API接口</param> private void Form_Load(int TabIndex, Infragistics.Win.UltraWinGrid.UltraGrid AGrid, Infragistics.Win.UltraWinGrid.UltraGrid BGrid, OrBitUserDialog.API.PanelApi PanelApi) { //to do.. } /// <summary> /// 自定义对话框。窗体关闭事件 /// </summary> /// <param name="TabIndex">Tab索引:1、2</param> /// <param name="AGrid">A网格</param> /// <param name="BGrid">B网格,可能为null</param> /// <param name="PanelApi">面板API接口</param> private void Form_Closed(int TabIndex, Infragistics.Win.UltraWinGrid.UltraGrid AGrid, Infragistics.Win.UltraWinGrid.UltraGrid BGrid, OrBitUserDialog.API.PanelApi PanelApi) { //to do.. } /// <summary> /// 自定义对话框。提交按钮 触发时检查前置事件 /// </summary> /// <param name="TabIndex">Tab索引:1、2</param> /// <param name="AGrid">A网格</param> /// <param name="BGrid">B网格,可能为null</param> /// <param name="PanelApi">面板API接口</param> /// <returns>True表示继续,False表示退回</returns> private bool BtnSubmit_ClickBefore(int TabIndex, Infragistics.Win.UltraWinGrid.UltraGrid AGrid, Infragistics.Win.UltraWinGrid.UltraGrid BGrid, OrBitUserDialog.API.PanelApi PanelApi) { //to do.. return true; } ```
HH0102
2024年1月17日 09:49
分享
上一篇
下一篇
目录
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
下载Markdown文件