Foxtable(狐表)用户栏目专家坐堂 → 统计行数有问题


  共有3467人关注过本帖树形打印复制链接

主题:统计行数有问题

美女呀,离线,留言给我吧!
采菊东篱下
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/17 15:15:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

密码:888888
第2轮比赛对阵表中的桌号与比赛积分表中的排序不相符,我要缺赛者统一桌号为0,随机红、黑方(随机这里先别论),参赛者桌号引用比赛积分表上的排序,不与缺赛者同桌,如果多出一人,独立一桌。
[此贴子已经被作者于2020/6/17 15:16:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  12楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107255 积分:545536 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/17 16:11:00 [只看该作者]

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("排序") = 0
        Else
            dr("排序") = math.Ceiling((ii2) / 2)
            ii2 + = 1
        End If
        dr("棋赛名称") = di1
        dr("第几轮比赛") = di2
        dr("日期") = di3
        dr("编号") = drs2(ia)("编号")
        dr("姓名") = drs2(ia)("姓名")
        dr("轮赛次数值转换") = Val(di2)
        dr("上轮止累计积分") = drs2(ia)("积分")
        dr("曾交战对手累计积分") = DataTables("比赛积分").SQLCompute("SUM(积分)","[桌号] = " & drs2(ia)("桌号") & "And ([编号] <> '" & drs2(ia)("编号") & "'or [姓名] <> '" & drs2(ia)("姓名") & "')")
        i2 += 1
    Next
    DataTables("比赛积分").Load
    DataTables("比赛积分").Save()
    DataTables("对阵表").DataRows.Clear
    Dim drs3 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' and 排序 <> 0","","上轮止累计积分 Desc,曾交战对手累计积分")
    For ib As Integer = 0 To drs3.Count - 1 Step 2
        Dim nr As DataRow = DataTables("对阵表").AddNew
        If ib+1 <= drs3.Count - 1
            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)("曾交战对手累计积分")
        Else
            nr("桌号") = drs3(ib)("排序")
            nr("红方_编号") = drs3(ib)("编号")
            nr("红方_姓名") = drs3(ib)("姓名")
            nr("红方_上轮止累计积分") = drs3(ib)("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = drs3(ib)("曾交战对手累计积分")
        End If
    Next
    DataTables("比赛积分").SQLUpdate(drs3)
    drs3  = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' and 排序 = 0","","上轮止累计积分 Desc,曾交战对手累计积分")
    For ib As Integer = 0 To drs3.Count - 1
        Dim nr As DataRow = DataTables("对阵表").AddNew
        nr("桌号") = 0
        nr("红方_编号") = drs3(ib)("编号")
        nr("红方_姓名") = drs3(ib)("姓名")
        nr("红方_上轮止累计积分") = drs3(ib)("上轮止累计积分")
        nr("红方_曾交战对手累计积分") = drs3(ib)("曾交战对手累计积分")
    Next
    DataTables("比赛积分").SQLUpdate(drs3)
Else If cnt = 0 Then


 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/17 23:24:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:40.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:象棋排赛.foxdb

密码:888888
能不能把不参赛的人红、黑方排座,不一行行单独显示,但不跟参赛者混合排座。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  14楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107255 积分:545536 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/18 9:37:00 [只看该作者]

把排序 = 0的用法,改为和排序 <> 0的代码一样即可

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/18 10:49:00 [只看该作者]

实现了:
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 dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "'")
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 [身份] = '参赛人'")
DataTables("比赛积分").DeleteFor("棋赛名称 is null and 第几轮比赛 is null")
Dim cnt As Integer
cnt = DataTables("比赛积分").Compute("Count([姓名])", "[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "'")
If di2 =1 And cnt = 0 Then
    Do While dts.Count > 0
        Dim idx As Integer = rand.Next(0,dts.Count-1)
        dr = DataTables("比赛积分").AddNew
        dr("桌号") = math.Ceiling((i2) / 2)
        dr("日期") = di3
        dr("棋赛名称") = di1
        dr("第几轮比赛") = di2
        dr("编号") = dts(idx)("编号")
        dr("姓名") = dts(idx)("姓名")
        dr("轮赛次数值转换") = Val(di2)
        dts.RemoveAt(idx)
        i2 + = 1
    Loop
    DataTables("比赛积分").Save()
    DataTables("对阵表").DataRows.Clear
    Dim drs1 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "'","","桌号 Desc")
    For i As Integer = 0 To drs1.Count - 1 Step 2
        If i + 1 <= drs1.Count - 1
            Dim nr As DataRow = DataTables("对阵表").AddNew
            nr("桌号") = drs1(i)("桌号")
            nr("红方_编号") = drs1(i)("编号")
            nr("红方_姓名") = drs1(i)("姓名")
            nr("黑方_编号") = drs1(i+1)("编号")
            nr("黑方_姓名") = drs1(i+1)("姓名")
        End If
    Next
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("排序") = 0
        Else
            dr("排序") = math.Ceiling((ii2) / 2)
            ii2 + = 1
        End If
        dr("棋赛名称") = di1
        dr("第几轮比赛") = di2
        dr("日期") = di3
        dr("编号") = drs2(ia)("编号")
        dr("姓名") = drs2(ia)("姓名")
        dr("轮赛次数值转换") = Val(di2)
        dr("上轮止累计积分") = drs2(ia)("积分")
        dr("曾交战对手累计积分") = DataTables("比赛积分").SQLCompute("SUM(积分)","[桌号] = " & drs2(ia)("桌号") & "And ([编号] <> '" & drs2(ia)("编号") & "'or [姓名] <> '" & drs2(ia)("姓名") & "')")
        i2 + = 1
    Next
    DataTables("比赛积分").Load
    DataTables("比赛积分").Save()
    DataTables("对阵表").DataRows.Clear
    Dim drs3 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' and [排序] <> 0","","排序,上轮止累计积分 Desc,曾交战对手累计积分")
    For ib As Integer = 0 To drs3.Count - 1 Step 2
        Dim nr As DataRow = DataTables("对阵表").AddNew
        If ib + 1 <= drs3.Count - 1
            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)("曾交战对手累计积分")
        Else
            nr("桌号") = drs3(ib)("排序")
            nr("红方_编号") = drs3(ib)("编号")
            nr("红方_姓名") = drs3(ib)("姓名")
            nr("红方_上轮止累计积分") = drs3(ib)("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = drs3(ib)("曾交战对手累计积分")
        End If
    Next
    DataTables("比赛积分").SQLUpdate(drs3)
    drs3 = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' and [排序] = 0","","排序,上轮止累计积分 Desc,曾交战对手累计积分")
    For ib As Integer = 0 To drs3.Count - 1 Step 2
        Dim nr As DataRow = DataTables("对阵表").AddNew
        If ib + 1 <= drs3.Count - 1
            nr("桌号") = 0
            nr("红方_编号") = drs3(ib)("编号")
            nr("红方_姓名") = drs3(ib)("姓名")
            nr("红方_上轮止累计积分") = drs3(ib)("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = drs3(ib)("曾交战对手累计积分")
            nr("黑方_编号") = drs3(ib+1)("编号")
            nr("黑方_姓名") = drs3(ib+1)("姓名")
            nr("黑方_上轮止累计积分") = drs3(ib+1)("上轮止累计积分")
            nr("黑方_曾交战对手累计积分") = drs3(ib+1)("曾交战对手累计积分")
        Else
            nr("桌号") = 0
            nr("红方_编号") = drs3(ib)("编号")
            nr("红方_姓名") = drs3(ib)("姓名")
            nr("红方_上轮止累计积分") = drs3(ib)("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = drs3(ib)("曾交战对手累计积分")
        End If
    Next
    DataTables("比赛积分").SQLUpdate(drs3)

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  16楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/18 10:49:00 [只看该作者]

Else If cnt = 0 Then
    Dim drs4 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & a & "'","","上轮止累计积分 Desc,曾交战对手累计积分")
    For ic As Integer = 0 To drs4.Count - 1
        dr = DataTables("比赛积分").AddNew
        Dim dts2 As DataRow = DataTables("基本信息").SQLFind("[棋赛名称] = '" & di1 & "'And [身份] = '参赛人' And [缺赛轮号] like '%" & di2 & "%' and [编号] = '" & drs4(ic)("编号") & "'")
        If dts2 IsNot Nothing  Then
            dr("排序") = 0
        Else
            dr("排序") = math.Ceiling((ii2) / 2)
            ii2 + = 1
        End If
        dr("棋赛名称") = di1
        dr("第几轮比赛") = di2
        dr("日期") = di3
        dr("编号") = drs4(ic)("编号")
        dr("姓名") = drs4(ic)("姓名")
        dr("轮赛次数值转换") = Val(di2)
        dr("上轮止累计积分") = drs4(ic)("上轮止累计积分") + drs4(ic)("积分")
        dr("曾交战对手累计积分") = drs4(ic)("曾交战对手累计积分") + DataTables("比赛积分").SQLCompute("SUM(积分)","[桌号] = " & drs4(ic)("桌号") & "And [编号] <> '" & drs4(ic)("编号") & "'and [姓名] <> '" & drs4(ic)("姓名") & "'")
        i2 + = 1
    Next
    DataTables("比赛积分").Load
    DataTables("比赛积分").Save()
    DataTables("对阵表").DataRows.Clear
    Dim drs5 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' and [排序] <> 0","","排序,上轮止累计积分 Desc,曾交战对手累计积分")
    For id As Integer = 0 To drs5.Count - 1 Step 2
        Dim nr As DataRow = DataTables("对阵表").AddNew()
        If id + 1 <= drs5.Count - 1
            nr("桌号") = drs5(id)("排序")
            nr("红方_编号") = drs5(id)("编号")
            nr("红方_姓名") = drs5(id)("姓名")
            nr("黑方_编号") = drs5(id+1)("编号")
            nr("黑方_姓名") = drs5(id+1)("姓名")
            nr("红方_上轮止累计积分") = drs5(id)("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = drs5(id)("曾交战对手累计积分")
            nr("黑方_上轮止累计积分") = drs5(id+1)("上轮止累计积分")
            nr("黑方_曾交战对手累计积分") = drs5(id+1)("曾交战对手累计积分")
        Else
            nr("桌号") = drs5(id)("排序")
            nr("红方_编号") = drs5(id)("编号")
            nr("红方_姓名") = drs5(id)("姓名")
            nr("红方_上轮止累计积分") = drs5(id)("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = drs5(id)("曾交战对手累计积分")
        End If
    Next
    DataTables("比赛积分").SQLUpdate(drs5)
    drs5 = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' and [排序] = 0","","排序,上轮止累计积分 Desc,曾交战对手累计积分")
    For id As Integer = 0 To drs5.Count - 1 Step 2
        Dim nr As DataRow = DataTables("对阵表").AddNew
        If id + 1 <= drs5.Count - 1
            nr("桌号") = 0
            nr("红方_编号") = drs5(id)("编号")
            nr("红方_姓名") = drs5(id)("姓名")
            nr("红方_上轮止累计积分") = drs5(id)("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = drs5(id)("曾交战对手累计积分")
            nr("黑方_编号") = drs5(id+1)("编号")
            nr("黑方_姓名") = drs5(id+1)("姓名")
            nr("黑方_上轮止累计积分") = drs5(id+1)("上轮止累计积分")
            nr("黑方_曾交战对手累计积分") = drs5(id+1)("曾交战对手累计积分")
        Else
            nr("桌号") = 0
            nr("红方_编号") = drs5(id)("编号")
            nr("红方_姓名") = drs5(id)("姓名")
            nr("红方_上轮止累计积分") = drs5(id)("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = drs5(id)("曾交战对手累计积分")
        End If
    Next
    DataTables("比赛积分").SQLUpdate(drs5)
End If

 回到顶部
美女呀,离线,留言给我吧!
采菊东篱下
  17楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/18 10:55:00 [只看该作者]

才看到你回我,这是我昨晚想到现在才实现的。

 回到顶部
总数 17 上一页 1 2