随笔 - 113  文章 - 0  评论 - 85  阅读 - 54万

十二、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、源码附件

 工业单据与插件自定义弹窗交互2017-11-13  下载

posted on   林枫山  阅读(5976)  评论(1编辑  收藏  举报
编辑推荐:
· 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)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示