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


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

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

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


加好友 发短信
等级:幼狐 帖子:132 积分:1831 威望:0 精华:0 注册:2015/2/10 21:41:00
多值分配统计问题,请老师指点  发帖心情 Post By:2018/8/22 16:10:00 [只看该作者]

多值分配统计问题,请老师指点
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


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


加好友 发短信
等级:幼狐 帖子:132 积分:1831 威望:0 精华:0 注册:2015/2/10 21:41:00
  发帖心情 Post By:2018/8/22 16:35:00 [只看该作者]

按钮中的代码:ElseIf lst1.Contains ("A") = True And  dr2("等级") <> 1只是定位到了姓名=“A”的产值,是个个案,要同时定位其它等级为1的姓名不知如何修改代码。


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107680 积分:547721 威望: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

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


加好友 发短信
等级:幼狐 帖子:132 积分:1831 威望:0 精华:0 注册:2015/2/10 21:41:00
  发帖心情 Post By:2018/8/22 16:46:00 [只看该作者]

谢老师,达到目的,代码有点抽象,好好理会消化

 回到顶部