• 十二、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  下载

  • 相关阅读:
    javascript正则表达式对象、窗体对象11.0
    springboot~不用模板执行html文件
    springboot-jar-web
    springboot-war
    springboot-jar
    idea~创建maven webapp项目
    简单日志项目
    loback.xml 在idea中代码自动完成
    mysql 时区问题导致的时间相差14小时
    mariadb vs mysql
  • 原文地址:https://www.cnblogs.com/star-studio/p/7825179.html
Copyright © 2020-2023  润新知