📄 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
Public Class UtilData
Inherits System.Object
#Region " Database Structure Simulated "
Friend 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 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 ctTasks() As String
Get
Return m_ctTasks
End Get
Set(ByVal Value As String)
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
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
Private alProjects As ArrayList
Private alTasks As ArrayList
Private dsetTimeTracker As DataSet
Private dtblProjects As DataTable
Private dtblTasks As DataTable
Public Sub New()
LoadData()
End Sub
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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -