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

📄 clsinvoice.cls

📁 《VB6数据库开发指南》所有的例程的源码
💻 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 + -