以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如果控件不存在,取消操作 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=174602) |
-- 作者:采菊东篱下 -- 发布时间:2022/1/22 17:12:00 -- 如果控件不存在,取消操作 这样写在没有生成红色标注的控件时直接报控件不存在,我想如果控件不存在时点按钮保存直接取消操作,不弹出提示,其他代码没问题,我测试过了。 Dim Str As String = fz.Value If Forms("主窗口").Controls("fenzhu").text = "" Then messagebox.show("请选择分组") Return End If Dim tbl As WinForm.Table = Forms("主窗口").Controls("Table\'" & Str & "\'") If Forms("主窗口").ExistControl("Table\'" & Str & "\'") Then Dim drs As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = \'" & lx & "\' And [棋赛名称] = \'" & di1 & "\'And [第几轮比赛] = \'" & di2 & "\' And [分组] = \'" & Str & "\'","","本轮止累计积分 Desc,本轮止曾交战对手累计积分 Desc") If drs IsNot Nothing Then Dim i1 As Integer = 1 For n As Integer = 0 To drs.Count - 1 \'遍历所有行 If n = 0 Then drs(n)("名次") = i1 ElseIf n > 0 Then If drs(n)("本轮止累计积分") = drs(n-1)("本轮止累计积分") AndAlso drs(n)("本轮止曾交战对手累计积分") = drs(n-1)("本轮止曾交战对手累计积分") Then i1 = i1 drs(n)("名次") = i1 ElseIf drs(n)("本轮止累计积分") < drs(n-1)("本轮止累计积分") _ OrElse (drs(n)("本轮止累计积分") = drs(n-1)("本轮止累计积分") AndAlso drs(n)("本轮止曾交战对手累计积分") < drs(n-1)("本轮止曾交战对手累计积分")) _ OrElse (drs(n)("本轮止累计积分") = drs(n-1)("本轮止累计积分") AndAlso drs(n)("本轮止曾交战对手累计积分") > drs(n-1)("本轮止曾交战对手累计积分")) _ OrElse drs(n)("本轮止累计积分") > drs(n-1)("本轮止累计积分") Then i1 = i1 + 1 drs(n)("名次") = i1 End If End If drs(n).Save Next End If DataTables("比赛积分").SQLUpdate(drs) DataTables("比赛积分").load Else Return End If [此贴子已经被作者于2022/1/22 17:12:22编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/1/22 17:20:00 -- 调换位置咯,先判断再使用 If Forms("主窗口").ExistControl("Table\'" & Str & "\'") Then Dim tbl As WinForm.Table = Forms("主窗口").Controls("Table\'" & Str & "\'")
|