改为这样名次全为1
Dim qsmc As WinForm.ComboBox = e.Form.Controls("棋赛名称")
Dim di1 As String = qsmc.Value
Dim m As WinForm.TextBox = e.Form.Controls("第几轮")
Dim di2 As String = m.Value
Dim bsrq As WinForm.DateTimePicker = e.Form.Controls("rq")
Dim di3 As Date = bsrq.Value
Dim fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
Dim Str As String = fz.Value
For Each nr As Row In Tables("综合组").Rows
Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号] = '" & nr("红方_编号") & "'")
If dr IsNot Nothing Then
If di3 <> Nothing Then
dr("日期") = di3
End If
dr("桌号") = nr("桌号")
dr("红黑方") = "红方"
dr("积分") = nr("当前局成绩_红方")
If di2 >= 2
dr("辅助计算") = dr("上轮止累计积分") + dr("积分") + dr("曾交战对手累计积分") + DataTables("比赛积分").SQLCompute("SUM(积分)","[分组] = '" & Str & "' And [桌号] = " & dr("桌号") & " And [编号] <> '" & dr("编号") & "'and [姓名] <> '" & dr("姓名") & "'")
End If
dr.Save
End If
dr = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号]='" & nr("黑方_编号") & "'")
If dr IsNot Nothing Then
If di3 <> Nothing Then
dr("日期") = di3
End If
dr("桌号") = nr("桌号")
dr("红黑方") = "黑方"
dr("积分") = nr("当前局成绩_黑方")
If di2 >= 2
dr("辅助计算") = dr("上轮止累计积分") + dr("积分") + dr("曾交战对手累计积分") + DataTables("比赛积分").SQLCompute("SUM(积分)","[分组] = '" & Str & "' And [桌号] = " & dr("桌号") & " And [编号] <> '" & dr("编号") & "'and [姓名] <> '" & dr("姓名") & "'")
End If
dr.Save
End If
Next
DataTables("比赛积分").load
Dim bjs As List(Of String) = DataTables("比赛积分").SQLGetValues("姓名","[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "'")
For Each bj As String In bjs
Dim drs As List(Of DataRow) = DataTables("比赛积分").Select("[姓名] = '" & bj & "'", "辅助计算 DESC")
For n As Integer = 0 To drs.Count - 1 '遍历所有行
If n > 0 AndAlso drs(n)("辅助计算") = drs(n-1)("辅助计算") Then '如果总分和上一行相同
drs(n)("名次") = drs(n-1)("名次") '则排名等于上一行
Else
drs(n)("名次") = n + 1 '设置排名
End If
Next
Next