Foxtable(狐表)用户栏目专家坐堂 → 查询按钮生成的数据不完整


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

主题:查询按钮生成的数据不完整

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


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

使用文字描述一下这段代码需要实现什么功能?

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/6/30 13:52: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 fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim Str As String = fz.Value
        DataTables("查询").DataRows.Clear
        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 cx As DataRow = DataTables("查询").AddNew
            If ci < drs7.count - 1 And ci <= drs8.count - 1 Then
                cx("桌号") = drs7(ci)("桌号")
                cx("红方_编号") = drs7(ci)("编号")
                cx("红方_姓名") = drs7(ci)("姓名")
                cx("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
                cx("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
                cx("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
                cx("黑方_编号") = drs8(ci)("编号")
                cx("黑方_姓名") = drs8(ci)("姓名")
                cx("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
            End If
            If ci <= drs7.count - 1 And ci > drs8.count - 1 Then
                cx("桌号") = drs7(ci)("桌号")
                cx("红方_编号") = drs7(ci)("编号")
                cx("红方_姓名") = drs7(ci)("姓名")
                cx("红方_上轮止累计积分") = drs7(ci)("上轮止累计积分")
                cx("红方_曾交战对手累计积分") = drs7(ci)("曾交战对手累计积分")
                cx("当前局成绩_红方") = IIF(drs7(ci).IsNull("积分"),"0",drs7(ci)("积分"))
                cx("黑方_编号") = Nothing
                cx("黑方_姓名") = Nothing
                cx("黑方_上轮止累计积分") = 0
                cx("黑方_曾交战对手累计积分") = 0
                cx("当前局成绩_黑方") = 0
            End If
            If ci > drs7.count - 1 And ci <= drs8.count - 1 Then
                cx("红方_编号") = Nothing
                cx("红方_姓名") = Nothing
                cx("红方_上轮止累计积分") = 0
                cx("红方_曾交战对手累计积分") = 0
                cx("当前局成绩_红方") = 0
                cx("桌号") = drs8(ci)("桌号")
                cx("黑方_编号") = drs8(ci)("编号")
                cx("黑方_姓名") = drs8(ci)("姓名")
                cx("黑方_上轮止累计积分") = drs8(ci)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs8(ci)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs8(ci).IsNull("积分"),"0",drs8(ci)("积分"))
            End If
        Next
        Dim drs9 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0","","桌号")
        Dim drs10 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '红方'","","桌号")
        Dim drs11 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [桌号] = 0 And [红黑方] = '黑方'","","桌号")
        For hi As Integer = 0 To (drs9.Count) \ 2
            Dim cx As DataRow = DataTables("查询").AddNew
            If hi <= drs10.count - 1 And hi < drs11.count - 1 Then
                cx("桌号") = 0
                cx("红方_编号") = drs10(hi)("编号")
                cx("红方_姓名") = drs10(hi)("姓名")
                cx("红方_上轮止累计积分") = drs10(hi)("上轮止累计积分")
                cx("红方_曾交战对手累计积分") = drs10(hi)("曾交战对手累计积分")
                cx("当前局成绩_红方") = IIF(drs10(hi).IsNull("积分"),"0",drs10(hi)("积分"))
                cx("黑方_编号") = drs11(hi)("编号")
                cx("黑方_姓名") = drs11(hi)("姓名")
                cx("黑方_上轮止累计积分") = drs11(hi)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs11(hi)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs11(hi).IsNull("积分"),"0",drs11(hi)("积分"))
            End If
            If hi <= drs10.count - 1 And hi > drs11.count - 1 Then
                cx("桌号") = 0
                cx("红方_编号") = drs10(hi)("编号")
                cx("红方_姓名") = drs10(hi)("姓名")
                cx("红方_上轮止累计积分") = drs10(hi)("上轮止累计积分")
                cx("红方_曾交战对手累计积分") = drs10(hi)("曾交战对手累计积分")
                cx("当前局成绩_红方") = IIF(drs10(hi).IsNull("积分"),"0",drs10(hi)("积分"))
                cx("黑方_编号") = Nothing
                cx("黑方_姓名") = Nothing
                cx("黑方_上轮止累计积分") = 0
                cx("黑方_曾交战对手累计积分") = 0
                cx("当前局成绩_黑方") = 0
            End If
            If hi > drs10.count - 1 And hi <= drs11.count - 1 Then
                cx("红方_编号") = Nothing
                cx("红方_姓名") = Nothing
                cx("红方_上轮止累计积分") = 0
                cx("红方_曾交战对手累计积分") = 0
                cx("当前局成绩_红方") = 0
                cx("桌号") = 0
                cx("黑方_编号") = drs11(hi)("编号")
                cx("黑方_姓名") = drs11(hi)("姓名")
                cx("黑方_上轮止累计积分") = drs11(hi)("上轮止累计积分")
                cx("黑方_曾交战对手累计积分") = drs11(hi)("曾交战对手累计积分")
                cx("当前局成绩_黑方") = IIF(drs11(hi).IsNull("积分"),"0",drs11(hi)("积分"))
            End If
        Next
[此贴子已经被作者于2020/6/30 13:52:38编辑过]

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


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

图片点击可在新窗口打开查看

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


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

这代码还有问题,第一轮没有了桌号不为0的最后一桌,把桌号大于0的代码改为:
If ci < drs7.count And ci <= drs8.count Then
生成桌号不为0的最后一行了,也不报错了,但第2轮开始就报错了,也没有了桌号为0的数据生成,位置冲突了,把所有统计行数-1的代码去掉-1依然报错。
[此贴子已经被作者于2020/7/1 9:37:05编辑过]

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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:象棋排赛(2020701).foxdb

密码:888888
我已经改了桌号大于0的代码,其余的没改,没改的报错。

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


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

所有行数统计-1是不报错了,只是没了桌数不为0的最后一桌,一调就有问题了。

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


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

没看懂。请使用文字描述一下这段代码想要实现什么功能?

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


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

1、把比赛积分表指定棋赛名称、轮次、桌号大于0的行安桌号排序
2、把比赛积分表指定棋赛名称、轮次、桌号大于0的行红方安桌号排序
3、把比赛积分表指定棋赛名称、轮次、桌号大于0的行黑方安桌号排序
4、统计上面1的行数循环除2后取最大值确定查询表要显示的行数
5、当桌号大于0时,要获取的已安1排序的比赛积分表(执行循环条件到此的)行数除2后取最大值小于上面2的红方行数统计,小于等于上面3的黑方行数统计,则把编号、姓名、上轮止累计积分、曾交战对手累计积分、当前局成绩安上面2排序的红方数据安上面4的行数位置引用到查询表红方,同理把编号、姓名、上轮止累计积分、曾交战对手累计积分、当前局成绩安上面3排序的黑方数据安上面4的行数位置引用到查询表黑方;
  当桌号大于0时,要获取的已安1排序的比赛积分表(执行循环条件到此的)行数除2后取最大值小于等于红方统计行数,大于黑方统计,则把编号、姓名、上轮止累计积分、曾交战对手累计积分、当前局成绩安上面2排序的红方数据安上面4的行数位置引用到查询表红方,查询表黑方编号、姓名为空,上轮止累计积分、曾交战对手累计积分、当前局成绩为0.
  当桌号大于0时,要获取的已安1排序的比赛积分表(执行循环条件到此的)行数除2后取最大值大于红方统计行数,小于等于黑方统计,查询表红方编号、姓名为空,上轮止累计积分、曾交战对手累计积分、当前局成绩为0,把编号、姓名、上轮止累计积分、曾交战对手累计积分、当前局成绩安上面2排序的红方数据安上面4的行数位置引用到查询表黑方。
  桌号为0的代码同理编写,只是桌号=0.
[此贴子已经被作者于2020/7/1 11:12:10编辑过]

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


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

描述要做什么功能,不是描述这个代码的过程。查询表最终要显示什么结果?

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


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

把比赛积分表中指定的棋赛名称、轮次、分组数据复制到查询表,红、黑方都要一致。
[此贴子已经被作者于2020/7/1 11:45:36编辑过]

 回到顶部
总数 33 上一页 1 2 3 4 下一页