📄 bos_billamount.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_BillAmount"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'''''''''''''''''''''''''''''''''''''''''''''''
''应收应付单票据金额与实付金额控制
''建立日期:2005-08-15
''建立人:闫建学
'''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
'定义 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
'保存金额初值
Private Amount_First As Double
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_AfterSelBill(ByVal lSelBillType As Long)
''选单之后触发
On Error GoTo Errhandle
'回写所选的票据号
m_BillInterface.SetFieldValue "FContractNo", BillNumber
Exit Sub
Errhandle:
MsgBox err.Description, vbCritical, "金蝶提示"
End Sub
Private Sub m_BillInterface_beforesave(bCancel As Boolean)
''保存之前触发
On Error GoTo Errhandle
Dim S_Key As String
Dim L_Index As Long
''判断单据合计值与票据合计金额是否相付
If (m_BillInterface.GetFieldValue("fsettle", , 3) = "承兑汇票") And (Val(m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FBillAmount", S_Key, L_Index))) <> Val(Abs(m_BillInterface.GetFieldValue("FAmount")))) Then
MsgBox "当结算方式为'承兑汇票'时,票据合计金额不等于实付(收)金额!", , "金蝶提示"
bCancel = True
Exit Sub
End If
If (m_BillInterface.GetFieldValue("fsettle", , 3) <> "承兑汇票") And (Val(m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FBillAmount", S_Key, L_Index))) > 0) Then
MsgBox "当结算方式不为'承兑汇票'时,票据合计金额不能大于零!", , "金蝶提示"
bCancel = True
Exit Sub
End If
Exit Sub
Errhandle:
MsgBox err.Description, vbCritical, "金蝶提示"
End Sub
Private Sub m_BillInterface_BeforeSelBills(ByVal lSelBillType As Long, ByVal oDataSrv As Object, ByVal dctLink As Object, sFilter As String, dctParam As Object)
''选单之前触发
On Error GoTo Errhandle
'如果选的是票据,则选清空付款单等单据的单据体
If lSelBillType = 200000170 Then
m_BillInterface.DeleteEntryData 4
End If
Exit Sub
Errhandle:
MsgBox err.Description, vbCritical, "金蝶提示"
End Sub
Private Sub m_BillInterface_BeforeVerify(bCancel As Boolean)
'''更新单据金额合计值
On Error GoTo Errhandle
Dim S_Key As String
Dim L_Index As Long
'回写单据头合计金额
m_BillInterface.SetFieldValue "FAmountFor", m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FSettleAmountFor_3", S_Key, L_Index))
Exit Sub
Errhandle:
MsgBox err.Description, vbCritical, "金蝶提示"
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -