⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clslistinvoce.cls

📁 金算盘软件代码
💻 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 = "clsListRePa"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False

Private intFormType As Integer
Private WithEvents mfrmRePa As frmAListTemplate '模版窗体
Attribute mfrmRePa.VB_VarHelpID = -1
Private mclsListMethod As clsListMethod         '接口类
Private frmEdit As Form                         '接口窗体
Private blnIsVoid    As Boolean                 '是否已作废
Private blnIsInvoice As Boolean                 '开票标志
Private blnChange As Boolean                    '只能编辑和删除自己制作的单据
Private mblnFinish As Boolean
Private mIsShowEdit As Boolean
Private clsListType As String
Public Function SetListType(ByVal strList As String)
    mfrmRePa.strListType = strList
    clsListType = strList
End Function
Private Sub cMsgBox(strMsg As String, Optional strTitle As String)
    If Trim(strTitle) = "" Then
        strTitle = "提示信息"
    End If

    ShowMsg mfrmRePa.hWnd, strMsg, MB_OK + MB_ICONEXCLAMATION + MB_SYSTEMMODAL, strTitle
End Sub
Private Sub Class_Initialize()
    Set mfrmRePa = New frmAListTemplate
    mfrmRePa.blnReceptionList = True
    intFormType = GetListType
    mfrmRePa.Tabs = 1
    Select Case intFormType
        Case 1
            mfrmRePa.mTitle = "应收单列表"
            mfrmRePa.mHelpID = 60001
            mfrmRePa.SpViewID(0) = 20
            mfrmRePa.blnEditByRight(0) = IsCanDo(frmRightsID.frmInvoiceListID, gclsBase.OperatorID)
            If IsCanDo(250, gclsBase.OperatorID) Then
                mfrmRePa.SpWhere(0) = " Activity.lngActivityTypeID In (36,37,38) AND ActivityDetail.blnIsReceipt=1"
            Else
                mfrmRePa.SpWhere(0) = " Activity.lngActivityTypeID In (36,37,38) AND ActivityDetail.blnIsReceipt=1" & " And Activity.lngOperatorID=" & gclsBase.OperatorID
            End If
            mfrmRePa.SpPrintID(0) = 46
            mfrmRePa.SpPrintTitle(0) = "应收单列表" & Chr(1) & gclsBase.BaseName & Chr(1) & gclsBase.OperatorName
            mfrmRePa.blnIsHavingReport = True
            mfrmRePa.ReportCount = 2
            mfrmRePa.ReportName(0) = "应收余额表(&Y)"
            mfrmRePa.ReportName(1) = "应收明细表(&B)"
        Case 2
            mfrmRePa.mTitle = "应付单列表"
            mfrmRePa.mHelpID = 60003
            mfrmRePa.SpViewID(0) = 21
            mfrmRePa.blnEditByRight(0) = IsCanDo(frmRightsID.frmPayableListID, gclsBase.OperatorID)
            If IsCanDo(251, gclsBase.OperatorID) Then
                mfrmRePa.SpWhere(0) = " Activity.lngActivityTypeID In (34,35) AND ActivityDetail.blnIsReceipt=1"
            Else
                mfrmRePa.SpWhere(0) = " Activity.lngActivityTypeID In (34,35) AND ActivityDetail.blnIsReceipt=1" & " And Activity.lngOperatorID=" & gclsBase.OperatorID
            End If
            mfrmRePa.SpPrintID(0) = 47
            mfrmRePa.SpPrintTitle(0) = "应付单列表" & Chr(1) & gclsBase.BaseName & Chr(1) & gclsBase.OperatorName
            mfrmRePa.blnIsHavingReport = True
            mfrmRePa.ReportCount = 2
            mfrmRePa.ReportName(0) = "应付余额表(&Y)"
            mfrmRePa.ReportName(1) = "应付明细表(&B)"
        Case 3
            mfrmRePa.mTitle = "收款单列表"
            mfrmRePa.mHelpID = 60006
            mfrmRePa.SpViewID(0) = 22
            mfrmRePa.blnEditByRight(0) = IsCanDo(frmRightsID.frmReceiveListID, gclsBase.OperatorID)
            If IsCanDo(252, gclsBase.OperatorID) Then
                mfrmRePa.SpWhere(0) = "Activity.lngActivityTypeID =40 AND ActivityDetail.blnIsReceipt=1 And Activity.blnIsSpecial=0 "
            Else
                mfrmRePa.SpWhere(0) = "Activity.lngActivityTypeID =40 AND ActivityDetail.blnIsReceipt=1 And Activity.blnIsSpecial=0 " & " And Activity.lngOperatorID=" & gclsBase.OperatorID
            End If
            mfrmRePa.SpPrintID(0) = 48
            mfrmRePa.SpPrintTitle(0) = "收款单列表" & Chr(1) & gclsBase.BaseName & Chr(1) & gclsBase.OperatorName
            mfrmRePa.blnIsHavingReport = True
            mfrmRePa.ReportCount = 2
            mfrmRePa.ReportName(0) = "收款汇总表(&T)"
            mfrmRePa.ReportName(1) = "收款明细表(&B)"
        Case 4
            mfrmRePa.mTitle = "付款单列表"
            mfrmRePa.mHelpID = 60008
            mfrmRePa.SpViewID(0) = 23
            mfrmRePa.blnEditByRight(0) = IsCanDo(frmRightsID.frmPaymentListID, gclsBase.OperatorID)
            If IsCanDo(253, gclsBase.OperatorID) Then
                mfrmRePa.SpWhere(0) = " Activity.lngActivityTypeID =39 AND ActivityDetail.blnIsReceipt=1 And Activity.blnIsSpecial=0"
            Else
                mfrmRePa.SpWhere(0) = " Activity.lngActivityTypeID =39 AND ActivityDetail.blnIsReceipt=1 And Activity.blnIsSpecial=0 " & " And Activity.lngOperatorID=" & gclsBase.OperatorID
            End If
            mfrmRePa.SpPrintID(0) = 49
            mfrmRePa.SpPrintTitle(0) = "付款单列表" & Chr(1) & gclsBase.BaseName & Chr(1) & gclsBase.OperatorName
            mfrmRePa.blnIsHavingReport = True
            mfrmRePa.ReportCount = 2
            mfrmRePa.ReportName(0) = "付款汇总表(&T)"
            mfrmRePa.ReportName(1) = "付款明细表(&B)"
    End Select
    mfrmRePa.SpSelect(0) = "Activity.lngActivityID As id,decode(Activity.blnIsVoid,1,'√',' ') As ""作废"""
    mfrmRePa.ShowAll(0) = "  Activity.blnIsVoid=0"
    mfrmRePa.blnIsReceptionWriteoff = True
    mfrmRePa.MenuEnbaleOnPage(0) = 3
    mfrmRePa.MenuEnbaleOnPage(1) = 3
    mfrmRePa.MenuEnbaleOnPage(2) = 3
    mfrmRePa.MenuEnbaleOnPage(3) = 3
    mfrmRePa.MenuEnbaleOnPage(4) = 3
    mfrmRePa.MenuEnbaleOnPage(5) = 3
    mfrmRePa.MenuEnbaleOnPage(6) = 3
    mfrmRePa.MenuEnbaleOnPage(7) = 3
End Sub

Public Function Showlist()
    mfrmRePa.Show
    mfrmRePa.ZOrder 0
    Set mclsListMethod = New clsListMethod
    mclsListMethod.SethWnd mfrmRePa.hWnd
    Select Case intFormType
        Case 1
            mclsListMethod.theType = 3 '应收单
            Set frmEdit = FrmInvoice
        Case 2
            mclsListMethod.theType = 4 '应付单
            Set frmEdit = FrmPayable
        Case 3
            mclsListMethod.theType = 1  '收款单
            Set frmEdit = FrmReceive
        Case 4
            mclsListMethod.theType = 2  '付款单
            Set frmEdit = FrmPayment
    End Select
End Function

Private Sub mfrmRePa_ListChildActive()
    Dim vntMessage As Variant
    For Each vntMessage In mfrmRePa.mclsMainControl.Messages
        Select Case intFormType
            Case 1
                If vntMessage = Message.msgReceipt36 Or vntMessage = Message.msgReceipt37 Or vntMessage = Message.msgReceipt38 Then
                    mfrmRePa.ToolRefresh
                    mfrmRePa.mclsMainControl.Messages.Remove CStr(vntMessage) '清除消息
                End If
            Case 2
                If vntMessage = Message.msgReceipt34 Or vntMessage = Message.msgReceipt35 Then
                    mfrmRePa.ToolRefresh
                    mfrmRePa.mclsMainControl.Messages.Remove CStr(vntMessage) '清除消息
                End If
            Case 3
                If vntMessage = Message.msgReceipt40 Then
                    mfrmRePa.ToolRefresh
                    mfrmRePa.mclsMainControl.Messages.Remove CStr(vntMessage) '清除消息
                End If
            Case 4
                If vntMessage = Message.msgReceipt39 Then
                    mfrmRePa.ToolRefresh
                    mfrmRePa.mclsMainControl.Messages.Remove CStr(vntMessage) '清除消息
                End If
        End Select
    Next
    mfrmRePa.mclsMainControl.Messages.Clear
End Sub

Private Sub mfrmRePa_ListDel()
    Dim lngActivityID As Long
    lngActivityID = mfrmRePa.ListID
    If lngActivityID = 0 Then Exit Sub
    If Not GetItemStatus(lngActivityID) Then Exit Sub
    If mIsShowEdit Then
        If lngActivityID = frmEdit.getID Then
            cMsgBox "不能删除当前编辑的单据!"
            Exit Sub
        End If
    End If
    If Not blnChange Then
        cMsgBox "不能删除由他人制作的单据!"
        Exit Sub
    End If
    If Not mclsListMethod.DeleteRow(lngActivityID) Then Exit Sub
    mfrmRePa.ToolRefresh
End Sub

Private Sub mfrmRePa_ListEdite()
    Dim lngActivityID As Long
    
    lngActivityID = mfrmRePa.ListID
    If lngActivityID = -1 Then Exit Sub
    If mIsShowEdit Then
        frmEdit.ShowAOldBill (lngActivityID) '调用接口
    Else
        mIsShowEdit = True
        frmEdit.ShowAOldBill (lngActivityID) '调用接口
    End If
End Sub

Private Sub mfrmRePa_oListInActive()
    Dim lngActivityID As Long
    lngActivityID = mfrmRePa.ListID
    If lngActivityID = 0 Then Exit Sub
    If mfrmRePa.IsInActive Then Exit Sub
    
    If Not GetItemStatus(lngActivityID) Then Exit Sub
    If Not blnChange Then
        cMsgBox "不能作废由他人制作的单据!"
        Exit Sub
    End If
    If Not mclsListMethod.ChangeVoid(lngActivityID) Then Exit Sub
    mfrmRePa.ToolRefresh
End Sub

Private Sub mfrmRePa_ListInActive(blnLevel As Boolean, blnSuceess As Boolean)
    Dim lngActivityID As Long
    
    blnLevel = False
    blnSuceess = False
    lngActivityID = mfrmRePa.ListID
    If lngActivityID = 0 Then Exit Sub
    If mfrmRePa.IsInActive Then Exit Sub
    
    If Not GetItemStatus(lngActivityID) Then Exit Sub
    If Not blnChange Then
        cMsgBox "不能作废由他人制作的单据!"
        Exit Sub
    End If
    If Not mclsListMethod.ChangeVoid(lngActivityID) Then Exit Sub
    'mfrmRePa.ToolRefresh
    blnSuceess = True
End Sub

Private Sub mfrmRePa_ListNew()
    If mIsShowEdit Then
        frmEdit.ShowANewBill
    Else
        frmEdit.ShowANewBill
        mIsShowEdit = True
    End If
End Sub

Private Sub mfrmRePa_ListPrintReceipt()
    frmPrintReceipt.ShowfrmPrintReceipt 24 + intFormType
End Sub

Private Sub mfrmRePa_ListReorpt(ByVal Index As Integer)
    Select Case Index
        Case 0
            Select Case intFormType
                Case 1
                    Report.ShowBalance 1420, 638 '1723, 638
                Case 2
                    Report.ShowBalance 1421, 639
                Case 3
                    If gclsBase.ControlAccount Then
                       Report.ShowSumReport 1306, 572
                    Else
                       Report.ShowSumReport 1702, 1017
                    End If
                Case 4
                    If gclsBase.ControlAccount Then
                       Report.ShowSumReport 1307, 1149
                    Else
                       Report.ShowSumReport 1704, 1019
                    End If
            End Select
    Case 1
        Select Case intFormType
            Case 1
                If gclsBase.ControlAccount Then
                   Report.ShowStandardReport 254, 212
                Else
                   Report.ShowStandardReport 1694, 1008
                End If
            Case 2
                If gclsBase.ControlAccount Then
                   Report.ShowStandardReport 256, 214
                Else
                   Report.ShowStandardReport 1699, 1012
                End If
            Case 3
                If gclsBase.ControlAccount Then
                   Report.ShowStandardReport 1412, 634
                Else
                   Report.ShowStandardReport 1701, 1015
                End If
            Case 4
                If gclsBase.ControlAccount Then
                   Report.ShowStandardReport 1411, 635
                Else
                   Report.ShowStandardReport 1703, 1018
                End If
        End Select
     End Select
End Sub

Private Sub mfrmRePa_ListShowAll()
    With mfrmRePa
        If .chkShowall = 0 Then
            .ShowAll(0) = " Activity.blnIsVoid=0"
        Else
            .ShowAll(0) = ""
        End If
        .ToolRefresh
    End With
End Sub

Private Sub mfrmRePa_ListUserMenu(ByVal Index As Integer)
    If mfrmRePa.blnIsReceptionWriteoff Then
        If Index = 4 Then
            Dim lngTypeID As Long
            lngTypeID = frmWriteOffBill.WriteOffBill(Choose(intFormType, 36, 34, 40, 39), mfrmRePa.ListID, mfrmRePa.hWnd)
            If lngTypeID > 0 Then ShowBill1 Choose(intFormType, 36, 34, 40, 39), lngTypeID, True
        End If
    End If
End Sub

Private Function GetItemStatus(lngActivityID As Long) As Boolean
    Dim recTemp As rdoResultset
    Dim strSql As String
    strSql = "SELECT Activity.lngVoucherID, Activity.lngOperatorID From Activity" _
            & " WHERE (Activity.lngActivityID)=" & lngActivityID
    Set recTemp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenForwardOnly)
    If recTemp.BOF And recTemp.EOF Then Exit Function
    If gclsBase.OperatorID = recTemp(1) Then
        blnChange = True
    Else
        blnChange = False
    End If
    GetItemStatus = True
End Function

'告诉列表:编辑窗口已关闭
Public Sub IAmCLosed()
    mIsShowEdit = False
End Sub


⌨️ 快捷键说明

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