Foxtable(狐表)用户栏目专家坐堂 → 想做一个排位表


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

主题:想做一个排位表

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


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

.NET Framework 版本:4.0.30319.17929
Foxtable 版本:2020.5.1.8
错误所在事件:窗口,对阵表,Button1,Click
详细错误信息:
Column 'drs' does not belong to table .


报错,没生成任何数据。

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


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

可以先不考虑姓名,生成字符型随机号就行了,姓名能通过表事件自动引用。

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


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

50楼的代码不可能有这个错误,自己检查其它代码

不考虑姓名,这个随机号没有任何意义。还不如直接从1按顺序生成。

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


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

密码:888888
你看一下,是报错,基本信息表里姓名都有对应的编号,在随机号表的每行生成随机编号后可通过编号引用基本信息表里的对应姓名,因此关键是在随机号表里生成不重复号,编号安顺序排序就完全没必要做随机排坐了
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:象棋排赛(原).foxdb


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


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

Dim frm As WinForm.Form = Forms("随机号")
frm.Open()
DataTables("随机号").DataRows.Clear()
Dim qsmc As WinForm.ComboBox = e.Form.Controls("棋赛名称")
Dim di1 As String = qsmc.Value
Dim drs As  List(of  DataRow) = DataTables("基本信息").SQLSelect("[棋赛名称] = '" & di1 & "'And [姓名] Is Not Null And [身份] = '参赛人'")
Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "'")
If DataTables("比赛积分").DataRows.count = 0 OrElse dr Is Nothing Then
    Do While drs.Count > 0
        Dim idx As Integer = rand.Next(0,drs.Count-1 )
        Dim ds As DataRow
        ds = DataTables("随机号").AddNew()
        ds("随机号") = drs(idx)("编号")
        ds("姓名") = drs(idx)("姓名")
        drs.RemoveAt(idx)
    Loop
End If

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


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

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

密码:888888
DataTables("对阵表").DataRows.Clear
Dim bsrq As WinForm.DateTimePicker = e.Form.Controls("rq")
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 Integer = m.Value
Dim di3 As Date = bsrq.Value
'Dim ls As Integer = DataTables("基本信息").SQLCompute("Count([姓名])","[棋赛名称] = '" & di1 & "'And [姓名] Is Not Null And [身份] = '参赛人'")
Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "'")
If DataTables("比赛积分").DataRows.count = 0 OrElse dr Is Nothing Then
    Dim dts As List(of DataRow) = DataTables("随机号").SQLSelect("[姓名] Is Not Null")
    For Each ds As DataRow In DataTables("对阵表").DataRows
        di2 = 1
        ds("桌号") = 0
        Dim di4 As Integer = ds("桌号")
        Dim n = 2
        If dts.count >= n Then
            Dim ls1 As new List(Of String)
            Do While ls1.count < n
                Dim i = Rand.Next(0, dts.count-1)
                If ls1.Contains(dts("随机号")(i)) = False Then
                    ls1.add(dts("随机号")(i))
                    ls1.add(dts("姓名")(i))
                End If
            Loop
            di4 = di4 + 1
            If ls1.count = 0 Then
                ds("红方_编号") = ls1(0)
                ds("红方_姓名") = ls1(0)
            End If
            If ls1.count = 1 Then
                ds("黑方_编号") = ls1(1)
                ds("黑方_姓名") = ls1(1)
            End If
        End If
    Next
End If
DataTables("对阵表").Save()

我在对阵表窗口中的排座按钮中写入这段代码,想把随机号表中的随机号转到对阵表,随机红、黑方,且排座,不报错,但对阵表不任何数据!
[此贴子已经被作者于2020/5/7 11:13:55编辑过]

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


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

什么问题?

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


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

刚才点错了,还没写好就发了出去,我在对阵表窗口中的排座按钮中写入这段代码,想把随机号表中的随机号转到对阵表,随机红、黑方,且排座,不报错,但对阵表没任何数据!
[此贴子已经被作者于2020/5/7 11:16:13编辑过]

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


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

表都清空了,再遍历代码肯定不会执行的。既然随机号表已经有随机的数据了,直接遍历即可

DataTables("对阵表").DataRows.Clear
Dim bsrq As WinForm.DateTimePicker = e.Form.Controls("rq")
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 Integer = m.Value
Dim di3 As Date = bsrq.Value
'Dim ls As Integer = DataTables("基本信息").SQLCompute("Count([姓名])","[棋赛名称] = '" & di1 & "'And [姓名] Is Not Null And [身份] = '参赛人'")
Dim dr As DataRow = DataTables("比赛积分").SQLfind("[棋赛名称] = '" & di1 & "'")
If DataTables("比赛积分").DataRows.count = 0 OrElse dr Is Nothing Then
    Dim dts As List(of DataRow) = DataTables("随机号").SQLSelect("[姓名] Is Not Null")
    Dim nr As DataRow
    Dim i2 As Integer = 1
    For i As Integer = 0 To dts.Count - 1 Step 2
        If i+1 <= dts.Count - 1
            nr = DataTables("对阵表").AddNew
            nr("桌号") = i2
            nr("红方_编号") = dts(i)("随机号")
            nr("红方_姓名") = dts(i)("姓名")
            nr("黑方_编号") = dts(i+1)("随机号")
            nr("黑方_姓名") = dts(i+1)("姓名")
            i2 += 1
        End If
    Next
End If
DataTables("对阵表").Save()

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


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

没有任何数据!

 回到顶部
总数 120 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..12