-- 作者:sloyy
-- 发布时间:2012/7/30 0:08:00
--
请参考 多值字段与统计
\'生成统计表的结构 Dim dt As DataTable Dim dtb As New DataTableBuilder("工资表") dtb.AddDef("姓名", Gettype(String), 16) dtb.AddDef("工资", Gettype(Single)) dt = dtb.Build() \'开始逐行累加统计 Dim lst As New Dictionary(of String ,DataRow) \'定义一个字典,用于检索每个员工在统计表中对应的行 For Each dr1 As DataRow In DataTables("提成表").DataRows If dr1.IsNull("姓名") = False Then \'如果姓名列不为空 Dim nms() As String = dr1("姓名").Split(",") \'将工号列内容拆分成数组 Dim v As Double = dr1("提成") / nms.Length \'获得平均之后每个员工的提成 For Each nm As String In nms \'遍历参与此提成的每个员工 Dim dr2 As DataRow If lst.ContainsKey(nm) \'如果集合中包括此员工对应的行 dr2= lst(nm) \'将此行赋值给变量dr2 Else dr2 = dt.AddNew() \'否则增加一行. dr2("姓名") = nm \'新增行的姓名列设置为此姓名 lst.add(nm,dr2) \'将新增行添加到字典中,以便接下来检索 End If dr2("工资") = dr2("工资") + v \'加上平均后的产量 Next End If Next MainTable=Tables("工资表")
[此贴子已经被作者于2012-7-30 0:12:54编辑过]
|