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


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

主题:统计行数有问题

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110495 积分:562359 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/15 10:14:00 [显示全部帖子]

ElseIf di2 = 2 And cnt = 0 Then

    Dim drs2 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & a & "'","","积分 Desc")
For i As Integer = 0 To drs2.Count - 1
        dr = DataTables("比赛积分").AddNew
        dr("棋赛名称") = di1
        dr("第几轮比赛") = di2
        dr("日期") = di3
        dr("编号") = drs2(i)("编号")
        dr("姓名") = drs2(i)("姓名")
        dr("上轮止累计积分") = drs2(i)("积分")
        'Dim dr1 As DataRow = DataTables("比赛积分").SQLfind("[桌号] = " & drs2(idx1)("桌号") & "And ([编号] <> '" & drs2(idx1)("编号") & "'or [姓名] <> '" & drs2(idx1)("姓名") & "')")
        'dr("曾交战对手累计积分") = dr1("积分")
        dr("曾交战对手累计积分") = DataTables("比赛积分").SQLCompute("SUM(积分)","[桌号] = " & drs2(i)("桌号") & "And ([编号] <> '" & drs2(i)("编号") & "'or [姓名] <> '" & drs2(i)("姓名") & "')")
        messagebox.show(dr("曾交战对手累计积分"))
        Dim dts1 As List(of DataRow) = DataTables("基本信息").SQLSelect("[棋赛名称] = '" & di1 & "'And [身份] = '参赛人' And [缺赛轮号] like '%" & di2 & "%'")
        'If dr("编号") = dts1("编号") Then
            'dr("桌号") = Nothing
        'Else
            'dr("桌号") = math.Ceiling((i2+1) \ 2)
        'End If
        i2 += 1
    Next
    DataTables("比赛积分").Save()
    DataTables("对阵表").DataRows.Clear
    Dim drs3 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "'","","上轮止累计积分,曾交战对手累计积分 Desc")
    For i As Integer = 0 To drs3.Count - 1 Step 2
        If i+1 <= drs3.Count - 1
            Dim nr As DataRow = DataTables("对阵表").AddNew
            nr("桌号") = drs3(i)("桌号")
            nr("红方_编号") = drs3(i)("编号")
            nr("红方_姓名") = drs3(i)("姓名")
            nr("黑方_编号") = drs3(i+1)("编号")
            nr("黑方_姓名") = drs3(i+1)("姓名")
            nr("红方_上轮止累计积分") = drs3(i)("上轮止累计积分")
            nr("红方_曾交战对手累计积分") = drs3(i)("曾交战对手累计积分")
            nr("黑方_上轮止累计积分") = drs3(i+1)("上轮止累计积分")
            nr("黑方_曾交战对手累计积分") = drs3(i+1)("曾交战对手累计积分")
        End If
    Next

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110495 积分:562359 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/15 13:35:00 [显示全部帖子]

1、请照抄2楼的代码,关键字前后加了许多空格

2、这段代码【dts1("编号"),集合只能使用1,2,3...这种索引,不支持字符串索引】用法是错的,但是只在看不懂这段代码要干嘛,只能注释掉

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110495 积分:562359 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/15 17:23:00 [显示全部帖子]

Dim dr As DataRow = DataTables("比赛积分").SQLFind("[棋赛名称] = '" & di1 & "'And ([第几轮比赛] = '" & a & "' and 编号='" & dr("编号") & "'","","积分 Desc")
If dr IsNot Nothing Then
    dr("桌号") = Nothing
Else
    dr("桌号") = math.Ceiling((i2+1) \ 2)
End If

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110495 积分:562359 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/15 20:09:00 [显示全部帖子]

Dim dr As DataRow = DataTables("基本信息").SQLFind("[棋赛名称] = '" & di1 & "'And [身份] = '参赛人' And [缺赛轮号] like '%" & di2 & "%' and 编号='" & dr("编号") & "'")
If dr IsNot Nothing Then
    dr("桌号") = Nothing
Else
    dr("桌号") = math.Ceiling((i2+1) \ 2)
End If

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110495 积分:562359 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/16 11:57:00 [显示全部帖子]

自己重新生成了桌号,当然不相符,如果要一样,直接赋值就行了

dr("桌号") = drs2(ia)("桌号")

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110495 积分:562359 威望: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


 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110495 积分:562359 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/6/18 9:37:00 [显示全部帖子]

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

 回到顶部