Private Sub Class_Terminate() '释放接口对象 '注意: 此方法必须存在, 请勿修改
Set m_ListInterface = Nothing End Sub
Private Sub m_ListInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)
Dim vctSelectedBillInfo As KFO.Vector, rs As ADODB.Recordset Dim sSql As String, i As Long
Select Case BOSTool.ToolName
Case "mnuPushOldBill_1", "mnuBackData" 'mnuPushOldBill_1 下推 1 外购入库 mnuBackData 选单
Set vctSelectedBillInfo = m_ListInterface.GetSelectedBillInfo
sSql = "select distinct FFetchAdd from t_BOS200000003 where "
For i = 1 To vctSelectedBillInfo.Size
If Not i = vctSelectedBillInfo.Size Then sSql = sSql & "FID=" & vctSelectedBillInfo(i)("FID") & " or " Else sSql = sSql & "FID=" & vctSelectedBillInfo(i)("FID") End If Next
End Sub郭少锋创建 2023-03-29 21:15:04K3 BOSK3 BOS : K3 菜单事件K3 BOS : K3 菜单事件Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean) '菜单事件
Select Case BOSTool.ToolName
Case "MyMenu": aFill '填写数值 Case "MenuWG": aOpenBill '打开单据 指定的外购入库单
Case Else End Select
End Sub
Private Sub aOpenBill() '打开单据 指定的外购入库单
Dim aK3BosActive As Object Dim aFInterID As Long Dim aSql As String
Dim aRecordset As ADODB.Recordset
aSql = "select top 1 FInterID from ICStockBillEntry where FSourceTranType=" & m_BillInterface.FID & " and FSourceInterId =" & m_BillInterface.Data("FID") Set aRecordset = m_BillInterface.K3Lib.GetData(aSql)
If aRecordset.RecordCount > 0 Then
aFInterID = CLng(aRecordset("FInterID").Value) Set aK3BosActive = CreateObject("K3BosActive.Application")
Set aK3BosActive = Nothing Set aRecordset = Nothing End Sub 郭少锋编辑 2023-03-29 21:13:58创建 2023-03-29 21:13:17K3 BOSK3 BOS : K3 单据体操作K3 BOS : K3 单据体操作当前行数 = 单据体总行数 且 输入的 物料代码 = 1.01.100-0088-000P 且 数量 > 0 ,在这行的下面插入5行 并 填写 物料,数量
Private Sub m_BillInterface_Change(ByVal dct As KFO.IDictionary, ByVal dctFld As KFO.IDictionary, ByVal Col As Long, ByVal Row As Long, Cancel As Boolean) '单据数据改变后触发
Dim sValue As String Dim sItemNumber As String Dim dbQty As Double
If Row = m_BillInterface.Data("page2").Size Then '当前行数 = 单据体总行数
sValue = m_BillInterface.Data("page2")(Row)(m_BillInterface.TableInfo("Map")("FBase4"))("FFND") '当前行 物料.代码 If Len(sValue) > 0 Then sItemNumber = sValue Else Exit Sub '退出 Sub 程序 End If
sValue = m_BillInterface.Data("page2")(Row)(m_BillInterface.TableInfo("Map")("FQty"))("FFLD") '当前行 数量.值 If Len(sValue) > 0 And IsNumeric(sValue) Then dbQty = CDbl(sValue) Else Exit Sub End If
If sItemNumber = "1.01.100-0088-000P" And dbQty > 0 Then '物料代码 = 1.01.100-0088-000P + 数量 > 0
Public Sub Show(ByVal oBillInterface As Object) 'BillEvent 接口实现 注意: 此方法必须存在, 请勿修改
Set m_BillInterface = oBillInterface End Sub
Private Sub Class_Terminate() '释放接口对象 '注意: 此方法必须存在, 请勿修改
Set m_BillInterface = Nothing End Sub
Private Sub m_BillInterface_AfterLoadBill() '单据加载后事件
'---------------------------------------------------------------------------------- Dim sKey As String: sKey = m_BillInterface.TableInfo("Map")("FTime") Dim sValue As String: sValue = m_BillInterface.Data("page1")(sKey)("FFLD")
Dim dtValue As Date
If Len(sValue) > 0 Then '用 Len 来比较,速度比 = Null 快 dtValue = CDate(sValue) '文本转日期 End If '----------------------------------------------------------------------------------
' If oDataSrv.TableInfo("PageCount") >= 2 Then 'BOS单据有多个单据体,序时薄只展示一个单据体,所以需要指定打开的序时薄显示哪个单据体 ' dctFilter("SelectPage") = "1,2," '显示单据头、单据体1 ' Else ' dctFilter("SelectPage") = "1," '只显示单据头 ' End If
oDataSrv.Filter = dctFilter '将过滤条件
Set oBillLookUp.DataSrv = oDataSrv: oBillLookUp.Show
Set oBillLookUp = Nothing Set oDataSrv = Nothing Set dctFilter = Nothing End Sub 郭少锋创建 2023-03-27 23:24:48K3 BOSK3 BOS : K3 序时簿 当前选中的行K3 BOS : K3 序时簿 当前选中的行Private Sub m_ListInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean) '菜单事件
Dim aSelRow As Dictionary, aFEntryId As String: Set aSelRow = m_ListInterface.GetCurrentSelRowInfo