📄 clslistinvoce.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 + -