Foxtable(狐表)用户栏目专家坐堂 → 在保存按钮如何实现在录入或替换窗口时间控间上的时间


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

主题:在保存按钮如何实现在录入或替换窗口时间控间上的时间

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
在保存按钮如何实现在录入或替换窗口时间控间上的时间  发帖心情 Post By:2020/7/2 16:01:00 [显示全部帖子]

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

密码:888888
在排座时有时忘了选时间,如果窗口已关闭,控件上原选定的数据全没了,只能重新选定,我想实现重新选定后在保存按钮中保存或修改时间,这段代码比赛积分表上的时间并没有替换。
        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 fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim Str As String = fz.Value
        For Each nr As Row In Tables("综合组").Rows
            Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号] = '" & nr("红方_编号") & "'")
            If di3 = "" Then
                dr("日期").Cancel = True
            Else
            dr("日期") = di3
            End If
            If dr IsNot Nothing Then
                dr("桌号") = nr("桌号")
                dr("红黑方") = "红方"
                dr("积分") = nr("当前局成绩_红方")
                dr.Save
            End If
            dr = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号]='" & nr("黑方_编号") & "'")
            If dr IsNot Nothing Then
                dr("桌号") = nr("桌号")
                dr("红黑方") = "黑方"
                dr("积分") = nr("当前局成绩_黑方")
                dr.Save
            End If
        Next

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/2 16:19:00 [显示全部帖子]

如果窗口日期控件上没重新选择日择,就执行原来的日期,比赛积分表日期不变,因为比赛积分表日期已录入,关闭窗口后重新打开,只作单纯的录入积分保存,这时比赛积分表的日期可不作改变。

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/2 17:50:00 [显示全部帖子]

if di3 <> nothing then报错,我改为if di3 <> "" then一样报错。

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/2 20:01:00 [显示全部帖子]

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

密码:888888

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

        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 fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim Str As String = fz.Value
        For Each nr As Row In Tables("综合组").Rows
            Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号] = '" & nr("红方_编号") & "'")
            If di3 <> Nothing Then
                dr("日期") = di3
            End If
            dr("桌号") = nr("桌号")
            dr("红黑方") = "红方"
            dr("积分") = nr("当前局成绩_红方")
            dr.Save
            dr = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号]='" & nr("黑方_编号") & "'")
            dr("桌号") = nr("桌号")
            dr("红黑方") = "黑方"
            dr("积分") = nr("当前局成绩_黑方")
            dr.Save
        Next
        DataTables("比赛积分").load

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/2 20:05:00 [显示全部帖子]

if di3 <> nothing then绝对不可能有问题,有也是其他地方的问题
这个问题我已知道哪出错了,现在弹窗提示的错误我就不知哪的问题,哦比赛积分表日期依然没变,应该是这出了问题。
[此贴子已经被作者于2020/7/2 20:06:18编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/2 20:17:00 [显示全部帖子]

没有判断SQLfind返回的结果是否有值
保存按钮执行的是把在对阵表中输入的积分保存到比赛积分表,比赛积分表的数据通过排座按钮已生成数据,对阵表引用比赛积分表数据安指定格式显示而已对阵表有数据显示,比赛积分表就一定有值,我故意把判断删除的。

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/2 20:28: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 fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim Str As String = fz.Value
        For Each nr As Row In Tables("综合组").Rows
            Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号] = '" & nr("红方_编号") & "'")
            If di3 <> Nothing Then
                dr("日期") = di3
            End If
            If dr IsNot Nothing Then
                dr("桌号") = nr("桌号")
                dr("红黑方") = "红方"
                dr("积分") = nr("当前局成绩_红方")
                dr.Save
            End If
            dr = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号]='" & nr("黑方_编号") & "'")
            If dr IsNot Nothing Then
                dr("桌号") = nr("桌号")
                dr("红黑方") = "黑方"
                dr("积分") = nr("当前局成绩_黑方")
                dr.Save
            End If
        Next
[此贴子已经被作者于2020/7/2 20:29:39编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/2 20:34:00 [显示全部帖子]

补了,还报错,应怎么改?

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/2 20:59: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 fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim Str As String = fz.Value
        For Each nr As Row In Tables("老人组").Rows
            Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号] = '" & nr("红方_编号") & "'")
            If di3 <> Nothing Then
                dr("日期") = di3
            End If
            If dr IsNot Nothing Then
                dr("桌号") = nr("桌号")
                dr("红黑方") = "红方"
                dr("积分") = nr("当前局成绩_红方")
                dr.Save
            End If
            dr = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号]='" & nr("黑方_编号") & "'")
            If di3 <> Nothing Then
                dr("日期") = di3
            End If
            If dr IsNot Nothing Then
                dr("桌号") = nr("桌号")
                dr("红黑方") = "黑方"
                dr("积分") = nr("当前局成绩_黑方")
                dr.Save
            End If
        Next
        DataTables("比赛积分").load

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


加好友 发短信
等级:八尾狐 帖子:1882 积分:10385 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/7/8 20:51:00 [显示全部帖子]


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

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

密码:888888
    对阵表窗口中的综合组保存代码遇到第3轮0桌数据,综合组表数据是正确的,但保存到比赛积表分,0桌的积分和桌号都不是综合表上的数据,全乱了,请教如何补漏这洞?
        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 fz As WinForm.ComboBox = e.Form.Controls("fenzhu")
        Dim Str As String = fz.Value
        For Each nr As Row In Tables("综合组").Rows
            Dim dr1 As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号] = '" & nr("红方_编号") & "'")
            If dr1 IsNot Nothing Then
                If di3 <> Nothing Then
                    dr1("日期") = di3
                End If
                dr1("桌号") = nr("桌号")
                dr1("红黑方") = "红方"
                dr1("积分") = nr("当前局成绩_红方")
                If di2 >= 2 Then
                    dr1("本轮止累计积分") = dr1("上轮止累计积分") + dr1("积分")
                    dr1("本次止曾交战对手累计积分") =  dr1("曾交战对手累计积分") + DataTables("比赛积分").SQLCompute("SUM(上轮止累计积分)","[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [排序] = " & dr1("排序") & " And [编号] <> '" & dr1("编号") & "'And [姓名] <> '" & dr1("姓名") & "'")
                End If
                dr1.Save
            End If
            Dim dr2 As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [编号]='" & nr("黑方_编号") & "'")
            If dr2 IsNot Nothing Then
                If di3 <> Nothing Then
                    dr2("日期") = di3
                End If
                dr2("桌号") = nr("桌号")
                dr2("红黑方") = "黑方"
                dr2("积分") = nr("当前局成绩_黑方")
                If di2 >= 2 Then
                    dr2("本轮止累计积分") = dr2("上轮止累计积分") + dr2("积分")
                    dr2("本次止曾交战对手累计积分") =  dr2("曾交战对手累计积分") + DataTables("比赛积分").SQLCompute("SUM(上轮止累计积分)","[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "' And [排序] = " & dr2("排序") & " And [编号] <> '" & dr2("编号") & "' And [姓名] <> '" & dr2("姓名") & "'")
                End If
                dr2.Save
            End If
        Next
        Dim drs As List(of DataRow) = DataTables("比赛积分").SQLSelect("[棋赛名称] = '" & di1 & "'And [第几轮比赛] = '" & di2 & "' And [分组] = '" & Str & "'","","本轮止累计积分 Desc,本次止曾交战对手累计积分 Desc")
        Dim i1 As Integer = 1
        For n As Integer = 0 To drs.Count - 1 '遍历所有行
            If n > 0 AndAlso drs(n)("本轮止累计积分") = drs(n-1)("本轮止累计积分") AndAlso drs(n)("本次止曾交战对手累计积分") = drs(n-1)("本次止曾交战对手累计积分") Then
                drs(n)("名次") = drs(n-1)("名次")
            Else
                drs(n)("名次") = i1
                i1 + = 1
            End If
        Next
        DataTables("比赛积分").SQLUpdate(drs)
        DataTables("比赛积分").load


 回到顶部
总数 15 1 2 下一页