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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM