Foxtable(狐表)用户栏目专家坐堂 → 在分页集合版面动态添加的表如何继承基本表的表结构


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

主题:在分页集合版面动态添加的表如何继承基本表的表结构

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


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


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


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

我把原来的下拉目录树窗口改为了通用,已经在动态生成的表中成功加入,数据都能正常录入了,问题是数据录入后目录树如何关闭?

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


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

完整代码,能关闭了。
Dim tbl As WinForm.Table
Dim tab As WinForm.TabControl = Forms("主窗口").Controls("TabControl1")
If tab.TabPages.Contains("基本信息录入") = False Then
    tab.TabPages.Add("基本信息录入","基本信息录入")
    tbl = Forms("主窗口").CreateSQLTable("基本信息录入","Select * Fro m {基本信息} Where [棋赛名称] Is Null","")
    tbl.SetBounds(0, 0, 1100, 580)
    Forms("主窗口").Controls("TabControl1").Tabpages("基本信息录入").AddControl(tbl)
    Forms("主窗口").Controls("TabControl1").SelectedIndex = tab.TabPages.count + 1
Else
    tbl = Forms("主窗口").Controls("基本信息录入")
End If
tbl.Table.SetColVisibleWidth(Tables("基本信息").GetColVisibleWidth())
Dim nr As DataRow = tbl.Table.DataTable.AddNew()
tbl.Table.Cols("性别").Combolist = "男|女"
tbl.Table.Cols("身份").Combolist = "参赛人|裁判"
tbl.Table.Cols("所属团体或个人分组").DropForm = "所属团体目录树"
Forms("所属团体目录树").Close()
tbl.Table.AutoAddNew = True
[此贴子已经被作者于2020/8/29 20:40:20编辑过]

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


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

先删除基本信息录入所有行数据,再重新录入:
Dim tbl As WinForm.Table
Dim tab As WinForm.TabControl = Forms("主窗口").Controls("TabControl1")
If tab.TabPages.Contains("基本信息录入") = False Then
    tab.TabPages.Add("基本信息录入","基本信息录入")
    tbl = Forms("主窗口").CreateSQLTable("基本信息录入","Select * Fro m {基本信息} Where [棋赛名称] Is Null","")
    tbl.SetBounds(0, 0, 1100, 580)
    Forms("主窗口").Controls("TabControl1").Tabpages("基本信息录入").AddControl(tbl)
    Forms("主窗口").Controls("TabControl1").SelectedIndex = tab.TabPages.count + 1
Else
    tbl = Forms("主窗口").Controls("基本信息录入")
End If
tbl.Table.SetColVisibleWidth(Tables("基本信息").GetColVisibleWidth())
tbl.Table.DataTable.DeleteFor("")'删除所有行
Dim nr As DataRow = tbl.Table.DataTable.AddNew()
tbl.Table.Cols("性别").Combolist = "男|女"
tbl.Table.Cols("身份").Combolist = "参赛人|裁判"
tbl.Table.Cols("所属团体或个人分组").DropForm = "所属团体目录树"
Forms("所属团体目录树").Close()
If tbl.Table.Rows(tbl.Table.Rows.Count - 1) IsNot Nothing Then'如果最后一行不为空
tbl.Table.AutoAddNew = True'则自动增加一行
End If
另一按钮执行把基本信息录入数据添加到基本信息表:
Dim tbl As WinForm.Table = Forms("主窗口").Controls("基本信息录入")
Dim dc As DataRow = Forms("主窗口").Controls("基本信息录入").Table.DataTable.DataRows
If dc IsNot Nothing Then
    For Each cl As Col In CurrentTable.Cols
        For i As Integer = 0 To Forms("主窗口").Controls("基本信息录入").Rows.Count - 1
            Dim dr As DataRow = DataTables("基本信息").AddNew()
            dr(cl.Name)(i) = dc(cl.Name)(i)
            i + = 1
        Next
    Next
End If
DataTables("基本信息").Load
DataTables("基本信息").Save()
红色标注部分执行报错!
[此贴子已经被作者于2020/8/31 16:24:20编辑过]

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


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

DataRows是一个行的集合,不是具体的某一行,如果要使用第一行,这样:
Dim dc As DataRow = Forms("主窗口").Controls("基本信息录入").Table.DataTable.DataRows(0)

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


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

改为这样依然报错

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200831115344.png
图片点击可在新窗口打开查看
Dim tbl As WinForm.Table = Forms("主窗口").Controls("基本信息录入")
Dim dc As DataRow = Forms("主窗口").Controls("基本信息录入").Table.DataTable.DataRow()
    For Each cl As Col In CurrentTable.Cols
        For i As Integer = 0 To Forms("主窗口").Controls("基本信息录入").Rows("姓名").Count - 1
            Dim dr As DataRow = DataTables("基本信息").AddNew()
            dr(cl.Name) = dc(cl.Name)(i)
            i + = 1
        Next
    Next
DataTables("基本信息").Load
DataTables("基本信息").Save()
[此贴子已经被作者于2020/8/31 11:57:05编辑过]

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


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

如果要使用第一行,这样:
Dim dc As DataRow = Forms("主窗口").Controls("基本信息录入").Table.DataTable.DataRows(0)

如果要使用第二行,这样:
Dim dc As DataRow = Forms("主窗口").Controls("基本信息录入").Table.DataTable.DataRows(1)

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


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

如果要遍历所有行:http://www.foxtable.com/webhelp/topics/0419.htm

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


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

我不是指定行,我只是定义行。

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


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

改成这样,也报错:
Dim tbl As WinForm.Table = Forms("主窗口").Controls("基本信息录入")
For i As Integer = 0 To Forms("主窗口").Controls("基本信息录入").Rows("姓名").Count - 1
    For Each c2 As Col In Forms("主窗口").Controls("基本信息").Cols
        For Each c1 As Col In CurrentTable.Cols
            For Each dc As DataRow In tbl .Table.DataTable.DataRows
                Dim dr As DataRow = DataTables("基本信息").AddNew()
                dr(c2.Name) = dc(c1.Name)(i)
            Next
        Next
    Next
    i + = 1
Next
DataTables("基本信息").Load
DataTables("基本信息").Save()
[此贴子已经被作者于2020/8/31 13:57:30编辑过]

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