timesheet.vb
来自「Beginning VB.NET DatabasesAll_Code.rar」· VB 代码 · 共 1,086 行 · 第 1/3 页
VB
1,086 行
Me.pnlEmployee.Controls.Add(Me.btnSave)
Me.pnlEmployee.Controls.Add(Me.lblEmployee)
Me.pnlEmployee.Dock = System.Windows.Forms.DockStyle.Top
Me.pnlEmployee.Location = New System.Drawing.Point(0, 28)
Me.pnlEmployee.Name = "pnlEmployee"
Me.pnlEmployee.Size = New System.Drawing.Size(739, 26)
Me.pnlEmployee.TabIndex = 3
'
'cboWeekEnding
'
Me.cboWeekEnding.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.cboWeekEnding.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboWeekEnding.Location = New System.Drawing.Point(595, 1)
Me.cboWeekEnding.Name = "cboWeekEnding"
Me.cboWeekEnding.Size = New System.Drawing.Size(145, 24)
Me.cboWeekEnding.TabIndex = 5
'
'Label1
'
Me.Label1.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.Label1.ForeColor = System.Drawing.Color.White
Me.Label1.Location = New System.Drawing.Point(509, 0)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(86, 25)
Me.Label1.TabIndex = 4
Me.Label1.Text = "Week Ending"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'imgStatus
'
Me.imgStatus.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.imgStatus.Image = CType(resources.GetObject("imgStatus.Image"), System.Drawing.Image)
Me.imgStatus.Location = New System.Drawing.Point(478, 2)
Me.imgStatus.Name = "imgStatus"
Me.imgStatus.Size = New System.Drawing.Size(19, 19)
Me.imgStatus.TabIndex = 3
Me.imgStatus.TabStop = False
'
'btnSubmit
'
Me.btnSubmit.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnSubmit.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnSubmit.ForeColor = System.Drawing.Color.White
Me.btnSubmit.Location = New System.Drawing.Point(374, 0)
Me.btnSubmit.Name = "btnSubmit"
Me.btnSubmit.Size = New System.Drawing.Size(90, 25)
Me.btnSubmit.TabIndex = 2
Me.btnSubmit.Text = "Submit"
'
'btnSave
'
Me.btnSave.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.btnSave.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnSave.ForeColor = System.Drawing.Color.White
Me.btnSave.Location = New System.Drawing.Point(278, 0)
Me.btnSave.Name = "btnSave"
Me.btnSave.Size = New System.Drawing.Size(90, 25)
Me.btnSave.TabIndex = 1
Me.btnSave.Text = "Save"
'
'lblEmployee
'
Me.lblEmployee.ForeColor = System.Drawing.Color.White
Me.lblEmployee.Location = New System.Drawing.Point(0, 0)
Me.lblEmployee.Name = "lblEmployee"
Me.lblEmployee.Size = New System.Drawing.Size(250, 25)
Me.lblEmployee.TabIndex = 0
Me.lblEmployee.Text = "Timesheet for"
Me.lblEmployee.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'grdTimeSheet
'
Me.grdTimeSheet.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.grdTimeSheet.CaptionVisible = False
Me.grdTimeSheet.DataMember = ""
Me.grdTimeSheet.HeaderForeColor = System.Drawing.SystemColors.ControlText
Me.grdTimeSheet.Location = New System.Drawing.Point(0, 60)
Me.grdTimeSheet.Name = "grdTimeSheet"
Me.grdTimeSheet.Size = New System.Drawing.Size(739, 288)
Me.grdTimeSheet.TabIndex = 4
'
'pnlManager
'
Me.pnlManager.BackColor = System.Drawing.SystemColors.ControlDark
Me.pnlManager.Controls.Add(Me.btnApprove)
Me.pnlManager.Controls.Add(Me.cboEmployeeWeekEnding)
Me.pnlManager.Controls.Add(Me.Label3)
Me.pnlManager.Controls.Add(Me.cboEmployee)
Me.pnlManager.Controls.Add(Me.Label2)
Me.pnlManager.Location = New System.Drawing.Point(6000, 5769)
Me.pnlManager.Name = "pnlManager"
Me.pnlManager.Size = New System.Drawing.Size(739, 26)
Me.pnlManager.TabIndex = 5
'
'btnApprove
'
Me.btnApprove.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnApprove.ForeColor = System.Drawing.Color.White
Me.btnApprove.Location = New System.Drawing.Point(528, 0)
Me.btnApprove.Name = "btnApprove"
Me.btnApprove.Size = New System.Drawing.Size(90, 25)
Me.btnApprove.TabIndex = 4
Me.btnApprove.Text = "Approve"
'
'cboEmployeeWeekEnding
'
Me.cboEmployeeWeekEnding.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboEmployeeWeekEnding.Location = New System.Drawing.Point(338, 1)
Me.cboEmployeeWeekEnding.Name = "cboEmployeeWeekEnding"
Me.cboEmployeeWeekEnding.Size = New System.Drawing.Size(164, 24)
Me.cboEmployeeWeekEnding.TabIndex = 3
'
'Label3
'
Me.Label3.ForeColor = System.Drawing.Color.White
Me.Label3.Location = New System.Drawing.Point(240, 0)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(96, 25)
Me.Label3.TabIndex = 2
Me.Label3.Text = "Week Ending"
Me.Label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'cboEmployee
'
Me.cboEmployee.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cboEmployee.Location = New System.Drawing.Point(70, 1)
Me.cboEmployee.Name = "cboEmployee"
Me.cboEmployee.Size = New System.Drawing.Size(163, 24)
Me.cboEmployee.TabIndex = 1
'
'Label2
'
Me.Label2.ForeColor = System.Drawing.Color.White
Me.Label2.Location = New System.Drawing.Point(0, 0)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(67, 25)
Me.Label2.TabIndex = 0
Me.Label2.Text = "Employee"
Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'TimeSheet
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 15)
Me.ClientSize = New System.Drawing.Size(739, 374)
Me.Controls.Add(Me.pnlManager)
Me.Controls.Add(Me.grdTimeSheet)
Me.Controls.Add(Me.pnlEmployee)
Me.Controls.Add(Me.StatusBar1)
Me.Controls.Add(Me.ToolBar1)
Me.Menu = Me.MainMenu1
Me.Name = "TimeSheet"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Time Tracker Time Sheet"
CType(Me.pnlStatus, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.pnlDate, System.ComponentModel.ISupportInitialize).EndInit()
Me.pnlEmployee.ResumeLayout(False)
CType(Me.grdTimeSheet, System.ComponentModel.ISupportInitialize).EndInit()
Me.pnlManager.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
#End Region
#Region " Variable Declarations "
Private intIndex As Integer
Private intTotal As Integer
Private blnEmployeeDisplay As Boolean = True
Private blnLoading As Boolean = True
Private strAppTitle As String
Private strCompany As String = "Wrox"
Private strApplication As String = "Time Tracker"
Private strUserID As String
Private strManagerID As String
Private objTimeSheets As WroxBusinessLogic.WBLTimeSheets
Private objUsers As WroxBusinessLogic.WBLUsers
Private objDataSet As DataSet
Private objTimeSheetDS As DataSet
Private objEmployees As DataSet
Private objTimeSheetDV As DataView
Private Enum ReportType
TimeSheetsDue = 1
TimeSheetsSubmitted = 2
TimeSheetsMTD = 3
TimeSheetsQTD = 4
TimeSheetsYTD = 5
End Enum
#End Region
#Region " Load Procedures "
Private Sub TimeSheet_Load(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
'Set the current date in the date panel in the status bar
pnlDate.Text = Date.Today
'Get the process title from the executable name
strAppTitle = _
System.Reflection.Assembly.GetExecutingAssembly.FullName.Substring(0, _
System.Reflection.Assembly.GetExecutingAssembly.FullName.IndexOf(","))
'Hide the managers menu option for regular users
If g_strUserRole.ToLower Like "user" Then
mnuViewEmployeeTimeSheets.Visible = False
blnEmployeeDisplay = True
strUserID = g_strUserID
Else
blnEmployeeDisplay = False
Call mnuViewEmployeeTimeSheets_Click(Nothing, Nothing)
strManagerID = g_strUserID
Call LoadEmployees()
End If
'Display the users name
lblEmployee.Text &= " " & g_strUserName
'Load the week ending date combo boxes
cboWeekEnding.Items.Add(GetPreviousWeekEndingDate)
cboEmployeeWeekEnding.Items.Add(GetPreviousWeekEndingDate)
cboWeekEnding.Items.Add(GetCurrentWeekEndingDate)
cboEmployeeWeekEnding.Items.Add(GetCurrentWeekEndingDate)
If g_strUserRole.ToLower Like "user" Then
cboWeekEnding.SelectedIndex = 1
Else
cboWeekEnding.SelectedIndex = -1
End If
'Turn off the loading flag
blnLoading = False
End Sub
#End Region
#Region " Navigation Procedures "
Private Sub mnuFileExit_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuFileExit.Click
Me.Close()
End Sub
Private Sub mnuViewMyTimeSheet_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuViewMyTimeSheet.Click
'Undock the Panel
pnlManager.Dock = DockStyle.None
'Move it out of the way
pnlManager.Location = New Point(5000, 5000)
'Set the Dock property to Fill
'(this will cause the location to change to 0,0)
pnlEmployee.Dock = DockStyle.Top
'Set the view flag
blnEmployeeDisplay = True
End Sub
Private Sub mnuViewEmployeeTimeSheets_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuViewEmployeeTimeSheets.Click
'Undock the Panel
pnlEmployee.Dock = DockStyle.None
'Move it out of the way
pnlEmployee.Location = New Point(5000, 5000)
'Set the Dock property to Fill
'(this will cause the location to change to 0,0)
pnlManager.Dock = DockStyle.Top
'Set the view flag
blnEmployeeDisplay = False
End Sub
Private Sub mnuHelpAbout_Click(ByVal sender As Object, _
ByVal e As System.EventArgs) Handles mnuHelpAbout.Click
Dim objAbout As New About
objAbout.ShowDialog(Me)
objAbout.Dispose()
objAbout = Nothing
End Sub
#End Region
#Region " Utility Functions "
Private Function GetCurrentWeekEndingDate() As String
GetCurrentWeekEndingDate = DateSerial( _
Year(Now), Month(Now), DateAndTime.Day(Now) - _
DatePart("w", Now, FirstDayOfWeek.Sunday) + 6)
End Function
Private Function GetPreviousWeekEndingDate() As String
GetPreviousWeekEndingDate = DateSerial( _
Year(Now), Month(Now), DateAndTime.Day(Now) - _
DatePart("w", Now, FirstDayOfWeek.Sunday) - 1)
End Function
Private Sub LoadTimeSheet(ByVal WeekEndingDate As ComboBox)
'Clear previous bindings
grdTimeSheet.DataSource = Nothing
grdTimeSheet.DataMember = String.Empty
grdTimeSheet.CaptionVisible = False
'Initialize a new instance of the business logic component
objTimeSheets = New WroxBusinessLogic.WBLTimeSheets( _
strCompany, strApplication)
'Get the timesheet for the user
objTimeSheetDS = objTimeSheets.GetTimeSheet( _
New Guid(strUserID), WeekEndingDate.SelectedItem)
'Set the DataView object with the data from the DataSet
objTimeSheetDV = New DataView(objTimeSheetDS.Tables("TimeSheet"))
'Initialize a new DataRowView object
Dim objDataRowView As DataRowView = objTimeSheetDV.AddNew
'Set the values in the columns
objDataRowView("ProjectName") = "Total Hours"
'Calculate and set the total hours for Monday
intTotal = 0
For intIndex = 0 To objTimeSheetDS.Tables("TimeSheet").Rows.Count - 1
intTotal += objTimeSheetDS.Tables( _
"TimeSheet").Rows(intIndex).Item("MondayHours")
Next
objDataRowView("MondayHours") = intTotal
'Calculate and set the total hours for Tuesday
intTotal = 0
For intIndex = 0 To objTimeSheetDS.Tables("TimeSheet").Rows.Count - 1
intTotal += objTimeSheetDS.Tables( _
"TimeSheet").Rows(intIndex).Item("TuesdayHours")
Next
objDataRowView("TuesdayHours") = intTotal
'Calculate and set the total hours for Wednesday
intTotal = 0
For intIndex = 0 To objTimeSheetDS.Tables("TimeSheet").Rows.Count - 1
intTotal += objTimeSheetDS.Tables( _
"TimeSheet").Rows(intIndex).Item("WednesdayHours")
Next
objDataRowView("WednesdayHours") = intTotal
'Calculate and set the total hours for Thursday
intTotal = 0
For intIndex = 0 To objTimeSheetDS.Tables("TimeSheet").Rows.Count - 1
intTotal += objTimeSheetDS.Tables( _
"TimeSheet").Rows(intIndex).Item("ThursdayHours")
Next
objDataRowView("ThursdayHours") = intTotal
'Calculate and set the total hours for Friday
intTotal = 0
For intIndex = 0 To objTimeSheetDS.Tables("TimeSheet").Rows.Count - 1
intTotal += objTimeSheetDS.Tables( _
"TimeSheet").Rows(intIndex).Item("FridayHours")
Next
objDataRowView("FridayHours") = intTotal
'Commit the changes to the row
objDataRowView.EndEdit()
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?