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

📄 incometable.vb

📁 第五章 家庭财务程序开发
💻 VB
📖 第 1 页 / 共 2 页
字号:
        End Property
        
        Public Event IncomeTableRowChanged As IncomeTableRowChangeEventHandler
        
        Public Event IncomeTableRowChanging As IncomeTableRowChangeEventHandler
        
        Public Event IncomeTableRowDeleted As IncomeTableRowChangeEventHandler
        
        Public Event IncomeTableRowDeleting As IncomeTableRowChangeEventHandler
        
        Public Overloads Sub AddIncomeTableRow(ByVal row As IncomeTableRow)
            Me.Rows.Add(row)
        End Sub
        
        Public Overloads Function AddIncomeTableRow(ByVal 金额 As String, ByVal 日期 As String, ByVal 项目名称 As String) As IncomeTableRow
            Dim rowIncomeTableRow As IncomeTableRow = CType(Me.NewRow,IncomeTableRow)
            rowIncomeTableRow.ItemArray = New Object() {金额, 日期, 项目名称}
            Me.Rows.Add(rowIncomeTableRow)
            Return rowIncomeTableRow
        End Function
        
        Public Function GetEnumerator() As System.Collections.IEnumerator Implements System.Collections.IEnumerable.GetEnumerator
            Return Me.Rows.GetEnumerator
        End Function
        
        Public Overrides Function Clone() As DataTable
            Dim cln As IncomeTableDataTable = CType(MyBase.Clone,IncomeTableDataTable)
            cln.InitVars
            Return cln
        End Function
        
        Protected Overrides Function CreateInstance() As DataTable
            Return New IncomeTableDataTable
        End Function
        
        Friend Sub InitVars()
            Me.column金额 = Me.Columns("金额")
            Me.column日期 = Me.Columns("日期")
            Me.column项目名称 = Me.Columns("项目名称")
        End Sub
        
        Private Sub InitClass()
            Me.column金额 = New DataColumn("金额", GetType(System.String), Nothing, System.Data.MappingType.Element)
            Me.Columns.Add(Me.column金额)
            Me.column日期 = New DataColumn("日期", GetType(System.String), Nothing, System.Data.MappingType.Element)
            Me.Columns.Add(Me.column日期)
            Me.column项目名称 = New DataColumn("项目名称", GetType(System.String), Nothing, System.Data.MappingType.Element)
            Me.Columns.Add(Me.column项目名称)
        End Sub
        
        Public Function NewIncomeTableRow() As IncomeTableRow
            Return CType(Me.NewRow,IncomeTableRow)
        End Function
        
        Protected Overrides Function NewRowFromBuilder(ByVal builder As DataRowBuilder) As DataRow
            Return New IncomeTableRow(builder)
        End Function
        
        Protected Overrides Function GetRowType() As System.Type
            Return GetType(IncomeTableRow)
        End Function
        
        Protected Overrides Sub OnRowChanged(ByVal e As DataRowChangeEventArgs)
            MyBase.OnRowChanged(e)
            If (Not (Me.IncomeTableRowChangedEvent) Is Nothing) Then
                RaiseEvent IncomeTableRowChanged(Me, New IncomeTableRowChangeEvent(CType(e.Row,IncomeTableRow), e.Action))
            End If
        End Sub
        
        Protected Overrides Sub OnRowChanging(ByVal e As DataRowChangeEventArgs)
            MyBase.OnRowChanging(e)
            If (Not (Me.IncomeTableRowChangingEvent) Is Nothing) Then
                RaiseEvent IncomeTableRowChanging(Me, New IncomeTableRowChangeEvent(CType(e.Row,IncomeTableRow), e.Action))
            End If
        End Sub
        
        Protected Overrides Sub OnRowDeleted(ByVal e As DataRowChangeEventArgs)
            MyBase.OnRowDeleted(e)
            If (Not (Me.IncomeTableRowDeletedEvent) Is Nothing) Then
                RaiseEvent IncomeTableRowDeleted(Me, New IncomeTableRowChangeEvent(CType(e.Row,IncomeTableRow), e.Action))
            End If
        End Sub
        
        Protected Overrides Sub OnRowDeleting(ByVal e As DataRowChangeEventArgs)
            MyBase.OnRowDeleting(e)
            If (Not (Me.IncomeTableRowDeletingEvent) Is Nothing) Then
                RaiseEvent IncomeTableRowDeleting(Me, New IncomeTableRowChangeEvent(CType(e.Row,IncomeTableRow), e.Action))
            End If
        End Sub
        
        Public Sub RemoveIncomeTableRow(ByVal row As IncomeTableRow)
            Me.Rows.Remove(row)
        End Sub
    End Class
    
    <System.Diagnostics.DebuggerStepThrough()>  _
    Public Class IncomeTableRow
        Inherits DataRow
        
        Private tableIncomeTable As IncomeTableDataTable
        
        Friend Sub New(ByVal rb As DataRowBuilder)
            MyBase.New(rb)
            Me.tableIncomeTable = CType(Me.Table,IncomeTableDataTable)
        End Sub
        
        Public Property 金额 As String
            Get
                Try 
                    Return CType(Me(Me.tableIncomeTable.金额Column),String)
                Catch e As InvalidCastException
                    Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
                End Try
            End Get
            Set
                Me(Me.tableIncomeTable.金额Column) = value
            End Set
        End Property
        
        Public Property 日期 As String
            Get
                Try 
                    Return CType(Me(Me.tableIncomeTable.日期Column),String)
                Catch e As InvalidCastException
                    Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
                End Try
            End Get
            Set
                Me(Me.tableIncomeTable.日期Column) = value
            End Set
        End Property
        
        Public Property 项目名称 As String
            Get
                Try 
                    Return CType(Me(Me.tableIncomeTable.项目名称Column),String)
                Catch e As InvalidCastException
                    Throw New StrongTypingException("无法获取值,因为它是 DBNull。", e)
                End Try
            End Get
            Set
                Me(Me.tableIncomeTable.项目名称Column) = value
            End Set
        End Property
        
        Public Function Is金额Null() As Boolean
            Return Me.IsNull(Me.tableIncomeTable.金额Column)
        End Function
        
        Public Sub Set金额Null()
            Me(Me.tableIncomeTable.金额Column) = System.Convert.DBNull
        End Sub
        
        Public Function Is日期Null() As Boolean
            Return Me.IsNull(Me.tableIncomeTable.日期Column)
        End Function
        
        Public Sub Set日期Null()
            Me(Me.tableIncomeTable.日期Column) = System.Convert.DBNull
        End Sub
        
        Public Function Is项目名称Null() As Boolean
            Return Me.IsNull(Me.tableIncomeTable.项目名称Column)
        End Function
        
        Public Sub Set项目名称Null()
            Me(Me.tableIncomeTable.项目名称Column) = System.Convert.DBNull
        End Sub
    End Class
    
    <System.Diagnostics.DebuggerStepThrough()>  _
    Public Class IncomeTableRowChangeEvent
        Inherits EventArgs
        
        Private eventRow As IncomeTableRow
        
        Private eventAction As DataRowAction
        
        Public Sub New(ByVal row As IncomeTableRow, ByVal action As DataRowAction)
            MyBase.New
            Me.eventRow = row
            Me.eventAction = action
        End Sub
        
        Public ReadOnly Property Row As IncomeTableRow
            Get
                Return Me.eventRow
            End Get
        End Property
        
        Public ReadOnly Property Action As DataRowAction
            Get
                Return Me.eventAction
            End Get
        End Property
    End Class
End Class

⌨️ 快捷键说明

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