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 + -
显示快捷键?