Foxtable(狐表)用户栏目专家坐堂 → 多值分配统计问题,请老师指点


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

主题:多值分配统计问题,请老师指点

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107730 积分:547983 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/8/22 16:35:00 [显示全部帖子]

Dim dict As new Dictionary(of String,Double)
Dim level1 As List(Of String) = DataTables("员工表").GetValues("姓名","等级='1'")
Dim v1 As new List(Of String)
Dim va As new List(Of String)
For Each r As Row In Tables("产值表").Rows
    If r.IsNull("xm") = False Then
        v1.Clear
        va.Clear
        For Each s As String In r("xm").split(",")
            If level1.Contains(s) Then
                v1.Add(s)
            Else
                va.Add(s)
            End If
        Next
        Dim cz As Double = r("cz")
        If v1.Count > 0 Then
            Dim kfp As Double = cz * 0.7
            If va.Count = 0 Then
                kfp = cz
            End If
            Dim fp As Double = kfp / v1.Count
            For Each yh As String In v1
                If dict.ContainsKey(yh) Then
                    dict(yh) = dict(yh) + fp
                Else
                    dict.Add(yh,fp)
                End If
            Next
        End If
        If va.Count > 0 Then
            Dim kfp As Double = cz * 0.3
            If v1.Count = 0 Then
                kfp = cz
            End If
            Dim fp As Double = kfp / va.Count
            For Each yh As String In va
                If dict.ContainsKey(yh) Then
                    dict(yh) = dict(yh) + fp
                Else
                    dict.Add(yh,fp)
                End If
            Next
        End If
    End If
Next

For Each key As String In dict.Keys
    Dim dr As DataRow = DataTables("产值分配").Find("姓名='" & key & "'")
    If dr Is Nothing Then
        dr = DataTables("产值分配").AddNew
        dr("姓名") = key
    End If
    dr("产值") = dict(key)
Next

 回到顶部