📄 formattendance.vb
字号:
Me.dgCurrent.Location = New System.Drawing.Point(8, 56)
Me.dgCurrent.Name = "dgCurrent"
Me.dgCurrent.ReadOnly = True
Me.dgCurrent.Size = New System.Drawing.Size(464, 56)
Me.dgCurrent.TabIndex = 4
'
'btnRecord
'
Me.btnRecord.Location = New System.Drawing.Point(296, 24)
Me.btnRecord.Name = "btnRecord"
Me.btnRecord.TabIndex = 3
Me.btnRecord.Text = "记 录"
'
'txtCount
'
Me.txtCount.Location = New System.Drawing.Point(192, 24)
Me.txtCount.Name = "txtCount"
Me.txtCount.Size = New System.Drawing.Size(56, 21)
Me.txtCount.TabIndex = 2
Me.txtCount.Text = "1"
'
'Label2
'
Me.Label2.Location = New System.Drawing.Point(16, 24)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(72, 21)
Me.Label2.TabIndex = 1
Me.Label2.Text = "选择考勤项"
'
'cmbAttendanceItem
'
Me.cmbAttendanceItem.DisplayMember = "Name"
Me.cmbAttendanceItem.Location = New System.Drawing.Point(96, 24)
Me.cmbAttendanceItem.Name = "cmbAttendanceItem"
Me.cmbAttendanceItem.Size = New System.Drawing.Size(88, 20)
Me.cmbAttendanceItem.TabIndex = 0
Me.cmbAttendanceItem.ValueMember = "Id"
'
'lblUnit
'
Me.lblUnit.Location = New System.Drawing.Point(256, 24)
Me.lblUnit.Name = "lblUnit"
Me.lblUnit.Size = New System.Drawing.Size(30, 21)
Me.lblUnit.TabIndex = 1
Me.lblUnit.Text = "天"
'
'btnCheckAttendance
'
Me.btnCheckAttendance.Location = New System.Drawing.Point(384, 24)
Me.btnCheckAttendance.Name = "btnCheckAttendance"
Me.btnCheckAttendance.TabIndex = 3
Me.btnCheckAttendance.Text = "考 勤"
'
'Label1
'
Me.Label1.Location = New System.Drawing.Point(16, 16)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(80, 21)
Me.Label1.TabIndex = 1
Me.Label1.Text = "日期"
'
'DateTimePicker1
'
Me.DateTimePicker1.Location = New System.Drawing.Point(96, 16)
Me.DateTimePicker1.Name = "DateTimePicker1"
Me.DateTimePicker1.Size = New System.Drawing.Size(192, 21)
Me.DateTimePicker1.TabIndex = 0
'
'Label4
'
Me.Label4.Location = New System.Drawing.Point(296, 16)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(64, 23)
Me.Label4.TabIndex = 5
Me.Label4.Text = "当前用户"
'
'FormAttendance
'
Me.AcceptButton = Me.btnRecord
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.CancelButton = Me.btnExit
Me.ClientSize = New System.Drawing.Size(712, 438)
Me.Controls.Add(Me.Panel2)
Me.Controls.Add(Me.Splitter1)
Me.Controls.Add(Me.Panel1)
Me.Name = "FormAttendance"
Me.Text = "日常考勤"
Me.Panel1.ResumeLayout(False)
Me.Panel2.ResumeLayout(False)
Me.GroupBox2.ResumeLayout(False)
CType(Me.dgHistory, System.ComponentModel.ISupportInitialize).EndInit()
Me.GroupBox1.ResumeLayout(False)
CType(Me.dgCurrent, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub InitialTree(Optional ByVal bShowAll As Boolean = False)
'Initial tvEmployee
tvEmployee.Nodes.Clear()
Dim dsCompany As DataSet
dsCompany = DbBase.DataInterface().Execute4DS("select top 1 id,name from company")
Dim tnRoot As TreeNode
tnRoot = New TreeNode(dsCompany.Tables(0).Rows(0).Item("name"))
tnRoot.Tag = dsCompany.Tables(0).Rows(0).Item("id")
tnRoot.ImageIndex = 0
tnRoot.SelectedImageIndex = 0
Dim dsDeparts As DataSet
dsDeparts = DbBase.DataInterface().Execute4DS("select number,name from department order by number")
'Add Deparments to tvEmployee
Dim iNodeIndex As Integer
For Each drDepart As DataRow In dsDeparts.Tables(0).Rows
Dim tnDepart As TreeNode
tnDepart = New TreeNode(drDepart.Item("name"))
tnDepart.Tag = drDepart.Item("number")
tnDepart.ImageIndex = 1
tnDepart.SelectedImageIndex = 1
If Microsoft.VisualBasic.Right(drDepart.Item("number"), 1) = "0" Then
tnRoot.Nodes.Add(tnDepart)
iNodeIndex = tnDepart.Index
Else
Dim dsEmployee As DataSet
Dim sSql As String
If bShowAll Then
sSql = "select name,number from v_employee where department_number = '" & tnDepart.Tag & "'"
Else
sSql = "select name,number from v_employee where department_number = '" & tnDepart.Tag & "' and status = '在职'"
End If
dsEmployee = DbBase.DataInterface().Execute4DS(sSql)
For Each drEmployee As DataRow In dsEmployee.Tables(0).Rows
Dim tnEmployee As TreeNode
tnEmployee = New TreeNode(drEmployee.Item("name"), 2, 2)
tnEmployee.Tag = drEmployee.Item("number")
tnDepart.Nodes.Add(tnEmployee)
Next
tnRoot.Nodes.Item(iNodeIndex).Nodes.Add(tnDepart)
End If
Next
tvEmployee.Nodes.Add(tnRoot)
tvEmployee.ExpandAll()
End Sub
Private Sub tvEmployee_MouseDown(ByVal send As Object, ByVal e As MouseEventArgs) Handles tvEmployee.MouseDown
Dim tnClicked As TreeNode
tnClicked = tvEmployee.GetNodeAt(New Point(e.X, e.Y))
If Not tnClicked Is Nothing And Not tnClicked Is tvEmployee.Nodes(0) Then
tvEmployee.SelectedNode = tnClicked
End If
End Sub
Private Sub tvEmployee_AfterSelect(ByVal send As Object, ByVal e As TreeViewEventArgs) Handles tvEmployee.AfterSelect
If e.Node.ImageIndex = 2 Then
lblEmployee.Text = e.Node.Text
lblEmployee.Tag = e.Node.Tag
oAttendance = New Attendance(CStr(e.Node.Tag), CDate(DateTimePicker1.Text))
InitialData()
End If
End Sub
Private Sub InitialData()
cmbAttendanceItem.DataSource = Attendance.Items
oAttendance.FillRecord()
dgCurrent.DataSource = Attendance.ItemRecordTable.DefaultView
dgHistory.DataSource = Attendance.LastMonthRecord(lblEmployee.Tag).DefaultView
End Sub
Private Sub FormAttendance_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
InitialTree()
End Sub
Private Sub cmbAttendanceItem_SelectedIndexChanged(ByVal send As Object, ByVal e As EventArgs) Handles cmbAttendanceItem.SelectedIndexChanged
lblUnit.Text = oAttendance(cmbAttendanceItem.SelectedValue).Unit
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub btnRecord_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRecord.Click
If txtCount.Text = "" Then
MessageBox.Show("请输入考勤计时值", "出错", MessageBoxButtons.OK)
ElseIf lblEmployee.Text = "" Then
MessageBox.Show("请选择一个用户", "出错", MessageBoxButtons.OK)
Else
oAttendance.RecordItem(cmbAttendanceItem.SelectedValue, CDbl(txtCount.Text))
End If
End Sub
Private Sub lblEmployee_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblEmployee.Click
If lblEmployee.Tag <> "" Then
Dim oFormEmployee As FormEmployee
oFormEmployee = New FormEmployee
oFormEmployee.SelectedEmployee = New Employee(CStr(lblEmployee.Tag))
oFormEmployee.Show()
End If
End Sub
Private Sub btnCheckAttendance_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCheckAttendance.Click
If MessageBox.Show("记录" & lblEmployee.Text & " " & DateTimePicker1.Text & " 的考勤记录,确认?", "确认考勤记录", MessageBoxButtons.OKCancel) = Windows.Forms.DialogResult.OK Then
If oAttendance.CheckAttendance() = 0 Then
MessageBox.Show("考勤记录成功更新到数据库!")
End If
End If
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -