⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bos_editionitem.cls

📁 金蝶地磅称重插件
💻 CLS
字号:
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "BOS_EditionItem"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'''''''''''''''''''''''''''''''''''''''''''''''
''结算项目标准
''建立日期:2005-08-15
''建立人:倪树祥
'''''''''''''''''''''''''''''''''''''''''''''''''
'定义 BillEvent 接口. 必须具有的声明, 以此来获得事件
Private WithEvents m_BillInterface  As BillEvent
Attribute m_BillInterface.VB_VarHelpID = -1
'定义 ListEvents 接口. 必须具有的声明, 以此来获得事件
Private WithEvents m_ListInterface  As ListEvents
Attribute m_ListInterface.VB_VarHelpID = -1
  
Public Sub Show(ByVal oBosInterface As Object)
    'BillEvent 接口实现
    '注意: 此方法必须存在, 请勿修改
    Select Case VBA.TypeName(oBosInterface)
    Case "BillEvent"
        Set m_BillInterface = oBosInterface
    Case "ListEvents"
        Set m_ListInterface = oBosInterface
    
    End Select
End Sub

Private Sub Class_Terminate()
    '释放接口对象
    '注意: 此方法必须存在, 请勿修改
    Set m_BillInterface = Nothing
    Set m_ListInterface = Nothing
    
End Sub


Private Sub m_BillInterface_AfterMultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal Success As Boolean)
    If lCheckLevel = lBusinessLevel Then
        m_BillInterface.K3Lib.UpdateData " exec IC_Sp_EditionItem @CheckType = 1, @EditionItemID = " & m_BillInterface.CurBillID
    End If
    
End Sub

Private Sub m_BillInterface_AfterSave(ByRef bCancel As Boolean)
    '保存选单后触发该事件
    '更新结算标准单据中"FIsRefered"字段值为1,note:FIsRefered=1 代表该单据体中数据已被引用。不能再被“做废”
    '更新分录,在下次引用的时候不出现
    m_BillInterface.K3Lib.UpdateData " update t_EP_PB_Edition set  FIsRefered = 1 where FID= (select top 1 FID from t_EP_PB_EditionEntry where FEntryID = " & lngFEntryID & ")"
    m_BillInterface.K3Lib.UpdateData " update t_EP_PB_EditionEntry set  FIsRefered = 1, FItemCreated = 1 where FEntryID = " & lngFEntryID
End Sub

Private Sub m_BillInterface_AfterSelBill(ByVal lSelBillType As Long)
    '填写其它字段
    Dim rsRec As New Recordset
    Dim strSql As String
    
        strSql = "  SELECT t_ICItem.FNumber, t_EP_PB_EditionEntry.FEntryID, " & _
                        " QMCheckItem.FNumber AS FCheckItem, t_EP_PB_EditionEntry.FBaseValue," & _
                        " t_EP_PB_EditionEntry.FSumStart, t_EP_PB_EditionEntry.FSumEnd, t_EP_PB_Edition.FBaseWater " & _
                 " FROM t_EP_PB_Edition INNER JOIN " & _
                     " t_EP_PB_EditionEntry ON t_EP_PB_Edition.FID = t_EP_PB_EditionEntry.FID INNER JOIN " & _
                     " t_ICItem ON t_EP_PB_Edition.FMItem = t_ICItem.FItemID INNER JOIN " & _
                     " QMCheckItem ON t_EP_PB_EditionEntry.FCheckItem = QMCheckItem.FID " & _
                " where t_EP_PB_EditionEntry.FEntryID = " & lngFEntryID
    Set rsRec = m_BillInterface.K3Lib.GetData(strSql)
    If Not rsRec.EOF Then
        m_BillInterface.SetFieldValue "FCheckItem", rsRec("FCheckItem")         '检验项目
        m_BillInterface.SetFieldValue "FBaseWater", rsRec("FBaseWater")         '自然水份
        m_BillInterface.SetFieldValue "FSumEnd", rsRec("FSumEnd")               '批次加权起点
        m_BillInterface.SetFieldValue "FSumStart", rsRec("FSumStart")           '批次加权终点
        m_BillInterface.SetFieldValue "FBaseValue", rsRec("FBaseValue")         '基数
        m_BillInterface.SetFieldValue "FMItem", rsRec("FNumber")                '物料
    End If
    m_BillInterface.SetFieldValue "FEID", lngFEntryID '结算标准分录内码
    
    Set rsRec = Nothing
End Sub

Private Sub m_BillInterface_AfterUnMultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal Success As Boolean)
    If lCheckLevel = lBusinessLevel Then
        m_BillInterface.K3Lib.UpdateData " exec IC_Sp_EditionItem @CheckType = -1, @EditionItemID = " & m_BillInterface.CurBillID
    End If
End Sub

Private Sub m_BillInterface_beforesave(bCancel As Boolean)
'判断输入的合法性:每一行的削价、折价和关联结算,只能选择一个
Dim iCurrRow As Long
Dim bFIsDiscount As Boolean
Dim bFIsReComp As Boolean
Dim bFIsCompItem As Boolean
Dim bFIsInvComp As Boolean
Dim iSelectCount As Integer

For iCurrRow = 1 To m_BillInterface.BillEntrys.Count
    bFIsDiscount = CBool(m_BillInterface.GetFieldValue("FIsDiscount", iCurrRow))
    bFIsReComp = CBool(m_BillInterface.GetFieldValue("FIsReComp", iCurrRow))
    bFIsInvComp = CBool(m_BillInterface.GetFieldValue("FIsInvComp", iCurrRow))
    bFIsCompItem = CBool(m_BillInterface.GetFieldValue("FIsCompItem", iCurrRow))
    
    iSelectCount = 0
    If bFIsDiscount Then iSelectCount = iSelectCount + 1
    If bFIsReComp Then iSelectCount = iSelectCount + 1
    If bFIsInvComp Then iSelectCount = iSelectCount + 1
    If bFIsCompItem Then iSelectCount = iSelectCount + 1
    
     If iSelectCount = 0 Then
        MsgBox "在第" & iCurrRow & "行," & vbCrLf & "价格结算、削价结算、折合品位和关联结算,必须选择一个!", vbOKOnly + vbInformation, "金蝶提示"
        bCancel = True
        Exit Sub
    End If
    
    If iSelectCount > 1 Then
        MsgBox "在第" & iCurrRow & "行," & vbCrLf & "价格结算、削价结算、折合品位和关联结算,只能选择一个!", vbOKOnly + vbInformation, "金蝶提示"
        bCancel = True
        Exit Sub
    End If
    
Next
End Sub

Private Sub m_ListInterface_AfterMultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal Success As Boolean)

   Dim DctCurRow As Dictionary
   Set DctCurRow = m_ListInterface.GetCurrentSelRowInfo()
   
    If lCheckLevel = lBusinessLevel Then
        m_ListInterface.K3Lib.UpdateData " exec IC_Sp_EditionItem @CheckType = 1, @EditionItemID = " & DctCurRow.GetValue("FID")
    End If
    
    
End Sub

Private Sub m_ListInterface_AfterUnMultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, ByVal Success As Boolean)
    Dim DctCurRow As Dictionary
    Set DctCurRow = m_ListInterface.GetCurrentSelRowInfo()
   
    If lCheckLevel = lBusinessLevel Then
        m_ListInterface.K3Lib.UpdateData " exec IC_Sp_EditionItem @CheckType = -1, @EditionItemID = " & DctCurRow.GetValue("FID")
    End If
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -