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