=====================================
目錄:
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、源碼附件
