Foxtable(狐表)用户栏目专家坐堂 → 多值字段统计的问题请教?


  共有2224人关注过本帖平板打印复制链接

主题:多值字段统计的问题请教?

帅哥哟,离线,有人找我吗?
manyifuwu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5397 威望:0 精华:0 注册:2009/2/5 13:09:00
多值字段统计的问题请教?  发帖心情 Post By:2016/6/11 0:15: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("派工").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
Tables("窗口3_统计表").DataSource = DataTables("统计")

'设置月份的列宽
For Each c As Col In Tables("窗口3_统计表").Cols
     If c.DataCol.IsNumeric Then
        c.Width = 58
     End If
Next


 回到顶部