比赛积分表棋赛名称222,第一轮已经生成9个人,但老人组表只显示4行,8个人,少了一个人,我改了一下不成功,应该红色部份有问题,请教这代码应怎么写呢?
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
If bsrq.text ="" Then
messagebox.show("请选择日期")
Return
End If
Dim fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
Dim Str As String = fz.Value
Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "'")
Dim a As String = Cstr(Val(di2)-1)
Dim i2 As Integer = 1
Dim ii2 As Integer = 1
Dim dts As List(of DataRow) = DataTables("基本信息").SQLSelect("[棋赛名称] = '" & di1 & "'And [身份] = '参赛人' And [分组] = '" & Str & "'")
DataTables("比赛积分").DeleteFor("棋赛名称 is null and 第几轮比赛 is null And [分组] = '" & Str & "'")
Dim cnt As Integer
cnt = DataTables("比赛积分").Compute("Count([姓名])", "[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "'")
If di2 =1 And cnt = 0 Then
Do While dts.Count > 0
Dim idx As Integer = rand.Next(0,dts.Count)
dr = DataTables("比赛积分").AddNew
dr("排序") = math.Ceiling(i2 / 2)
dr("日期") = di3
dr("棋赛名称") = di1
dr("第几轮比赛") = di2
dr("编号") = dts(idx)("编号")
dr("姓名") = dts(idx)("姓名")
dr("轮赛次数值转换") = Val(di2)
dr("分组") = Str
dts.RemoveAt(idx)
i2 + = 1
Loop
DataTables("比赛积分").Load
DataTables("比赛积分").Save()
DataTables("老人组").DataRows.Clear
Dim drs1 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "'","","日期 Desc,分组,排序 Desc")
Dim i As Integer
For i = 0 To drs1.Count Step 2
Dim nr As DataRow = DataTables("老人组").AddNew
If i + 1 <= drs1.Count
nr("桌号") = drs1(i)("排序")
nr("红方_编号") = drs1(i)("编号")
nr("红方_姓名") = drs1(i)("姓名")
nr("黑方_编号") = drs1(i+1)("编号")
nr("黑方_姓名") = drs1(i+1)("姓名")
End If
Dim count7 As Integer = DataTables("老人组").Compute("Count([姓名])","[红方_姓名] Is Not Null")
Dim count8 As Integer = DataTables("老人组").Compute("Count([姓名])","[黑方_姓名] Is Not Null")
If i = drs1.Count And count7 > count8 Then
nr("红方_编号") = drs1(i)("编号")
nr("红方_姓名") = drs1(i)("姓名")
nr("黑方_编号") = Nothing
nr("黑方_姓名") = Nothing
End If
Next
[此贴子已经被作者于2020/7/4 8:50:05编辑过]