Foxtable(狐表)用户栏目专家坐堂 → 计算工时的难题,同一天多次出工,只计算一次。附例子


  共有10691人关注过本帖树形打印复制链接

主题:计算工时的难题,同一天多次出工,只计算一次。附例子

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/30 10:18:00 [显示全部帖子]

相当复杂:

 

 

Dim dic As New Dictionary(of Date,List(of String))
Dim dic2 As new Dictionary(of String,Integer)
For Each dr As DataRow In DataTables("表A").DataRows
    Dim dt As Date = dr("工程时间")
    Dim lst As List(of String)
    If dic.ContainsKey(dt) = False
        lst = new List(of String)
        dic.add(dt,lst)
    Else
        lst = dic(dt)
    End If
    Dim nms() As String = dr("参与员工").Split(",")
    For Each nm As String In nms
        If lst.Contains(nm) = False Then
            lst.Add(nm)
        End If
    Next
Next
For Each lst As List(of String) In dic.Values
    For Each nm As String In lst
        If dic2.ContainsKey(nm) = False Then
            dic2.Add(nm,1)
        Else
            dic2(nm) = dic2(nm) + 1
        End If
    Next
Next
For Each nm As String In dic2.Keys
    output.show(nm & ":" & dic2(nm))
Next


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2012/3/31 16:23:00 [显示全部帖子]

For Each i As integer =  DataTables("考勤_Table1").DataRows.Count -1 To 0 Step -1
    Dim dr AS DataRow = DataTables("考勤_Table1").DataRows(i)
    Dim dt As String = dr("工程时间").DayOfWeek
    If dt <> 0 and dt <> 6 Then
        dr.Delete
    End If
Next

 回到顶部