想整一张表A ,简单计算
姓名 工时 部门奖金
张三 10 20
李四 20 40
部门 30 60
思路:部门行工时为部门内人员的总工时,并且总工时等于部门员工个人工时之和,部门奖金为批发奖金额
姓名行工时为部门内部员工个人工时,部门奖金为个人工时除以部门总工时再乘以部门奖金,即奖金按工时平均发放
我是应用小白,对照书本《开发宝典》,没能搞清楚,请问如何实现?
谢谢
我是要实现姓名行输入部门内人员姓名,工时,而在部门行自动生成部门总工时
在部门行奖金单元,输入批复奖金额后,又能在部门人员行按工时平均自动生成奖金,每个人每小时奖金额都相同
就相当于一张电子表格
[此贴子已经被作者于2023/12/4 17:25:03编辑过]
这个表格设计不合理。应该增加一个部门列,记录哪个人员是哪个部门的。然后需要的时候做个分组统计即可:
http://www.foxtable.com/webhelp/topics/0158.htm
If e.DataCol.Name = "工时" Then
If e.DataRow("姓名") <> "部门" Then
Dim dr As DataRow = e.DataTable.Find("姓名='部门'")
If dr IsNot Nothing Then
dr("工时") = e.DataTable.Compute ("Sum(工时)", "姓名<>'部门' and 姓名 is not null")
End If
End If
End If
If e.DataCol.Name = "奖金" AndAlso e.DataRow("姓名") = "部门" Then
Dim dr As DataRow = e.DataTable.Find("姓名='部门'")
If dr.IsNull ("奖金") = False AndAlso dr.IsNull ("工时") = False Then
Dim 工时奖金 As Decimal = dr("奖金") / dr("工时")
For Each sdr As DataRow In e.DataTable.Select ("姓名<>'部门' and 姓名 is not null")
sdr("奖金") = sdr("工时") * 工时奖金
Next
End If
End If
谢谢
将此作为工作表用,好多了,省的表格很多
[此贴子已经被作者于2023/12/5 15:24:31编辑过]