?? bos_wipe1bill_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_Wipe1Bill_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
'定義 BillEvent 接口. 必須具有的聲明, 以此來獲得事件
Private WithEvents m_BillInterface As BillEvent
Attribute m_BillInterface.VB_VarHelpID = -1
Dim iShowDepType As Integer
Dim tmpFloanItem As String
Public Sub Show(ByVal oBillInterface As Object)
'BillEvent 接口實現
'注意: 此方法必須存在, 請勿修改
Set m_BillInterface = oBillInterface
With m_BillInterface
.BillEntrys.Item(1).BOSFields("FWipeItem").Filter = "t_Account.FNumber like '4105%' or t_Account.FNumber like '55%' " 'ORDER BY substring(FNumber,1,1) desc"
.BillEntrys(1).BOSFields("FDivideDep").Visible = False
.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
'填寫單據頭的報銷總額--取報銷金額的總和--從分錄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
End With
End Sub
'
Private Sub m_BillInterface_AfterLoadBill()
'-------------------------------------------------------------------
'加載單據后,判斷標志,看是否顯示單據體里的分割部門
'-------------------------------------------------------------------
With m_BillInterface
If iShowDepType = 1 _
Or .GetFieldValue("FCheckDep", , Enu_ValueType_FFLD) = 1 Then
iShowDepType = 1
.BillEntrys(1).BOSFields("FDivideDep").Visible = True
.SetFieldValue "FCheckDep", 1
Else
iShowDepType = 0
.BillEntrys(1).BOSFields("FDivideDep").Visible = False
.SetFieldValue "FCheckDep", 0
End If
.BillEntrys(2).Visible = False
If .BillStatus = Enu_BillStatusExt_New Then
.BillCtl.DoSelBill 110000200
End If
End With
End Sub
Private Sub m_BillInterface_AfterNewBill()
With m_BillInterface
'-------------------------------------------------------------------
'新增單據后,取當前的預算方案編號
'-------------------------------------------------------------------
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
ShowDep iShowDepType
.BillEntrys(2).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
Dim bStatus As Boolean
bStatus = .MultiCheckMgr.CheckStarted
If bStatus = False Then bStatus = .MultiCheckMgr.MultiCheckBill(.Data("FID"))
End With
End Sub
'*********************************************************************
'選單后,向單據頭的 報銷金額付值 ,同時轉換為大寫
'*********************************************************************
Private Sub m_BillInterface_AfterSelBill(ByVal lSelBillType As Long)
With m_BillInterface
.SetFieldValue "FLoanAmtSum", m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FLoanAmt", "", 0))
.SetFieldValue "FWipeAmtSum", m_BillInterface.Sum(m_BillInterface.GetFieldInfoByKey("FWipeAmt", "", 0))
'將單據頭的報銷總額--轉換為大寫,將報銷總額轉化為大寫
.SetFieldValue "FCapitalAmtSum", PricetoChinese(.GetFieldValue("FWipeAmtSum"))
.SetFieldValue "FSupplyAmtSum", 0
.SetFieldValue "FRefundAmtSum", 0
.RefreshBill
ShowDep iShowDepType
End With
End Sub
'*********************************************************************
'保存前,進行報銷金額的判斷
'1 判斷在有選單的情況下,報銷項目是否與借款項目相同
'2 報銷金額是否大于預算余額
'*********************************************************************
Private Sub m_BillInterface_BeforeSave(bCancel As Boolean)
Dim sRet As String, bret As Boolean
Dim lBalanceAmt As Currency
Dim i As Integer
Dim lsum
Dim sErr As String
If getBudgetid = False Then
bCancel = True
Exit Sub
End If
With m_BillInterface
If .GetFieldValue("FWipeAmtSum") = 0 Then
bCancel = True
MsgBox "報銷金額不能為空!", vbOKOnly + vbExclamation, HINTINFO
Exit Sub
End If
If .GetFieldValue("FCheckDep") = 1 Then
'判斷在分割部門的情況下,分割分錄>1
If .Data("page2").Size < 2 Then
MsgBox "在選擇要分割部門時,請錄入超過一條以上的部門分割記錄!", vbOKOnly + vbInformation, HINTINFO
bCancel = True
Exit Sub
End If
End If
'判斷報銷項目是否與借款項目相等
'判斷所有借款方式 是否與支出方式相同
lsum = 0
For i = 1 To .Data("page2").Size
If Trim(.Data("Page2").Item(i)(.DataSrv.TableInfo("map")("FWipeItem"))("FFLD")) <> Trim(.Data("Page2").Item(i)(.DataSrv.TableInfo("map")("FLoanItem"))("FFLD")) And _
Trim(.Data("Page2").Item(i)(.DataSrv.TableInfo("map")("FLoanItem"))("FFLD")) <> "" Then
MsgBox "第" & CStr(i) & "行,“報銷項目”與選擇的借款單的“借款項目”不相同,不能保存!", vbOKOnly + vbInformation, HINTINFO
bCancel = True
Exit Sub
End If
If Trim(.Data("Page2").Item(i)(.DataSrv.TableInfo("map")("FLoanType"))("FFLD")) <> "" And _
Trim(.Data("Page2").Item(i)(.DataSrv.TableInfo("map")("FLoanType"))("FFLD")) <> Trim(.GetFieldValue("FWipetype", , Enu_ValueType_FFLD)) Then
MsgBox "第" & CStr(i) & "行,“借款方式”與整單的“支出方式”不相同,不能保存!", vbOKOnly + vbInformation, HINTINFO
bCancel = True
Exit Sub
End If
Next i
'進行報銷金額的判斷
If compareNum(lBalanceAmt, sRet) = False Then
sErr = sErr & vbCrLf & sRet
bCancel = True
End If
If sErr <> "" Then MsgBox sErr, vbOKOnly + vbInformation, HINTINFO
'判斷是否分割部門,是則將分割部門和分割金額寫到分錄4
.DeleteEntryData (3)
If .GetFieldValue("FCheckDep") = 1 Then
'
For i = 1 To .Data("page2").Size
.InsertNewRowAndFill 3, i, "FBase", .GetFieldValue("FDivideDep", i, Enu_ValueType_FFND)
.SetFieldValue "FAmount", .GetFieldValue("FWipeAmt", i), i
Next i
.BillEntrys(2).MaxRows = .Data("page2").Size
Else
ShowDep 0
End If
.BillEntrys(2).Visible = False
End With
End Sub
Private Sub m_BillInterface_BeginEdit(ByVal dct As KFO.IDictionary, ByVal Col As Long, ByVal Row As Long)
If Row > 0 Then
tmpFloanItem = Trim(m_BillInterface.GetFieldValue("FLoanItem", Row, Enu_ValueType_FDSP))
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -