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


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

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

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


加好友 发短信
等级:八尾狐 帖子:1879 积分:10352 威望:0 精华:0 注册:2019/4/6 8:45:00
在分页集合版面动态添加的表如何继承基本表的表结构  发帖心情 Post By:2020/8/29 12:02: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.AutoAddNew = True
[此贴子已经被作者于2020/8/29 20:46:10编辑过]

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


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

这样写报错
If tbl.Table.IsFocusCell Then
    If tbl.Col.Name = "性别" Then
        Dim dr As DataRow
        If dr IsNot Nothing
            tbl.Col.ComboList = "男|女"
        End If
    End If
End If

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


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

tbl.Table.Cols("性别").Combolist = "男|女"


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


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

这样可以了。

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


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

能不能把自定义下拉目录树也加到动态表的列里?跟原来的基本信息表一样。

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


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

这是用代码重做的目录树,没有查找功能,我的意思是把窗口上带查找功能的目录树窗口做进去,效果跟原来的基本资料自定义目录树一样。

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


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

这功能以后引申到会计凭证上,在会计科目栏点击单元格能弹出会计科目目录树窗口,不可能你再做一个吧?

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


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

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

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


加好友 发短信
等级:八尾狐 帖子:1879 积分:10352 威望: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编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1879 积分:10352 威望: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编辑过]

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