以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 随机红、黑方 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=151156) |
||||
-- 作者:采菊东篱下 -- 发布时间:2020/6/16 17:09:00 -- 随机红、黑方
密码:888888 第2轮开始,对阵表没有随机生成红、黑方,我已经在比赛积分表安上轮积分排除不参加此轮比赛的人后,从高到低生成一列排序,我的公式不是很对,ia要减去当前逐行统计的不参加此轮比赛人个数,再排序,这样同赛、同轮次,同排序对应的编号就可作为随机红、黑方参数。 ElseIf di2 = 2 And cnt = 0 Then Dim drs2 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = \'" & di1 & "\'And [第几轮比赛] = \'" & a & "\'","","积分 Desc") For ia As Integer = 0 To drs2.Count - 1 dr = DataTables("比赛积分").AddNew Dim dts1 As DataRow = DataTables("基本信息").SQLFind("[棋赛名称] = \'" & di1 & "\'And [身份] = \'参赛人\' And [缺赛轮号] like \'%" & di2 & "%\' and [编号] = \'" & drs2(ia)("编号") & "\'") If dts1 IsNot Nothing Then dr("排序") = Nothing Else dr("排序") = math.Ceiling((i2+1) \\ 2) \'待解,这里要减去缺赛人个数 End If dr("棋赛名称") = di1 dr("第几轮比赛") = di2 dr("日期") = di3 dr("编号") = drs2(ia)("编号") dr("姓名") = drs2(ia)("姓名") dr("上轮止累计积分") = drs2(ia)("积分") dr("曾交战对手累计积分") = DataTables("比赛积分").SQLCompute("SUM(积分)","[桌号] = " & drs2(ia)("桌号") & "And ([编号] <> \'" & drs2(ia)("编号") & "\'or [姓名] <> \'" & drs2(ia)("姓名") & "\')") i2 += 1 Next DataTables("比赛积分").Save() DataTables("对阵表").DataRows.Clear Dim drs3 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = \'" & di1 & "\'And [第几轮比赛] = \'" & di2 & "\'","","排序,上轮止累计积分 Desc,曾交战对手累计积分") For ib As Integer = 0 To drs3.Count - 1 Step 2 If ib+1 <= drs3.Count - 1 \'没有随机红、黑方 Dim nr As DataRow = DataTables("对阵表").AddNew nr("桌号") = drs3(ib)("排序") nr("红方_编号") = drs3(ib)("编号") nr("红方_姓名") = drs3(ib)("姓名") nr("黑方_编号") = drs3(ib+1)("编号") nr("黑方_姓名") = drs3(ib+1)("姓名") nr("红方_上轮止累计积分") = drs3(ib)("上轮止累计积分") nr("红方_曾交战对手累计积分") = drs3(ib)("曾交战对手累计积分") nr("黑方_上轮止累计积分") = drs3(ib+1)("上轮止累计积分") nr("黑方_曾交战对手累计积分") = drs3(ib+1)("曾交战对手累计积分") End If Next [此贴子已经被作者于2020/6/16 21:02:58编辑过]
|
||||
-- 作者:有点蓝 -- 发布时间:2020/6/16 17:32:00 -- 这个意思? ElseIf di2 = 2 And cnt = 0 Then Dim drs2 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = \'" & di1 & "\'And [第几轮比赛] = \'" & a & "\'","","积分 Desc") dim ii2 as integer = 1 For ia As Integer = 0 To drs2.Count - 1 dr = DataTables("比赛积分").AddNew Dim dts1 As DataRow = DataTables("基本信息").SQLFind("[棋赛名称] = \'" & di1 & "\'And [身份] = \'参赛人\' And [缺赛轮号] like \'%" & di2 & "%\' and [编号] = \'" & drs2(ia)("编号") & "\'") If dts1 IsNot Nothing Then dr("排序") = Nothing Else dr("排序") = ii2 ii2 += 1 End If dr("棋赛名称") = di1 dr("第几轮比赛") = di2 dr("日期") = di3 dr("编号") = drs2(ia)("编号") dr("姓名") = drs2(ia)("姓名") dr("上轮止累计积分") = drs2(ia)("积分") dr("曾交战对手累计积分") = DataTables("比赛积分").SQLCompute("SUM(积分)","[桌号] = " & drs2(ia)("桌号") & "And ([编号] <> \'" & drs2(ia)("编号") & "\'or [姓名] <> \'" & drs2(ia)("姓名") & "\')") i2 += 1 Next |
||||
-- 作者:采菊东篱下 -- 发布时间:2020/6/16 17:41:00 -- 这是跳过了不参赛者重新排序吗? |
||||
-- 作者:采菊东篱下 -- 发布时间:2020/6/16 18:09:00 -- 表怎么被锁定了,无法解锁! |
||||
-- 作者:有点蓝 -- 发布时间:2020/6/16 19:52:00 -- 自行解锁:http://www.foxtable.com/webhelp/topics/0034.htm |
||||
-- 作者:采菊东篱下 -- 发布时间:2020/6/16 21:04:00 -- 我都试过了无法解锁才请教你的,不知哪出问题了。 |
||||
-- 作者:有点蓝 -- 发布时间:2020/6/16 21:55:00 -- 截图说明,什么地方被锁? |
||||
-- 作者:采菊东篱下 -- 发布时间:2020/6/16 22:20:00 -- 比赛积分表锁定了,无法解锁。 |
||||
-- 作者:有点蓝 -- 发布时间:2020/6/16 22:33:00 -- 这里用法?http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=151139&page=2 dr.Locked = True 自己写的神奇的代码自己不知道么?解锁行:http://www.foxtable.com/webhelp/topics/0111.htm
|
||||
-- 作者:采菊东篱下 -- 发布时间:2020/6/16 22:34:00 -- 我想应该是对阵表窗口锁定按钮和解锁按钮中的代码出了问题,我用备份重新造了一下,按锁定按钮不能锁定,原选已锁定,按解锁按钮自然也无反应。 |