?? bos_wipe3bill_plugins.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_Wipe3Bill_PlugIns"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Attribute VB_Description = "This is BillEvent Interface Class, made by K3BOSPLUGINSWIZAED"
Option Explicit
Dim iRet As Integer
'定義 BillEvent 接口. 必須具有的聲明, 以此來獲得事件
Private WithEvents m_BillInterface As BillEvent
Attribute m_BillInterface.VB_VarHelpID = -1
Dim iShowDepType As Integer
Dim iSelBill As Integer
Dim tmpFloanItem As String
Public Sub Show(ByVal oBillInterface As Object)
'BillEvent 接口實現
'注意: 此方法必須存在, 請勿修改
Set m_BillInterface = oBillInterface
With m_BillInterface
.BillEntrys.Item(3).BOSFields("FWipeItem").Filter = "t_Account.FNumber like '4105%' or t_Account.FNumber like '55%' " 'ORDER BY substring(FNumber,1,1) desc"
.BillHeads.Item(1).BOSFields("FWipeItemSum").Filter = "t_Account.FNumber like '4105%' or t_Account.FNumber like '55%' " 'ORDER BY substring(FNumber,1,1) desc"
iShowDepType = 0
.RefreshBill
End With
End Sub
Private Sub Class_Terminate()
'釋放接口對象
'注意: 此方法必須存在, 請勿修改
Set m_BillInterface = Nothing
End Sub
Private Sub m_BillInterface_AfterDeleteRow(ByVal Index As Long, ByVal lRow As Long)
With m_BillInterface
'-------------------------------------------------------------------
'刪除單據體2中的一行
'-------------------------------------------------------------------
If Index = 1 Then
'第二個單據體
.DeleteEntryData (3)
' .BillEntrys(2).MaxRows = 6
.InsertNewRowAndFill 3, 1, "FChargeType", "市內交通費"
.InsertNewRowAndFill 3, 2, "FChargeType", "住宿費"
.InsertNewRowAndFill 3, 3, "FChargeType", "業務招待費"
.InsertNewRowAndFill 3, 4, "FChargeType", "會務費"
.InsertNewRowAndFill 3, 5, "FChargeType", "硬座補貼"
.InsertNewRowAndFill 3, 6, "FChargeType", "其他"
MsgBox "其他費用中的項目是固定的不能刪除或新增!", vbOKOnly + vbExclamation, HINTINFO
.RefreshBill
' '-------------------------------------------------------------------
' '刪除單據體3中的一行
' '-------------------------------------------------------------------
ElseIf Index = 2 Then
'更新借款金額
' '填寫單據頭的報銷總額--取報銷金額的總和--從分錄1中取報銷金額的總和
' .SetFieldValue "FWipeAmtSum", m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FWipeAmt", "", 0))
'填寫單據頭的總額借款--取借款金額的總和--從分錄1中取報銷金額的總和
.SetFieldValue "FLoanAmtSum", m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FLoanAmt", "", 0))
' '將單據頭的報銷總額--轉換為大寫,將報銷總額轉化為大寫
' .SetFieldValue "FCapitalAmtSum", PricetoChinese(.GetFieldValue("FWipeAmtSum"))
'填寫單據頭的--取補領金額 和 退還金額
If .GetFieldValue("FWipeAmtSum") - .GetFieldValue("FLoanAmtSum") > 0 Then '報銷金額 大于 借款金額
.SetFieldValue "FSupplyAmtSum", .GetFieldValue("FWipeAmtSum") - .GetFieldValue("FLoanAmtSum")
.SetFieldValue "FRefundAmtSum", 0
ElseIf .GetFieldValue("FWipeAmtSum") - .GetFieldValue("FLoanAmtSum") < 0 Then '報銷金額 小于 借款金額
.SetFieldValue "FRefundAmtSum", .GetFieldValue("FLoanAmtSum") - .GetFieldValue("FWipeAmtSum")
.SetFieldValue "FSupplyAmtSum", 0
Else
.SetFieldValue "FSupplyAmtSum", 0
.SetFieldValue "FRefundAmtSum", 0
End If
ElseIf Index = 0 Then
'填寫單據頭的報銷總額--取報銷金額的總和--從分錄1中取報銷金額的總和
.SetFieldValue "FWipeAmtSum", m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FTraAmt", "", 0)) + _
m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FSubsidyAmt", "", 0)) + _
m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FChargeAmt", "", 0))
'沒有分割部門時,將報銷總額付值給分錄3的第一行
If .GetFieldValue("FCheckDep", , Enu_ValueType_FFLD) = 0 Then
.SetFieldValue "FWipeAmt", .GetFieldValue("FWipeAmtSum"), 1
End If
'將單據頭的報銷總額--轉換為大寫,將報銷總額轉化為大寫
'填寫單據頭的總額借款--取借款金額的總和--從分錄1中取報銷金額的總和
.SetFieldValue "FLoanAmtSum", m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FLoanAmt", "", 0))
'將單據頭的報銷總額--轉換為大寫,將報銷總額轉化為大寫
.SetFieldValue "FCapitalAmtSum", PricetoChinese(.GetFieldValue("FWipeAmtSum"))
'填寫單據頭的--取補領金額 和 退還金額
If .GetFieldValue("FWipeAmtSum") - .GetFieldValue("FLoanAmtSum") > 0 Then '報銷金額 大于 借款金額
.SetFieldValue "FSupplyAmtSum", .GetFieldValue("FWipeAmtSum") - .GetFieldValue("FLoanAmtSum")
.SetFieldValue "FRefundAmtSum", 0
ElseIf .GetFieldValue("FWipeAmtSum") - .GetFieldValue("FLoanAmtSum") < 0 Then '報銷金額 小于 借款金額
.SetFieldValue "FRefundAmtSum", .GetFieldValue("FLoanAmtSum") - .GetFieldValue("FWipeAmtSum")
.SetFieldValue "FSupplyAmtSum", 0
Else
.SetFieldValue "FSupplyAmtSum", 0
.SetFieldValue "FRefundAmtSum", 0
End If
End If
End With
End Sub
Private Sub m_BillInterface_AfterLoadBill()
'-------------------------------------------------------------------
'加載單據后,判斷標志,看是否顯示單據體里的分割部門
'-------------------------------------------------------------------
Dim i As Long
With m_BillInterface
.BillEntrys(4).Visible = False
If iShowDepType = 1 Or .GetFieldValue("FCheckDep", , Enu_ValueType_FFLD) = 1 Then
iShowDepType = 1
.BillEntrys(3).Visible = True
.SetFieldValue "FCheckDep", 1
Else
iShowDepType = 0
.BillEntrys(3).Visible = False
.SetFieldValue "FCheckDep", 0
End If
For i = 1 To .Data("Page4").Size
If Trim(.GetFieldValue("FLoanItem", i, Enu_ValueType_FDSP)) <> "" Then
iSelBill = 1
End If
Next i
If iSelBill <> 1 Then iSelBill = 0
End With
End Sub
Private Sub m_BillInterface_AfterNewBill()
'-------------------------------------------------------------------
'新增單據后,為第二個單據體付值
'-------------------------------------------------------------------
With m_BillInterface
'第二個單據體
.DeleteEntryData (3)
' .BillEntrys(2).MaxRows = 6
.InsertNewRowAndFill 3, 1, "FChargeType", "市內交通費"
.InsertNewRowAndFill 3, 2, "FChargeType", "住宿費"
.InsertNewRowAndFill 3, 3, "FChargeType", "業務招待費"
.InsertNewRowAndFill 3, 4, "FChargeType", "會務費"
.InsertNewRowAndFill 3, 5, "FChargeType", "硬座補貼"
.InsertNewRowAndFill 3, 6, "FChargeType", "其他"
.RefreshBill
'-------------------------------------------------------------------
'新增單據后,取當前的預算方案編號
'-------------------------------------------------------------------
Dim rs As New ADODB.Recordset
Set rs = .K3Lib.GetData("select FProjectID,FName from t_mgBudgetSet where fexec=1")
If rs.State = adStateOpen And rs.RecordCount > 0 Then
.SetFieldValue "FBudgetScheme", rs("FName")
lBudgetProjectID = rs("FProjectID")
Else
MsgBox "當前沒有正在執行的預算!", vbOKOnly + vbExclamation, HINTINFO
lBudgetProjectID = 0
End If
'-------------------------------------------------------------------
'新增單據后,分割部門隱藏
'-------------------------------------------------------------------
iShowDepType = 0
iSelBill = 0
ShowDep iShowDepType
.BillEntrys(4).Visible = False
'-------------------------------------------------------------------
'新增單據后,彈出選單窗口
'-------------------------------------------------------------------
If .BillStatus = Enu_BillStatusExt_New Then
.BillCtl.DoSelBill 110000200
End If
End With
End Sub
Private Sub m_BillInterface_AfterSave(bCancel As Boolean)
With m_BillInterface
If .Data("PAGE2").Size > .Data("PAGE3").Size Then
Dim sSql As String
Dim i As Long
For i = 7 To .Data("PAGE2").Size
sSql = "insert into t_EP_ER_WipeOff3Entry2(fid,FIndex,FChargeType,FChargeNUm,FChargeAmt) values(" & _
.CurBillID & "," & i & "," & "'',0,0)"
.K3Lib.UpdateData sSql
Next i
ElseIf .Data("PAGE3").Size > 6 And .Data("PAGE2").Size < .Data("PAGE3").Size Then
For i = .Data("PAGE3").Size To (.Data("PAGE2").Size + 1) Step -1
If i > 6 Then
sSql = "delete from t_EP_ER_WipeOff3Entry2 where fid = " & .CurBillID & " and FIndex =" & i
.K3Lib.UpdateData sSql
End If
Next i
End If
.RefreshBill
'自動啟動審核
Dim bStatus As Boolean
bStatus = .MultiCheckMgr.CheckStarted
If bStatus = False Then bStatus = .MultiCheckMgr.MultiCheckBill(.Data("FID"))
End With
End Sub
'*********************************************************************
'選單后,為分錄3付值,并向單據頭的 報銷金額付值 ,同時轉換為大寫
'*********************************************************************
Private Sub m_BillInterface_AfterSelBill(ByVal lSelBillType As Long)
m_BillInterface.DeleteEntryData (3)
With m_BillInterface
'第二個單據體
.DeleteEntryData (3)
'' .BillEntrys(2).MaxRows = 6
.InsertNewRowAndFill 3, 1, "FChargeType", "市內交通費"
.InsertNewRowAndFill 3, 2, "FChargeType", "住宿費"
.InsertNewRowAndFill 3, 3, "FChargeType", "業務招待費"
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -