📄 formpayroll.vb
字号:
'
Me.btnRecord.Location = New System.Drawing.Point(296, 24)
Me.btnRecord.Name = "btnRecord"
Me.btnRecord.TabIndex = 3
Me.btnRecord.Text = "调 整"
'
'txtAmount
'
Me.txtAmount.Location = New System.Drawing.Point(192, 24)
Me.txtAmount.Name = "txtAmount"
Me.txtAmount.Size = New System.Drawing.Size(56, 21)
Me.txtAmount.TabIndex = 2
Me.txtAmount.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 = "选择工资项"
'
'cmbPayrollItem
'
Me.cmbPayrollItem.DisplayMember = "Name"
Me.cmbPayrollItem.Location = New System.Drawing.Point(96, 24)
Me.cmbPayrollItem.Name = "cmbPayrollItem"
Me.cmbPayrollItem.Size = New System.Drawing.Size(88, 20)
Me.cmbPayrollItem.TabIndex = 0
Me.cmbPayrollItem.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 = "元"
'
'btnPayoff
'
Me.btnPayoff.Location = New System.Drawing.Point(384, 24)
Me.btnPayoff.Name = "btnPayoff"
Me.btnPayoff.TabIndex = 3
Me.btnPayoff.Text = "发 放"
'
'lblEmployee
'
Me.lblEmployee.BackColor = System.Drawing.SystemColors.ActiveCaptionText
Me.lblEmployee.Cursor = System.Windows.Forms.Cursors.Hand
Me.lblEmployee.Font = New System.Drawing.Font("宋体", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(134, Byte))
Me.lblEmployee.ForeColor = System.Drawing.SystemColors.ActiveCaption
Me.lblEmployee.Location = New System.Drawing.Point(360, 16)
Me.lblEmployee.Name = "lblEmployee"
Me.lblEmployee.TabIndex = 9
Me.lblEmployee.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'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 = 7
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 = 6
'
'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 = 8
Me.Label4.Text = "当前用户"
'
'FormPayroll
'
Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
Me.CancelButton = Me.btnExit
Me.ClientSize = New System.Drawing.Size(736, 446)
Me.Controls.Add(Me.Panel2)
Me.Controls.Add(Me.Splitter1)
Me.Controls.Add(Me.Panel1)
Me.Name = "FormPayroll"
Me.Text = "员工工资"
Me.Panel1.ResumeLayout(False)
Me.Panel2.ResumeLayout(False)
Me.GroupBox2.ResumeLayout(False)
CType(Me.dgLastMonthAttendance, 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
oPayroll = New Payroll(CStr(e.Node.Tag), Year(Now()), Month(Now()) - 1)
InitialData()
End If
End Sub
Private Sub InitialData()
cmbPayrollItem.DataSource = Payroll.Items
oPayroll.FillRecord()
dgCurrent.DataSource = Payroll.ItemRecordTable.DefaultView
dgLastMonthAttendance.DataSource = Attendance.LastMonthRecord(lblEmployee.Tag).DefaultView
'dgHistory.DataSource = Attendance.GetHistoryRecord(lblEmployee.Tag).DefaultView
'dgHistory.DataSource = oAttendance.FillHistoryRecord.DefaultView
End Sub
Private Sub FormAttendance_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
InitialTree()
End Sub
Private Sub cmbPayrollItem_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles cmbPayrollItem.SelectedIndexChanged
txtAmount.Text = oPayroll(cmbPayrollItem.SelectedValue).Sum
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
oPayroll.RecordItem(CInt(cmbPayrollItem.SelectedValue), CDbl(txtAmount.Text))
End Sub
Private Sub btnPayoff_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPayoff.Click
Try
If oPayroll.Payoff() = 0 Then
MessageBox.Show("员工" & oPayroll.Year & "年" & oPayroll.Month & "月工资发放成功!")
End If
Catch ex As Exception
If ex.Message = "工资已经发放!" Then
MessageBox.Show(ex.Message)
Else
Throw New Exception(ex.Message)
End If
End Try
End Sub
End Class
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -