以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 多值分配统计问题,请老师指点 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=123765) |
||||
-- 作者:dy6608 -- 发布时间:2018/8/22 16:10:00 -- 多值分配统计问题,请老师指点 多值分配统计问题,请老师指点
|
||||
-- 作者:dy6608 -- 发布时间:2018/8/22 16:35:00 -- 按钮中的代码:ElseIf lst1.Contains ("A") = True And dr2("等级") <> 1只是定位到了姓名=“A”的产值,是个个案,要同时定位其它等级为1的姓名不知如何修改代码。 |
||||
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2018/8/22 16:46:00 -- 谢老师,达到目的,代码有点抽象,好好理会消化 |