📄 bos_editionitem.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 + -