加好友 发短信
等级:版主
帖子:85326
积分:427815
威望:0
精华:5
注册:2012/10/18 22:13:00
|
Post By:2014/5/7 17:26:00 [显示全部帖子]
猜一下,这个意思?
Dim dt As DataTable Dim dtb As New DataTableBuilder("统计") dtb.AddDef("工号", Gettype(String), 16) dtb.AddDef("数量", Gettype(Double)) dt = dtb.Build() '开始逐行累加统计 Dim lst As New Dictionary(of String ,DataRow) '定义一个字典,用于检索每个员工在统计表中对应的行 For Each dr1 As DataRow In DataTables("产量登记").Select(Tables("产量登记").Filter) 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
|
|