📄 utildata.vb
字号:
' -----------------------------------------------------------------------------
' Code from _Programming the .NET Compact Framework with VB_
' and _Programming the .NET Compact Framework with C#_
' (c) Copyright 2002-2004 Paul Yao and David Durant.
' All rights reserved.
' -----------------------------------------------------------------------------
Imports System
Imports System.Data
Namespace YaoDurant.Data
Public Class UtilData
Inherits System.Object
#Region " Database Structure Simulated "
Private Structure Project
Private m_strIdent As String
Private m_strName As String
Private m_dateStart As Date
Private m_dateEnd As Date
Private m_ctTasks As Integer
Private m_strComments As String
Friend Property strIdent() As String
Get
Return m_strIdent
End Get
Set(ByVal Value As String)
m_strIdent = Value
End Set
End Property
Friend Property strName() As String
Get
Return m_strName
End Get
Set(ByVal Value As String)
m_strName = Value
End Set
End Property
Friend Property dateStart() As Date
Get
Return m_dateStart
End Get
Set(ByVal Value As Date)
m_dateStart = Value
End Set
End Property
Friend Property dateEnd() As Date
Get
Return m_dateEnd
End Get
Set(ByVal Value As Date)
m_dateEnd = Value
End Set
End Property
Friend Property ctTasks() As Integer
Get
Return m_ctTasks
End Get
Set(ByVal Value As Integer)
m_ctTasks = Value
End Set
End Property
Friend Property strComments() As String
Get
Return m_strComments
End Get
Set(ByVal Value As String)
m_strComments = Value
End Set
End Property
Public Sub New(ByVal strIdent As String, _
ByVal strName As String, _
ByVal dateStart As Date, _
ByVal dateEnd As Date, _
ByVal ctTasks As Integer, _
ByVal strComments As String)
Me.m_strIdent = strIdent
Me.m_strName = strName
Me.m_dateStart = dateStart
Me.m_dateEnd = dateEnd
Me.m_ctTasks = ctTasks
Me.m_strComments = strComments
End Sub
End Structure
Private Structure Task
Private m_strIdent As String
Private m_strProjIdent As String
Private m_strName As String
Private m_dateStart As Date
Private m_dateEnd As Date
Private m_durEstimated As Integer ' In hours
Private m_durActual As Integer ' In hours
Private m_strComments As String
Friend Property strIdent() As String
Get
Return m_strIdent
End Get
Set(ByVal Value As String)
m_strIdent = Value
End Set
End Property
Friend Property strProjIdent() As String
Get
Return m_strProjIdent
End Get
Set(ByVal Value As String)
m_strProjIdent = Value
End Set
End Property
Friend Property strName() As String
Get
Return m_strName
End Get
Set(ByVal Value As String)
m_strName = Value
End Set
End Property
Friend Property dateStart() As String
Get
Return m_dateStart
End Get
Set(ByVal Value As String)
m_dateStart = Value
End Set
End Property
Friend Property dateEnd() As String
Get
Return m_dateEnd
End Get
Set(ByVal Value As String)
m_dateEnd = Value
End Set
End Property
Friend Property durEstimated() As Integer
Get
Return m_durEstimated
End Get
Set(ByVal Value As Integer)
m_durEstimated = Value
End Set
End Property
Friend Property durActual() As Integer
Get
Return m_durActual
End Get
Set(ByVal Value As Integer)
m_durActual = Value
End Set
End Property
Friend Property strComments() As String
Get
Return m_strComments
End Get
Set(ByVal Value As String)
m_strComments = Value
End Set
End Property
Public Sub New(ByVal strIdent As String, _
ByVal strProjIdent As String, _
ByVal strName As String, _
ByVal dateStart As Date, _
ByVal dateEnd As Date, _
ByVal durEstimated As Integer, _
ByVal durActual As Integer, _
ByVal strComments As String)
Me.m_strIdent = strIdent
Me.m_strProjIdent = strProjIdent
Me.m_strName = strName
Me.m_dateStart = dateStart
Me.m_dateEnd = dateEnd
Me.m_durEstimated = durEstimated
Me.m_durActual = durActual
Me.m_strComments = strComments
End Sub
End Structure
#End Region
' All objects listed here will be loaded with
' data whenever an instance of this class
' is created.
' The projects, stored in an ArrayList
Private alProjects As ArrayList
' The tasks, stored in an ArrayList
Private alTasks As ArrayList
' The projects, stored in a DataTable
Private dtblProjects As DataTable
' The tasks, stored in a DataTable
Private dtblTasks As DataTable
' A DataSet to hold the two DataTables.
Private dsetTimeTracker As DataSet
Public Sub New()
LoadData()
End Sub
Friend Function GetProjectsDataSet() As DataSet
Return dsetTimeTracker
End Function
'Friend Function GetProjectsAL() As ArrayList
' Return alProjects
'End Function
'Friend Function GetProjectsDT() As DataTable
' Return dsetTimeTracker.Tables("Projects")
'End Function
'Friend Function GetTasksAL() As ArrayList
' Return alTasks
'End Function
'Friend Function GetTasksAL( _
' ByVal ProjectID As Integer _
' ) _
' As ArrayList
'End Function
'Friend Function GetTasksDT() As DataTable
' Return dsetTimeTracker.Tables("Tasks")
'End Function
'Friend Function GetTasksDV( _
' ByVal ProjectID As Integer _
' ) _
' As DataTable
'End Function
#Region " Database Read Simulation "
Private Sub LoadData()
' Simulate having retrieved project data
' from a database. Use the Project
' and Task data structures to hold
' the data.
alProjects = New ArrayList
With alProjects
.Add(New Project(1, _
"Build Ark", _
DateTime.Today.AddDays(-17), _
DateTime.Today.AddDays(22), _
5, _
"Must be done in less than 40 days."))
.Add(New Project(17, _
"Develop CF Application", _
DateTime.Today.AddDays(-17), _
DateTime.Today.AddDays(22), _
5, _
"To ensure success, read the Yao-Durant book first."))
.Add(New Project(9, _
"Write CF Book", _
DateTime.Today.AddDays(-17), _
DateTime.Today.AddDays(22), _
5, _
"The endless cycle: Code, test, write, revise, proof."))
End With
alTasks = New ArrayList
Dim projWork As Project
For Each projWork In alProjects
With alTasks
.Add(New Task(1, _
projWork.strIdent, _
"Create Blueprints", _
DateTime.Today.AddDays(-17), _
DateTime.Today.AddDays(22), _
120, 60, ""))
.Add(New Task(2, _
projWork.strIdent, _
"Build Franistans", _
DateTime.Today.AddDays(-11), _
DateTime.Today.AddDays(0), _
35, 30, ""))
.Add(New Task(5, _
projWork.strIdent, _
"Build Widgets", _
DateTime.Today.AddDays(-4), _
DateTime.Today.AddDays(44), _
400, 45, ""))
.Add(New Task(3, _
projWork.strIdent, _
"Assemble Woobletogles", _
DateTime.Today.AddDays(-19), _
DateTime.Today.AddDays(2), _
20, 20, ""))
.Add(New Task(7, _
projWork.strIdent, _
"Weld Mainwareing", _
DateTime.Today.AddDays(-100), _
DateTime.Today.AddDays(50), _
20, 6, ""))
End With
Next
dsetTimeTracker = New DataSet("TimeTracker")
Dim dcolWork As DataColumn
dtblProjects = New DataTable("Projects")
dcolWork = New DataColumn("strIdent", GetType(String))
dtblProjects.Columns.Add(dcolWork)
dcolWork = New DataColumn("strName", GetType(String))
dtblProjects.Columns.Add(dcolWork)
dcolWork = New DataColumn("dateStart", GetType(Date))
dtblProjects.Columns.Add(dcolWork)
dcolWork = New DataColumn("dateEnd", GetType(Date))
dtblProjects.Columns.Add(dcolWork)
dcolWork = New DataColumn("ctTasks", GetType(Integer))
dtblProjects.Columns.Add(dcolWork)
dcolWork = New DataColumn("strComments", GetType(String))
dtblProjects.Columns.Add(dcolWork)
dtblTasks = New DataTable("Tasks")
dcolWork = New DataColumn("strIdent", GetType(String))
dtblTasks.Columns.Add(dcolWork)
dcolWork = New DataColumn("strProjIdent", GetType(String))
dtblTasks.Columns.Add(dcolWork)
dcolWork = New DataColumn("strName", GetType(String))
dtblTasks.Columns.Add(dcolWork)
dcolWork = New DataColumn("dateStart", GetType(Date))
dtblTasks.Columns.Add(dcolWork)
dcolWork = New DataColumn("dateEnd", GetType(Date))
dtblTasks.Columns.Add(dcolWork)
dcolWork = New DataColumn("durEstimated", GetType(Integer))
dtblTasks.Columns.Add(dcolWork)
dcolWork = New DataColumn("durActual", GetType(Integer))
dtblTasks.Columns.Add(dcolWork)
dcolWork = New DataColumn("strComments", GetType(String))
dtblTasks.Columns.Add(dcolWork)
' Add the tables to the DataSet.
dsetTimeTracker.Tables.Add(dtblProjects)
dsetTimeTracker.Tables.Add(dtblTasks)
' Create a DataRelation, and add it to the DataSet.
dsetTimeTracker.Relations.Add(New DataRelation("ProjectTask", dtblProjects.Columns("strIdent"), dtblTasks.Columns("strProjIdent")))
' Load the Projects DataTable from
' the Projects ArrayList.
For Each projWork In alProjects
With projWork
dtblProjects.Rows.Add(New Object() {.strIdent, .strName, .dateStart, .dateEnd, .ctTasks, .strComments})
End With
Next
' Load the Tasks DataTable from
' the Tasks ArrayList.
Dim taskWork As Task
For Each taskWork In alTasks
With taskWork
dtblTasks.Rows.Add(New Object() {.strIdent, .strProjIdent, .strName, .dateStart, .dateEnd, .durEstimated, .durActual, .strComments})
End With
Next
End Sub
#End Region
End Class
End Namespace
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -