十二、K3 WISE 开发插件《工业单据老单与自己添加的窗体 - 互相传值传参》
=====================================
目录:
1、演示效果--【销售订单】传值给【自定义窗体】
2、演示效果--【自定义窗体】传值给【销售订单】
3、附源码
4、另一种做法:定义public全局变量,进行传值
5、源码附件
=====================================
1、演示效果--【销售订单】传值给【自定义窗体】
新建销售订单菜单栏按钮插件--【弹窗交互】,点击【打开自定义弹窗】,打开Form1窗体,把业务单据类型名称传值给自定义窗体Form1。
在Form1窗体,点击“弹出消息框”,,并弹出消息:“来源单据:”+业务单据类型名称传值。
2、演示效果--【自定义窗体】传值给【销售订单】
在Form1窗体的文本框输入“Hello World ! “,按回车键,调用回车事件,传值到【销售订单】的单据体第一行的”备注“字段。
按回车键后,值写入”备注“字段。
3、附源码
销售订单插件类Class1.cls:
'定义插件对象接口. 必须具有的声明, 以此来获得事件 Private WithEvents m_BillTransfer As k3BillTransfer.Bill Public Sub Show(ByVal oBillTransfer As Object) '接口实现 '注意: 此方法必须存在, 请勿修改 Set m_BillTransfer = oBillTransfer End Sub Private Sub Class_Terminate() '释放接口对象 '注意: 此方法必须存在, 请勿修改 Set m_BillTransfer = Nothing End Sub Private Sub m_BillTransfer_BillInitialize() 'TODO: 请在此处添加代码响应事件 BillInitialize '*************** 开始设置菜单 *************** m_BillTransfer.AddUserMenuItem "打开自定义弹窗", "弹窗交互" '*************** 结束设置菜单 *************** End Sub Private Sub m_BillTransfer_BillTerminate() 'TODO: 请在此处添加代码响应事件 BillTerminate End Sub Private Sub m_BillTransfer_UserMenuClick(ByVal Index As Long, ByVal Caption As String) 'TODO: 请在此处添加代码响应事件 UserMenuClick Select Case Caption Case "打开自定义弹窗" '此处添加处理 打开自定义弹窗 菜单对象的 Click 事件 Dim Form As New Form1 Set Form.frm_BillTransfer = m_BillTransfer '交互:这里从销售订单传值到自定义窗口 Form.selSourceName = "销售订单" Form.Show 1 Set Form = Nothing Case Else End Select End Sub
窗体Form1代码:
Option Explicit Public WithEvents frm_BillTransfer As k3BillTransfer.Bill Public selSourceName As String Private Sub Command1_Click() MsgBox "来源单据:" & selSourceName End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then '交互:自定义弹窗回传参数给销售订单 SetInfo frm_BillTransfer, Text1.Text '关闭弹窗 Unload Me End If End Sub
公共类Module1.cls:
Public Sub SetInfo(m_BillTransfer As k3BillTransfer.Bill, Value As String) With m_BillTransfer .SetGridText 1, getColIndex(m_BillTransfer, "备注"), Value End With End Sub Function getColIndex(m_BillTransfer As k3BillTransfer.Bill, colName As String) As Long On Error GoTo errCI Dim tmpIndex As Long tmpIndex = -1 With m_BillTransfer Dim i As Integer For i = 1 To 200 If .GetGridText(0, i) = colName Then tmpIndex = i Exit For End If Next i End With getColIndex = tmpIndex Exit Function errCI: getColIndex = tmpIndex End Function
4、另一种做法:定义public全局变量,进行传值
5、源码附件
分类:
01:K3 Wise二开
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)