Foxtable(狐表)用户栏目专家坐堂 → 代码独自运行都正常显示,一齐运行死机了!


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

主题:代码独自运行都正常显示,一齐运行死机了!

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10374 威望:0 精华:0 注册:2019/4/6 8:45:00
代码独自运行都正常显示,一齐运行死机了!  发帖心情 Post By:2022/10/19 12:25:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
   下面的代码我反复测试,注识绿色代码,执行红色代码能正常执行,注识红色代码,执行绿色代码也能正常执行,全部取消注识就死机,最后显示窗口上的提示。
If Forms("主窗口").opened Then
    Dim qsmc As WinForm.ComboBox = Forms("主窗口").Controls("棋赛名称")
    Dim di1 As String = qsmc.Value
    If di1 = "" Then
        messagebox.show("请选择棋赛名称")
        Return
    End If
    Dim m As WinForm.TextBox = Forms("主窗口").Controls("第几轮")
    Dim di2 As String = m.Value
    If di2 = "" Then
        messagebox.show("请输入第几轮")
        Return
    End If
    Dim bsrq As WinForm.DateTimePicker = Forms("主窗口").Controls("rq")
    Dim di3 As Date = bsrq.Value
    If Forms("主窗口").Controls("rq").text = "" Then
        messagebox.show("请选择日期")
        Return
    End If
    Dim bslx As WinForm.TextBox = Forms("主窗口").Controls("bslx")
    Dim lx As String = bslx.Value
    Dim fz As WinForm.DropDownBox = Forms("主窗口").Controls("fenzhu")
    Dim Str As String = fz.Value
    If Forms("主窗口").Controls("fenzhu").text = "" Then
        messagebox.show("请选择分组")
        Return
    End If
    If Forms("主窗口").ExistControl("Table'" & Str & "'") Then
        Dim tbl As WinForm.Table = Forms("主窗口").Controls("Table'" & Str & "'")
        Dim nrs1 As List(Of DataRow) = tbl.Table.DataTable.Select("[桌号] Is Not Null And [红方_姓名] Is Not Null")
        If nrs1 IsNot Nothing Then
            For c1 As Integer = 0 To nrs1.Count - 1
                Dim dr1 As DataRow = DataTables("比赛积分").SQLFind("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 _
                & "' And [身份] = '参赛人' And [分组] = '" & Str & "' And [编号] = '" & nrs1(c1)("红方_编号") & "' And [姓名] = '" & nrs1(c1)("红方_姓名") & "' And ([比赛已结束] = False Or [比赛已结束] Is Null)")
                If dr1 Is Nothing Then
                    dr1 = DataTables("比赛积分").AddNew
                    dr1("日期") = di3
                    dr1("团体赛或个人赛") = lx
                    dr1("棋赛名称") = di1
                    dr1("棋赛副名") = Forms("主窗口").Controls("TextBox4").Text
                    dr1("第几轮比赛") = di2
                    dr1("身份") = "参赛人"
                    dr1("分组") = Str
                    dr1("编号") = nrs1(c1)("红方_编号")
                    dr1("姓名") = nrs1(c1)("红方_姓名")
                    dr1("红黑方") = "红方"
                    dr1("桌号") = nrs1(c1)("桌号")
                    dr1("上轮名次") = nrs1(c1)("红方_名次")
                    If nrs1(c1)("桌号") = 0 Then
                        dr1("积分") = 0
                        If di2 = 1 Then
                            dr1("本轮止累计积分") = 0
                            dr1("本轮止曾交战对手累计积分") = 0
                        ElseIf di2 >= 2 Then
                            dr1("本轮止累计积分") = nrs1(c1)("红方_上轮止累计积分")
                            dr1("本轮止曾交战对手累计积分") = nrs1(c1)("红方_曾交战对手累计积分")
                        End If 
                    ElseIf nrs1(c1)("桌号") > 0 Then
                        dr1("积分") = nrs1(c1)("当前局成绩_红方")
                        If di2 = 1 Then
                            dr1("本轮止累计积分") = nrs1(c1)("当前局成绩_红方")
                            dr1("本轮止曾交战对手累计积分") = nrs1(c1)("当前局成绩_黑方")
                        ElseIf di2 >= 2 Then
                            dr1("本轮止累计积分") = nrs1(c1)("红方_上轮止累计积分") + nrs1(c1)("当前局成绩_红方")
                            dr1("本轮止曾交战对手累计积分") = nrs1(c1)("红方_曾交战对手累计积分") + nrs1(c1)("黑方_上轮止累计积分")
                        End If
                    End If
                    dr1.Save
                ElseIf dr1 IsNot Nothing Then
                    dr1("日期") = di3
                    dr1("团体赛或个人赛") = lx
                    dr1("棋赛名称") = di1
                    dr1("棋赛副名") = Forms("主窗口").Controls("TextBox4").Text
                    dr1("第几轮比赛") = di2
                    dr1("身份") = "参赛人"
                    dr1("分组") = Str
                    dr1("编号") = nrs1(c1)("红方_编号")
                    dr1("姓名") = nrs1(c1)("红方_姓名")
                    dr1("红黑方") = "红方"
                    dr1("桌号") = nrs1(c1)("桌号")
                    dr1("上轮名次") = nrs1(c1)("红方_名次")
                    If nrs1(c1)("桌号") = 0 Then
                        dr1("积分") = 0
                        If di2 = 1 Then
                            dr1("本轮止累计积分") = 0
                            dr1("本轮止曾交战对手累计积分") = 0
                        ElseIf di2 >= 2 Then
                            dr1("本轮止累计积分") = nrs1(c1)("红方_上轮止累计积分")
                            dr1("本轮止曾交战对手累计积分") = nrs1(c1)("红方_曾交战对手累计积分")
                        End If 
                    ElseIf nrs1(c1)("桌号") > 0 Then
                        dr1("积分") = nrs1(c1)("当前局成绩_红方")
                        If di2 = 1 Then
                            dr1("本轮止累计积分") = nrs1(c1)("当前局成绩_红方")
                            dr1("本轮止曾交战对手累计积分") = nrs1(c1)("当前局成绩_黑方")
                        ElseIf di2 >= 2 Then
                            dr1("本轮止累计积分") = nrs1(c1)("红方_上轮止累计积分") + nrs1(c1)("当前局成绩_红方")
                            dr1("本轮止曾交战对手累计积分") = nrs1(c1)("红方_曾交战对手累计积分") + nrs1(c1)("黑方_上轮止累计积分")
                        End If
                    End If
                End If
            Next
        End If
        Dim nrs2 As List(Of DataRow) = tbl.Table.DataTable.Select("[桌号] Is Not Null And [黑方_姓名] Is Not Null")
        If nrs2 IsNot Nothing Then
            For c2 As Integer = 0 To nrs2.Count - 1
                Dim dr2 As DataRow = DataTables("比赛积分").SQLFind("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 _
                & "' And [身份] = '参赛人' And [分组] = '" & Str & "' And [编号] = '" & nrs2(c2)("黑方_编号") & "' And [姓名] = '" & nrs2(c2)("黑方_姓名") & "' And ([比赛已结束] = False Or [比赛已结束] Is Null)")
                If dr2 Is Nothing Then
                    dr2 = DataTables("比赛积分").AddNew
                    dr2("日期") = di3
                    dr2("团体赛或个人赛") = lx
                    dr2("棋赛名称") = di1
                    dr2("棋赛副名") = Forms("主窗口").Controls("TextBox4").Text
                    dr2("第几轮比赛") = di2
                    dr2("身份") = "参赛人"
                    dr2("分组") = Str
                    dr2("编号") = nrs2(c2)("黑方_编号")
                    dr2("姓名") = nrs2(c2)("黑方_姓名")
                    dr2("红黑方") = "黑方"
                    dr2("桌号") = nrs2(c2)("桌号")
                    dr2("积分") = nrs2(c2)("当前局成绩_黑方")
                    dr2("上轮名次") = nrs2(c2)("黑方_名次")
                    If nrs2(c2)("桌号") = 0 Then
                        dr2("积分") = 0
                        If di2 = 1 Then
                            dr2("本轮止累计积分") = 0
                            dr2("本轮止曾交战对手累计积分") = 0
                        ElseIf di2 >= 2 Then
                            dr2("本轮止累计积分") = nrs2(c2)("黑方_上轮止累计积分")
                            dr2("本轮止曾交战对手累计积分") = nrs2(c2)("黑方_曾交战对手累计积分")
                        End If 
                    ElseIf nrs2(c2)("桌号") > 0 Then
                        dr2("积分") = nrs2(c2)("当前局成绩_黑方")
                        If di2 = 1 Then
                            dr2("本轮止累计积分") = nrs2(c2)("当前局成绩_黑方")
                            dr2("本轮止曾交战对手累计积分") = nrs2(c2)("当前局成绩_红方")
                        ElseIf di2 >= 2 Then
                            dr2("本轮止累计积分") = nrs2(c2)("黑方_上轮止累计积分") + nrs2(c2)("当前局成绩_黑方")
                            dr2("本轮止曾交战对手累计积分") = nrs2(c2)("黑方_曾交战对手累计积分") + nrs2(c2)("红方_上轮止累计积分")
                        End If
                    End If
                    dr2.Save
                ElseIf dr2 IsNot Nothing Then
                    dr2("日期") = di3
                    dr2("团体赛或个人赛") = lx
                    dr2("棋赛名称") = di1
                    dr2("棋赛副名") = Forms("主窗口").Controls("TextBox4").Text
                    dr2("第几轮比赛") = di2
                    dr2("身份") = "参赛人"
                    dr2("分组") = Str
                    dr2("编号") = nrs2(c2)("黑方_编号")
                    dr2("姓名") = nrs2(c2)("黑方_姓名")
                    dr2("红黑方") = "黑方"
                    dr2("桌号") = nrs2(c2)("桌号")
                    dr2("积分") = nrs2(c2)("当前局成绩_黑方")
                    dr2("上轮名次") = nrs2(c2)("黑方_名次")
                    If nrs2(c2)("桌号") = 0 Then
                        dr2("积分") = 0
                        If di2 = 1 Then
                            dr2("本轮止累计积分") = 0
                            dr2("本轮止曾交战对手累计积分") = 0
                        ElseIf di2 >= 2 Then
                            dr2("本轮止累计积分") = nrs2(c2)("黑方_上轮止累计积分")
                            dr2("本轮止曾交战对手累计积分") = nrs2(c2)("黑方_曾交战对手累计积分")
                        End If 
                    ElseIf nrs2(c2)("桌号") > 0 Then
                        dr2("积分") = nrs2(c2)("当前局成绩_黑方")
                        If di2 = 1 Then
                            dr2("本轮止累计积分") = nrs2(c2)("当前局成绩_黑方")
                            dr2("本轮止曾交战对手累计积分") = nrs2(c2)("当前局成绩_红方")
                        ElseIf di2 >= 2 Then
                            dr2("本轮止累计积分") = nrs2(c2)("黑方_上轮止累计积分") + nrs2(c2)("当前局成绩_黑方")
                            dr2("本轮止曾交战对手累计积分") = nrs2(c2)("黑方_曾交战对手累计积分") + nrs2(c2)("红方_上轮止累计积分")
                        End If
                    End If
                End If
            Next
        End If
    End If
End If
[此贴子已经被作者于2022/10/19 14:48:05编辑过]

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


加好友 发短信
等级:超级版主 帖子:107846 积分:548581 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/19 13:38:00 [只看该作者]

请上传实例测试

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


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

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:象棋排赛20221017.zip
密码:888888

代码在配置栏-个人赛排座保存-保存个人赛积分按钮上,测试时先按下图选项选择

图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

,然后按自定义菜单上的个人赛排座保存-先按个人赛排座,注意比赛积分表上必须没有数据才会生成排座,如果有数据要先删除比赛积分表上所有数据,保存后再按个人赛排座,在生成的综合组表当前局成绩红、黑两列每行输入0-2之间的数,且和必须等于2的数如图:

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
输入完上面的数据,按保存个人赛积分按钮,如果执行保存个人赛积分所有没注识代码就死机。
[此贴子已经被作者于2022/10/19 14:18:48编辑过]

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


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

输入完上面的数据,按保存个人赛积分按钮,如果执行保存个人赛积分所有没注识代码就死机。

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


加好友 发短信
等级:超级版主 帖子:107846 积分:548581 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/10/19 15:38:00 [只看该作者]

1、个人赛排座保存-个人赛排座生成的综合组里黑方的编号有重复的编号,自己看看3楼的图。为什么有重复的自己调试排查
2、很多事件的代码不是很合理,有些根本是乱写的。比如在prepareedit事件给单元格赋值,在datacolchanged事件给表格排序,....
3、比赛积分的datacolchanged事件不合理,容易导致死循环,特别是出现重复编号的情况下,我改了一下,自己理解
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:象棋排赛20221017.zip



 回到顶部