clscpgb_gmz.cls

来自「这是一个基于金蝶K/3的磅秤插件源代码。安装本差价需要金蝶K/310.0以上的版」· CLS 代码 · 共 535 行 · 第 1/2 页

CLS
535
字号
VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "clsCPGB_GMZ"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
 Option Explicit
'定义 BillEvent 接口. 必须具有的声明, 以此来获得事件
Private WithEvents m_BillInterface  As BillEvent
Attribute m_BillInterface.VB_VarHelpID = -1
Private BZChange As Boolean
Private PZChange As Boolean
Dim gGrid  As Object
Dim IsFirstTime As Boolean

 
Public Sub Show(ByVal oBillInterface As Object)
 
    'BillEvent 接口实现
    '注意: 此方法必须存在, 请勿修改
    Set m_BillInterface = oBillInterface
    IsFirstTime = True
    ReDim arrayFp(1, 1) As String
End Sub

Private Sub Class_Terminate()
 
    '释放接口对象
    '注意: 此方法必须存在, 请勿修改
    Set m_BillInterface = Nothing

End Sub
Private Sub doLockCol()
    If isOK Then
        m_BillInterface.BillEntrys(1).BOSFields("FMaoZhong").FieldLock = False  '毛重
    
    Else
        m_BillInterface.BillEntrys(1).BOSFields("FMaoZhong").FieldLock = True  '毛重
    End If
    m_BillInterface.BillEntrys(1).BOSFields("FChePaiHao").FieldLock = True  '车牌号
    m_BillInterface.BillEntrys(1).BOSFields("FKeHu").FieldLock = True  '客户
    m_BillInterface.BillEntrys(1).BOSFields("FPiZhong").FieldLock = True  '皮重
    m_BillInterface.BillEntrys(1).BOSFields("FJingChangShiJian").FieldLock = True '进厂时间
    
    m_BillInterface.BillEntrys(1).BOSFields("FChuChangShiJian").FieldLock = True '出厂时间
    m_BillInterface.BillEntrys(1).BOSFields("FJingZhong").FieldLock = True '净重
End Sub


Private Function getTime() As Date
    On Error GoTo HERROR
    Dim Rt As ADODB.Recordset
    Set Rt = m_BillInterface.K3Lib.GetData("select getdate()")
    getTime = Rt.Fields(0).Value
    Rt.Close
    Set Rt = Nothing
    Exit Function
HERROR:
    MsgBox Err.Description, vbCritical
End Function

Private Sub m_BillInterface_AfterFillRow(ByVal lRow As Long, ByVal dctPage As KFO.IDictionary, ByVal dctEntryData As KFO.IDictionary, ByVal dctLink As KFO.IDictionary)
    doLockCol

End Sub


'Private Sub m_BillInterface_AfterInputBillSetSumData(ByVal dct As KFO.IDictionary, dbResult As Double)
'If dct("FFieldName") = "FJingZhong" Then
'    '过磅净重
'    If m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value <> dbResult Then
'        m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value = dbResult
'        BZChange = True
'    Else
'        BZChange = False
'
'    End If
'End If
'If dct("FFieldName") = "FZhongZhong" Then
'    '发票总重
'    If m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value <> dbResult Then
'        m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value = dbResult
'        PZChange = True
'    Else
'        PZChange = False
'    End If
'    If BZChange Or PZChange Then
'       ' 差异重量
'        If m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value = "" Then m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value = "0"
'        If m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value = "" Then m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value = "0"
'        If m_BillInterface.BillHeads(1).BOSFields("FChaYiZhongLiang").Value = "" Then m_BillInterface.BillHeads(1).BOSFields("FChaYiZhongLiang").Value = "0"
'        m_BillInterface.BillHeads(1).BOSFields("FChaYiZhongLiang").Value = m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value - m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value
'        '差异百分表
'        If m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value <> 0 Then
'            m_BillInterface.BillHeads(1).BOSFields("FChaYiBeiFengBi").Value = 100 * (m_BillInterface.BillHeads(1).BOSFields("FChaYiZhongLiang").Value / m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value)
'        End If
'    End If
'End If
'End Sub

Private Sub m_BillInterface_AfterLoadBill()
doLockCol
End Sub

'Private Sub m_BillInterface_AfterLoadBillSetSumData(ByVal dct As KFO.IDictionary, dbResult As Double)
'If dct("fcaption") = "净重" Then
'    '过磅净重
'    If m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value <> dbResult Then
'        m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value = dbResult
'        BZChange = True
'    Else
'        BZChange = False
'
'    End If
'End If
'If dct("fcaption") = "总重" Then
'    '发票总重
'    If m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value <> dbResult Then
'        m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value = dbResult
'        PZChange = True
'    Else
'        PZChange = False
'    End If
'    If BZChange Or PZChange Then
'        '差异重量
'        If m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value = "" Then m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value = "0"
'        If m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value = "" Then m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value = "0"
'        If m_BillInterface.BillHeads(1).BOSFields("FChaYiZhongLiang").Value = "" Then m_BillInterface.BillHeads(1).BOSFields("FChaYiZhongLiang").Value = "0"
'
'        m_BillInterface.BillHeads(1).BOSFields("FChaYiZhongLiang").Value = m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value - m_BillInterface.BillHeads(1).BOSFields("FGuoBangZhongLiang").Value
'        '差异百分表
'        If m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value <> 0 Then
'            m_BillInterface.BillHeads(1).BOSFields("FChaYiBeiFengBi").Value = 100 * (m_BillInterface.BillHeads(1).BOSFields("FChaYiZhongLiang").Value / m_BillInterface.BillHeads(1).BOSFields("FPiaoMiaoZhongLiang").Value)
'        End If
'    End If
'End If
'End Sub

Private Sub m_BillInterface_AfterNewBill()
m_BillInterface.BillHeads(1).BOSFields("FDate").Value = getTime
doLockCol

End Sub



Private Sub m_BillInterface_AfterSave(bCancel As Boolean)
'    On Error GoTo HERROR
'    Dim I As Integer
'
'        m_BillInterface.RefreshBill
'        If UBound(arrayFp, 2) <= 1 Then Exit Sub
'
'        For I = 0 To UBound(arrayFp, 1)
'
'            m_BillInterface.K3Lib.UpdateData ("update icsale set fheadselfi0541=" + CStr(m_BillInterface.BillHeads(1).BOSFields("FID").Value) + "  where finterid=" + arrayFp(I, 6))
'            DoEvents
'
'        Next I
'    doLockCol
'    Exit Sub
'HERROR:
'    MsgBox Err.Description, vbCritical
End Sub

Private Sub m_BillInterface_BeforeSave(bCancel As Boolean)
    On Error GoTo HERROR
    If strCEBFB = "" Then strCEBFB = "0"
    If Abs(CDbl(m_BillInterface.BillHeads(1).BOSFields("FChaYiBeiFengBi").Value)) > CDbl(strCEBFB) Then
        If Trim(m_BillInterface.BillHeads(1).BOSFields("FChaYiSuoMing").Value) = "" Then
            MsgBox "差额大于规定的差额百分比(" + strCEBFB + "),请填写差异说明!"
            bCancel = True
            Exit Sub
        End If
    
        If MsgBox("差额大于规定的差额百分比(" + strCEBFB + "),是否继续?", vbYesNo) = vbNo Then bCancel = True
    End If
    Exit Sub
HERROR:
    MsgBox Err.Description, vbCritical
End Sub




Private Sub m_BillInterface_BeginEdit(ByVal dct As KFO.IDictionary, ByVal Col As Long, ByVal Row As Long)
    Dim I, rCnt As Integer
    Dim sCph As Variant
    On Error Resume Next
    If IsFirstTime Then
        If TypeName(m_BillInterface.GetActiveCtl) = "fpSpread" Then
            Set gGrid = m_BillInterface.GetActiveCtl
            'gGrid.OperationMode = OperationModeRow
            IsFirstTime = False
        End If
    End If
    
    I = 1
    gGrid.GetText 9, I, sCph
    Do While sCph <> ""
        gGrid.SetText 8, I, ""
        I = I + 1
        gGrid.GetText 9, I, sCph
    Loop
    
    gGrid.GetText 9, Row, sCph
    
    If sCph <> "" Then gGrid.SetText 8, Row, "*"

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)

Dim dMaoZhong As Double
Dim dPiZhong As Double
Dim dctTemp As KFO.Dictionary
If dct("FFieldName") = "FMaoZhong" Then
'If Col = 13 Then
    
    '过磅净重
    dMaoZhong = m_BillInterface.BillEntrys(1).BOSFields("FMaoZhong").Value
    dPiZhong = m_BillInterface.BillEntrys(1).BOSFields("FPiZhong").Value
    m_BillInterface.BillEntrys(1).BOSFields("FJingZhong").Value = dMaoZhong - dPiZhong
    
    
    
    
    Set dctTemp = m_BillInterface.GetFieldInfoByKey("FJingZhong", "", 0)
    m_BillInterface.BillCtl.SetSumData dctTemp

End If

getHeadZhongLiang
End Sub

Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)
Dim strSql As String
Dim I As Integer
Dim J As Integer
Dim rowdata As String
Dim SumFp As Double
Dim dctTemp As KFO.Dictionary

    'TODO: 请在此处添加代码响应事件 MenuBarClick
 

         
    Select Case BOSTool.ToolName
    Case "butPZGB"
        '此处添加处理 butPZGB 菜单对象的 Click 事件
        doGetPZ
        
   
        
    Case "butJS"
        '此处添加处理 butPZGB 菜单对象的 Click 事件
        FrmPassword.Show 1
        doLockCol
    Case "butJIAS"
        '此处添加处理 butJIAS 菜单对象的 Click 事件
             isOK = False

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?