桌号大于0的用你的代码,桌号等于0的代码用我的方法,其实桌号大于0的也可以用我的方法,只是代码太长了,用你的简化点,现在效果出来了,结果也对。
此主题相关图片如下:606.png
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 fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
Dim Str As String = fz.Value
DataTables("查询").DataRows.Clear
For Each s As Integer In DataTables("比赛积分").SQLGetValues("桌号","[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] > 0","桌号")
Dim nr As DataRow = DataTables("查询").AddNew
nr("桌号") = s
Dim dr As DataRow = DataTables("比赛积分").SQLFind("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = " & s & " and 红黑方='红方'")
If dr IsNot Nothing Then
nr("红方_编号") = dr("编号")
nr("红方_姓名") = dr("姓名")
nr("红方_上轮止累计积分") = dr("上轮止累计积分")
nr("红方_曾交战对手累计积分") = dr("曾交战对手累计积分")
nr("当前局成绩_红方") = dr("积分")
End If
dr = DataTables("比赛积分").SQLFind("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = " & s & " and 红黑方='黑方'")
If dr IsNot Nothing Then
nr("黑方_编号") = dr("编号")
nr("黑方_姓名") = dr("姓名")
nr("黑方_上轮止累计积分") = dr("上轮止累计积分")
nr("黑方_曾交战对手累计积分") = dr("曾交战对手累计积分")
nr("当前局成绩_黑方") = dr("积分")
End If
Next
Dim drs6 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0","","桌号")
Dim drs7 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '红方'","","桌号")
Dim drs8 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '黑方'","","桌号")
For ci As Integer = 0 To drs6.Count \ 2
Dim nr As DataRow = DataTables("查询").AddNew
If drs7.count < drs8.count Then
If ci <= drs7.count - 1 And ci < drs8.count - 1 Then
nr("桌号") = 0
nr("红方_编号") = drs7(ci)("编号")
nr("红方_姓名") = drs7(ci)("姓名")
nr("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
nr("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
nr("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
nr("黑方_编号") = drs8(ci)("编号")
nr("黑方_姓名") = drs8(ci)("姓名")
nr("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
nr("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
nr("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
ElseIf ci > drs7.count - 1 And ci <= drs8.count - 1 Then
nr("桌号") = 0
nr("红方_编号") = Nothing
nr("红方_姓名") = Nothing
nr("红方_上轮止累计积分") = 0
nr("红方_曾交战对手累计积分") = 0
nr("当前局成绩_红方") = 0
nr("黑方_编号") = drs8(ci)("编号")
nr("黑方_姓名") = drs8(ci)("姓名")
nr("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
nr("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
nr("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
End If
ElseIf drs7.count > drs8.count Then
If ci < drs7.count - 1 And ci <= drs8.count - 1 Then
nr("桌号") = 0
nr("红方_编号") = drs7(ci)("编号")
nr("红方_姓名") = drs7(ci)("姓名")
nr("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
nr("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
nr("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
nr("黑方_编号") = drs8(ci)("编号")
nr("黑方_姓名") = drs8(ci)("姓名")
nr("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
nr("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
nr("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
ElseIf ci <= drs7.count - 1 And ci > drs8.count - 1 Then
nr("桌号") = 0
nr("红方_编号") = drs7(ci)("编号")
nr("红方_姓名") = drs7(ci)("姓名")
nr("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
nr("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
nr("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
nr("黑方_编号") = Nothing
nr("黑方_姓名") = Nothing
nr("黑方_上轮止累计积分") = 0
nr("黑方_曾交战对手累计积分") = 0
nr("当前局成绩_黑方") = 0
End If
End If
Next
[此贴子已经被作者于2020/7/2 8:33:59编辑过]