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

📄 fields.cls

📁 u8
💻 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 = "Fields"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
'--------------------------------
'时间:2001.11.12
'版权:北京用友软件股份有限公司
'设计:章景峰
'编码:章景峰
'说明:U8资金管理---实体对象
'--------------------------------
Option Explicit

Private m_Col As Collection

Public Function Append(ID As Long, Name As String, Caption As String, _
                       Optional EntityID As Long, _
                       Optional FieldOption As FieldOptionEnum, _
                       Optional HelpContextID As String, _
                       Optional Persistent As Boolean = False, _
                       Optional Value As Variant, _
                       Optional ReferenceType As Byte = 0, _
                       Optional RefFldSqc As Long = 666, _
                       Optional QryFldSqc As Long = 666, _
                       Optional IsUsed As Boolean = True, _
                       Optional TaskID As String, _
                       Optional EditProp As EditPropertyEnum, _
                       Optional DataType As DataTypeEnum, _
                       Optional Length As Integer = 255, _
                       Optional Decimals As Byte = 0, _
                       Optional AllowNull As Boolean = True, _
                       Optional DefaultValue As Variant, _
                       Optional SourceField As String = "", _
                       Optional Row As Long, _
                       Optional StartCol As Long, _
                       Optional EndCol As Long, _
                       Optional InputCol As Long, _
                       Optional Min As Double, _
                       Optional Max As Double, _
                       Optional sKey As String = "") As FieldObject

    '创建新对象
    Dim oFO As New FieldObject

    '设置传入方法的属性
    With oFO
        .ID = ID
        .Name = Name
        .Caption = Caption
        .EntityID = EntityID
        .FieldOption = FieldOption
        .HelpContextID = HelpContextID
        .Persistent = Persistent
        .IsUsed = IsUsed
        .TaskID = TaskID
        .EditProp = EditProp
        .DataType = DataType
        .Length = Length
        .Decimals = Decimals
        .AllowNull = AllowNull
        .ReferenceType = ReferenceType
        .QryFldSqc = QryFldSqc
        .RefFldSqc = RefFldSqc
        .SourceField = SourceField
        .Row = Row
        .StartCol = StartCol
        .EndCol = EndCol
        .InputCol = InputCol
        .Min = Min
        .Max = Max
        .DefaultValue = DefaultValue
        .Value = DefaultValue
        If Not IsMissing(Value) Then .Value = Value
    End With
    
    Set oFO.Parent = Me


    If Len(sKey) = 0 Then
        m_Col.Add oFO
    Else
        m_Col.Add oFO, sKey
    End If

    '返回已创建的对象
    Set Append = oFO
    Set oFO = Nothing
End Function

Public Function AppendEx(oFO As FieldObject) As FieldObject
    Set oFO.Parent = Me
    m_Col.Add oFO, oFO.Name

    '返回已创建的对象
    Set AppendEx = oFO
End Function

Public Property Get Item(vIndexKey As Variant, Optional itm As ItemEnum = itmIndexOrKey) As FieldObject
Attribute Item.VB_UserMemId = 0
    '引用集合中的一个元素时使用。
    'vIndexKey 包含集合的索引或关键字,这是为什么要声明为 Variant 的原因
    '语法:Set foo = x.Item(xyz) or Set foo = x.Item(5)
    If itm = itmIndexOrKey Then
        Set Item = m_Col(vIndexKey)
    Else
        Dim i   As Long
        For i = 1 To m_Col.Count
            If m_Col(i).Caption = vIndexKey Then
                Set Item = m_Col(i)
                Exit For
            End If
        Next
    End If
End Property

'功能描述:用坐标来定位域对象
Public Property Get ItemByCoordinate(Row As Long, Col As Long) As FieldObject
    Dim i   As Long
    
    For i = 1 To m_Col.Count
        If m_Col(i).Row = Row Then
            If m_Col(i).StartCol <= Col And m_Col(i).EndCol >= Col Then
                Set ItemByCoordinate = m_Col(i)
                Exit For
            End If
        End If
    Next
End Property

Public Property Get Count() As Long
    Count = m_Col.Count
End Property

Public Sub Delete(vIndexKey As Variant)
    m_Col.Remove vIndexKey
End Sub

Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Attribute NewEnum.VB_MemberFlags = "40"
    '本属性允许用 For...Each 语法枚举该集合。
    Set NewEnum = m_Col.[_NewEnum]
End Property

Private Sub Class_Initialize()
    '创建类后创建集合
    Set m_Col = New Collection
End Sub

Private Sub Class_Terminate()
    '类终止后破坏集合
    Set m_Col = Nothing
End Sub

⌨️ 快捷键说明

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