📄 clsinvoice.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "clsInvoice"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Option Explicit
Const FLD_VENNUMBER = 1
Const FLD_INVNUMBER = 2
Const FLD_DATE = 3
Const FLD_AMOUNT = 4
Private mintVendorNumber As Integer
Private mstrInvoiceNumber As String
Private mdatDate As Date
Private mcurAmount As Currency
Private mstrDelimitedString As String
Property Let DelimitedString(strInput As String)
Dim strDelimiter As String
Dim intEnd As Integer, intField As Integer, intStart As Integer
Dim I As Integer
Dim strTextNumber As String
strDelimiter = Chr$(9): mstrDelimitedString = strInput
intStart = 1: intField = 1
Do
intEnd = InStr(intStart, strInput, strDelimiter)
If intEnd = 0 Then intEnd = Len(strInput) + 1
Select Case intField
Case 1
strTextNumber = ExtractField(intStart, intEnd)
If IsNumeric(strTextNumber) Then
If strTextNumber >= 1 And strTextNumber <= 32767 Then
mintVendorNumber = Val(strTextNumber)
Else
mintVendorNumber = 0
End If
Else
mintVendorNumber = 0
End If
Case 2
mstrInvoiceNumber = ExtractField(intStart, intEnd)
Case 3
mdatDate = CDate(ExtractField(intStart, intEnd))
Case 4
mcurAmount = CCur(ExtractField(intStart, intEnd))
End Select
intStart = intEnd + 1: intField = intField + 1
Loop While intEnd < Len(strInput) And intField <= 4
End Property
Property Get VendorNumber() As Integer
VendorNumber = mintVendorNumber
End Property
Property Get InvoiceNumber() As String
InvoiceNumber = mstrInvoiceNumber
End Property
Property Get InvoiceDate() As Date
InvoiceDate = mdatDate
End Property
Property Get Amount() As Currency
Amount = mcurAmount
End Property
Public Function StoreNewItem(recTemp As Recordset) As Boolean
On Error GoTo StoreNewError
recTemp.AddNew
If WriteItem(recTemp) Then
recTemp.Update
Else
GoTo StoreNewError
End If
StoreNewItem = True
On Error GoTo 0
Exit Function
StoreNewError:
StoreNewItem = False
Exit Function
End Function
Private Function WriteItem(recTemp As Recordset) As Boolean
On Error GoTo WriteItemError
recTemp("Vendor Number") = mintVendorNumber
recTemp("Invoice Number") = mstrInvoiceNumber
recTemp("Date") = mdatDate
recTemp("Amount") = mcurAmount
WriteItem = True
On Error GoTo 0
Exit Function
WriteItemError:
WriteItem = False
Exit Function
End Function
Private Function ExtractField(intStart As Integer, intEnd As Integer)
ExtractField = Mid$(mstrDelimitedString, intStart, (intEnd - intStart))
End Function
Public Function Retrieve(dbfTemp As Database, VendorNumber As Integer, _
InvoiceNumber As String) As Boolean
Dim recTemp As Recordset
On Error GoTo RetrieveError
Set recTemp = dbfTemp.OpenRecordset("Invoices", dbOpenTable, dbReadOnly)
recTemp.Index = "PrimaryKey"
recTemp.Seek "=", VendorNumber, InvoiceNumber
DBEngine.Idle dbFreeLocks
If Not recTemp.NoMatch Then
mintVendorNumber = VendorNumber
mstrInvoiceNumber = InvoiceNumber
mdatDate = recTemp("Date")
mcurAmount = recTemp("Amount")
Retrieve = True
Else
Retrieve = False
End If
On Error GoTo 0
Exit Function
RetrieveError:
Retrieve = False
Exit Function
End Function
Public Sub AddToGrid(grdTemp As MSFlexGrid, intGridRow As Integer)
With grdTemp
.Row = intGridRow
.Col = 1: .Text = mstrInvoiceNumber
.Col = 2: .Text = Format$(mdatDate, "Short Date")
.Col = 3: .Text = Format$(mcurAmount, "Currency")
End With
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -