Foxtable(狐表)用户栏目专家坐堂 → 向下移一行


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

主题:向下移一行

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


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

在后台的表中插入_sort key,提示不能使用_sortkey作为列名,查设置标志列没这表的表结构显示。
如何添加_sortkey列?
            If tbl.Table.DataTable.DataCols.Contains("_sortkey") = False Then
                tbl.Table.DataTable.DataCols.Add("_sortkey",Gettype(Decimal))
            End If
这样写不报错,但没任何数据显示。 
[此贴子已经被作者于2022/1/4 21:39:26编辑过]

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


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

            Dim dt As WinForm.Table
            Dim tab1 As WinForm.TabControl = Forms("主窗口").Controls("TabControl1")
            Dim mc1 As String = "临时过渡取数"
            If tab1.TabPages.Contains(mc1) = False Then
                tab1.TabPages.Add(mc1,mc1)
                dt = Forms("主窗口").CreateSQLTable("Table'" & mc1 & "'","Select * Fro m {数据过渡表}","")
                dt.SetBounds(0, 0, 1300, 580)
                Forms("主窗口").Controls("TabControl1").Tabpages(mc1).AddControl(dt)
                Forms("主窗口").Controls("TabControl1").SelectedIndex = tab1.TabPages.count + 1
            Else
                dt = Forms("主窗口").Controls("Table'" & mc1 & "'")
            End If
            If tbl.Table.DataTable.DataCols.Contains("_sortkey") = False Then
                tbl.Table.DataTable.DataCols.Add("_sortkey",Gettype(Decimal))
            End If
            dt.Table.SetColVisibleWidth("日期|60|棋赛名称|100|棋赛副名|100|第几轮比赛|60|团体赛或个人赛|90|分组|80|上轮名次|50|编号|30|姓名|60|上轮止累计积分|90|曾交战对手累计积分|90")
            dt.Table.SetHeaderRowHeight(20,40)
            dt.Table.DataTable.DataRows.Clear
            Dim drs2 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & Cstr(Val(di2)-1) & "' And [分组] = '" & Str & "'","","积分 Desc")
            For ia As Integer = 0 To drs2.Count - 1
                Dim t As Row = dt.Table.AddNew()
                t("棋赛名称") = di1
                t("棋赛副名") = Forms("主窗口").Controls("TextBox4").text
                t("第几轮比赛") = di2
                t("日期") = di3
                t("上轮名次") = drs2(ia)("名次")
                t("编号") = drs2(ia)("编号")
                t("姓名") = drs2(ia)("姓名")
                t("团体赛或个人赛") = lx
                t("分组") = Str
                t("上轮止累计积分") = drs2(ia)("积分")
                t("曾交战对手累计积分") = DataTables("比赛积分").SQLCompute("SUM(积分)","[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [分组] = '" & Str & "' And [排序] = " & drs2(ia)("排序") & " And ([编号] <> '" & drs2(ia)("编号") & "'or [姓名] <> '" & drs2(ia)("姓名") & "')")
            Next
            dt.Table.Save()
            For ia1 As Integer = 0 To dt.Table.rows.count-1 Step 2
                If ia1+1 < dt.Table.Rows.Count Then
                    For ia As Integer = 0 To drs2.Count - 1
                        Dim dr2a1 As DataRow = DataTables("比赛积分").SQLFind("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & Cstr(Val(di2)-1) & "' And [分组] = '" & Str & "' And [排序] = " & drs2(ia)("排序") & " And ([编号] <> '" & drs2(ia)("编号") & "'or [姓名] <> '" & drs2(ia)("姓名") & "')")
                        If dt.Table.Rows(ia1+1)("编号") = dr2a1("编号") Then
                            With dt.Table
                                .Rows(ia1+1).Move(.Position + 1)
                            End With
                        End If
                    Next
                End If
            Next
            dt.Table.Save()
            For ia2 As Integer = 0 To dt.Table.Rows.Count - 1
                Dim dts1 As DataRow = DataTables("基本信息").SQLFind("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [分组] = '" & Str & "' And [身份] = '参赛人' And [缺赛轮号] like '%" & di2 & "%' and [编号] = '" & dt.Table.Rows(ia2)("编号") & "'")
                dr = DataTables("比赛积分").AddNew
                If dts1 IsNot Nothing Then
                    dr("排序") = 0
                Else
                    dr("排序") = math.Ceiling(ii2 / 2)
                    ii2 + = 1
                End If
                dr("棋赛名称") = di1
                dr("棋赛副名") = Forms("主窗口").Controls("TextBox4").text
                dr("第几轮比赛") = di2
                dr("日期") = di3
                dr("上轮名次") = dt.Table.Rows(ia2)("名次")
                dr("编号") = dt.Table.Rows(ia2)("编号")
                dr("姓名") = dt.Table.Rows(ia2)("姓名")
                dr("团体赛或个人赛") = lx
                dr("分组") = Str
                dr("上轮止累计积分") = dt.Table.Rows(ia2)("上轮止累计积分")
                dr("曾交战对手累计积分") = dt.Table.Rows(ia2)("曾交战对手累计积分")
            Next
            DataTables("比赛积分").Load
            DataTables("比赛积分").Save()

 回到顶部
帅哥,在线噢!
有点蓝
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

添加的临时列默认都没有任何值的,自己遍历所有行给临时列按顺序赋值

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


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

临时表本身是个空表,通过代码给它赋值的,这样写:

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

            Dim dt As WinForm.Table
            Dim tab1 As WinForm.TabControl = Forms("主窗口").Controls("TabControl1")
            Dim mc1 As String = "临时过渡取数"
            If tab1.TabPages.Contains(mc1) = False Then
                tab1.TabPages.Add(mc1,mc1)
                dt = Forms("主窗口").CreateSQLTable("Table'" & mc1 & "'","Select * Fro m {数据过渡表}","")
                dt.SetBounds(0, 0, 1300, 580)
                Forms("主窗口").Controls("TabControl1").Tabpages(mc1).AddControl(dt)
                Forms("主窗口").Controls("TabControl1").SelectedIndex = tab1.TabPages.count + 1
            Else
                dt = Forms("主窗口").Controls("Table'" & mc1 & "'")
            End If
            If tbl.Table.DataTable.DataCols.Contains("_sortkey") = False Then
                tbl.Table.DataTable.DataCols.Add("_sortkey",Gettype(Decimal))
            End If
            dt.Table.SetColVisibleWidth("日期|60|棋赛名称|100|棋赛副名|100|第几轮比赛|60|团体赛或个人赛|90|分组|80|上轮名次|50|编号|30|姓名|60|上轮止累计积分|90|曾交战对手累计积分|90")
            dt.Table.SetHeaderRowHeight(20,40)
            dt.Table.DataTable.DataRows.Clear
            Dim drs2 As List(of DataRow) = DataTables("比赛积分").SQLSelect("[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [第几轮比赛] = '" & Cstr(Val(di2)-1) & "' And [分组] = '" & Str & "'","","积分 Desc")
            For ia As Integer = 0 To drs2.Count - 1
                Dim t As Row = dt.Table.AddNew()
                t("_sortkey") = ia
                t("棋赛名称") = di1
                t("棋赛副名") = Forms("主窗口").Controls("TextBox4").text
                t("第几轮比赛") = di2
                t("日期") = di3
                t("上轮名次") = drs2(ia)("名次")
                t("编号") = drs2(ia)("编号")
                t("姓名") = drs2(ia)("姓名")
                t("团体赛或个人赛") = lx
                t("分组") = Str
                t("上轮止累计积分") = drs2(ia)("积分")
                t("曾交战对手累计积分") = DataTables("比赛积分").SQLCompute("SUM(积分)","[团体赛或个人赛] = '" & lx & "' And [棋赛名称] = '" & di1 & "' And [分组] = '" & Str & "' And [排序] = " & drs2(ia)("排序") & " And ([编号] <> '" & drs2(ia)("编号") & "'or [姓名] <> '" & drs2(ia)("姓名") & "')")
            Next
            dt.Table.Save()

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


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

应该是这代码影响它,这是给DataTable添加列,但生成的表是Table
            If tbl.Table.DataTable.DataCols.Contains("_sortkey") = False Then
                tbl.Table.DataTable.DataCols.Add("_sortkey",Gettype(Decimal))
            End If

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


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

找不到表的控件难道是这有问题?
    Dim tbl As WinForm.Table
    Dim tab As WinForm.TabControl = Forms("主窗口").Controls("TabControl1")
    Dim mc As String = Str & "排座"
    If tab.TabPages.Contains(mc) = False Then
        tab.TabPages.Add(mc,mc)
        tbl = Forms("主窗口").CreateSQLTable("Table'" & mc & "'","Select * Fr om {综合组}","")
        tbl.SetBounds(0, 0, 983, 580)
        Forms("主窗口").Controls("TabControl1").Tabpages(mc).AddControl(tbl)
        Forms("主窗口").Controls("TabControl1").SelectedIndex = tab.TabPages.count + 1
    Else
        tbl = Forms("主窗口").Controls("Table'" & mc & "'")
    End If
    tbl.Table.SetColVisibleWidth("桌号|30|红方_名次|40|红方_编号|40|红方_姓名|60|红方_上轮止累计积分|80|红方_曾交战对手累计积分|80|红方_签名|60|当前局成绩_红方|80|当前局成绩_黑方|80|黑方_签名|60|黑方_名次|40|黑方_编号|40|黑方_姓名|60|黑方_上轮止累计积分|80|黑方_曾交战对手累计积分|80")
    tbl.Table.SetHeaderRowHeight(20,40)
[此贴子已经被作者于2022/1/4 22:15:47编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110334 积分:561518 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/4 22:18:00 [只看该作者]

出错提示和这个代码没有半点关系。调试看是哪一句代码出错

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


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

没有这代码前能生成临时表、比赛积分表和排座都有数据,就是加了这代码报错。
If tbl.Table.DataTable.DataCols.Contains("_sortkey") = False Then
                tbl.Table.DataTable.DataCols.Add("_sortkey",Gettype(Decimal))
            End If
只是提示不能移动行。
[此贴子已经被作者于2022/1/4 22:21:39编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  29楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

我理解不了这个代码为什么会出错。肯定是其它地方代码的问题

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


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

密码:888888
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.foxdb

你试试,我已经注识了错误的代码,没加注识的代码只是提示不能移动行的。

 回到顶部
总数 83 上一页 1 2 3 4 5 6 7 8 9 下一页