?? bos_rpcontract.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_RPContract"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'''''''''''''''''''''''''''''''''''''''''''''''
''應付合同修改
''建立日期:2005-09-28
''建立人:倪樹祥
'''''''''''''''''''''''''''''''''''''''''''''''''
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
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_AfterLoadBill()
AdjustPosition
End Sub
Private Sub m_BillInterface_AfterNewBill()
AdjustPosition
End Sub
Private Sub AdjustPosition()
'調整自定義字段的位置,抵消第一個插件的影響
'部門
m_BillInterface.BillHeads(1).BOSFields("FDepartment").FieldTop = 5325
m_BillInterface.BillHeads(1).BOSFields("FDepartment").FieldLeft = 235
'業務員
m_BillInterface.BillHeads(1).BOSFields("FEmployee").FieldTop = 5325
m_BillInterface.BillHeads(1).BOSFields("FEmployee").FieldLeft = 2318
'科長
m_BillInterface.BillHeads(1).BOSFields("FDeptChecker").FieldTop = 5325
m_BillInterface.BillHeads(1).BOSFields("FDeptChecker").FieldLeft = 4328
'部長
m_BillInterface.BillHeads(1).BOSFields("FMainChecker").FieldTop = 5325
m_BillInterface.BillHeads(1).BOSFields("FMainChecker").FieldLeft = 6165
'主管經理
m_BillInterface.BillHeads(1).BOSFields("FSubChair").FieldTop = 5325
m_BillInterface.BillHeads(1).BOSFields("FSubChair").FieldLeft = 7875
'制單人
m_BillInterface.BillHeads(1).BOSFields("FBillerID").FieldTop = 5325
m_BillInterface.BillHeads(1).BOSFields("FBillerID").FieldLeft = 10163
'第二條:質量標準
m_BillInterface.BillHeads(1).BOSFields("FCompDetails").FieldTop = 5625
'第三條:包裝
m_BillInterface.BillHeads(1).BOSFields("FPackage").FieldTop = 6345 '120 + m_BillInterface.BillHeads(1).BOSFields("FCompDetails").FieldTop + m_BillInterface.BillHeads(1).BOSFields("FCompDetails").FieldHeight
'第四條:檢驗
m_BillInterface.BillHeads(1).BOSFields("FTest").FieldTop = 6795 '120 + m_BillInterface.BillHeads(1).BOSFields("FPackage").FieldTop + m_BillInterface.BillHeads(1).BOSFields("FPackage").FieldHeight
'第五條:運輸
m_BillInterface.BillHeads(1).BOSFields("FTrans").FieldTop = 7290 ' 120 + m_BillInterface.BillHeads(1).BOSFields("FTest").FieldTop + m_BillInterface.BillHeads(1).BOSFields("FTest").FieldHeight
'第六條:結算
m_BillInterface.BillHeads(1).BOSFields("FPayment").FieldTop = 7815 '120 + m_BillInterface.BillHeads(1).BOSFields("FTrans").FieldTop + m_BillInterface.BillHeads(1).BOSFields("FTrans").FieldHeight
'第七條:交貨
m_BillInterface.BillHeads(1).BOSFields("FArrPlace").FieldTop = 8295 '120 + m_BillInterface.BillHeads(1).BOSFields("FPayment").FieldTop + m_BillInterface.BillHeads(1).BOSFields("FPayment").FieldHeight
'第八條:其它約定
m_BillInterface.BillHeads(1).BOSFields("FOtherMsg").FieldTop = 8820 '120 + m_BillInterface.BillHeads(1).BOSFields("FArrPlace").FieldTop + m_BillInterface.BillHeads(1).BOSFields("FArrPlace").FieldHeight
End Sub
Private Sub m_BillInterface_AfterSave(bCancel As Boolean)
AdjustPosition
End Sub
Private Sub m_BillInterface_AfterSelBill(ByVal lSelBillType As Long)
'如果選擇的是中標記錄,則需要進行單位,單價的轉化
Dim dblFSPrice As Double
Dim iCurrRow As Integer
Dim dblFQuantity As Double
Dim dblFTaxRate As Double
Dim dblFTaxPrice As Double
On Error GoTo DealEnd
If lSelBillType = 200000139 Then
For iCurrRow = 1 To m_BillInterface.BillCtl.Data("page3").Size
dblFSPrice = m_BillInterface.GetFieldValue("FSourcePrice", iCurrRow)
dblFTaxPrice = m_BillInterface.GetFieldValue("FTaxPriceFor", iCurrRow)
dblFQuantity = m_BillInterface.GetFieldValue("FQuantity", iCurrRow)
dblFTaxRate = m_BillInterface.GetFieldValue("FTaxRate", iCurrRow)
If dblFSPrice > dblFTaxPrice Then
m_BillInterface.SetFieldValue "FTaxPriceFor", dblFSPrice, iCurrRow
m_BillInterface.SetFieldValue "FPriceFor", dblFSPrice / (100 + dblFTaxRate) * 100, iCurrRow
m_BillInterface.SetFieldValue "FPrice", dblFSPrice / (100 + dblFTaxRate) * 100, iCurrRow
m_BillInterface.SetFieldValue "FAmountIncludeTaxFor", dblFSPrice * dblFQuantity, iCurrRow
m_BillInterface.SetFieldValue "FAmountIncludeTax", dblFSPrice * dblFQuantity, iCurrRow
m_BillInterface.SetFieldValue "FTaxFor", dblFSPrice * (1 - 1 / (100 + dblFTaxRate) * 100) * dblFQuantity, iCurrRow
m_BillInterface.SetFieldValue "FTax", dblFSPrice * (1 - 1 / (100 + dblFTaxRate) * 100) * dblFQuantity, iCurrRow
m_BillInterface.SetFieldValue "FAmount", dblFQuantity * dblFSPrice / (100 + dblFTaxRate) * 100, iCurrRow
m_BillInterface.SetFieldValue "FAmountFor3", dblFQuantity * dblFSPrice / (100 + dblFTaxRate) * 100, iCurrRow
iCurrRow = iCurrRow + 1
End If
Next
End If
DealEnd:
End Sub
Private Sub m_BillInterface_Change(ByVal dct As KFO.IDictionary, ByVal dctFld As KFO.IDictionary, ByVal Col As Long, ByVal Row As Long, Cancel As Boolean)
If UCase(dct.Value("FFieldName")) = UCase("FDetail") Then
AdjustPosition
Exit Sub
End If
End Sub
'控制沒有經過科長審核的合同,不允許打印
Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)
Dim sFDeptChecker As String
Select Case BOSTool.ToolName
Case "mnuFilePreview", "mnuFilePrint" '預覽'打印
sFDeptChecker = m_BillInterface.GetFieldValue("FDeptChecker")
If sFDeptChecker = "" Then
MsgBox "當前合同沒有審核!", vbCritical + vbOKOnly, "金蝶提示"
Cancel = True
End If
Case Else
End Select
End Sub
Private Sub m_BillInterface_MultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, bSendCheckMessage As Boolean, bSendAcceptMessage As Boolean, sMessageTitle As String, sMessage As String, Cancel As Boolean)
UpdateChecker 1, lCheckLevel
m_BillInterface.RefreshBill
End Sub
Private Sub m_BillInterface_UnMultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckStatus As Long, ByVal lLastCheckFrom As Long, ByVal lLastCheckTo As Long, bSendMessage As Boolean, Cancel As Boolean)
UpdateChecker 2, lLastCheckTo
m_BillInterface.RefreshBill
End Sub
Private Sub m_ListInterface_MultiCheck(ByVal lCheckMode As Long, ByVal lCheckMaxLevel As Long, ByVal lBusinessLevel As Long, ByVal lCheckLevel As Long, ByVal lCheckStatus As Long, bSendCheckMessage As Boolean, bSendAcceptMessage As Boolean, sMessageTitle As String, sMessage As String, Cancel As Boolean)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -