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


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

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

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


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

我修改过内容,29楼一共3个问题。

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


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

哦,我明白你的意思了,是你们的软件没有判别整行为空的方法,只有判断列为空的方法,所以我这样写是错的,如果要判别整行所有单元格为空才能删除呢?毕竟只判断一列为空就删除整行,怕误删。
[此贴子已经被作者于2020/8/31 20:37:59编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/8/31 20:37: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 Row = tbl.Table.AddNew()
tbl.Table.Cols("性别").Combolist = "男|女"
tbl.Table.Cols("身份").Combolist = "参赛人|裁判"
tbl.Table.Cols("所属团体或个人分组").DropForm = "所属团体目录树"
Forms("所属团体目录树").Close()
If tbl.Table.Rows.count = 0 OrElse tbl.Table.Rows(tbl.Table.Rows.Count - 1).Isnull("姓名") =  False Then'如果最后一行不为空
tbl.Table.AddNew'则自动增加一行如果最后一行不为空
End If
'
'Dim Filter As String
'For Each dc As Col In tbl.Table.Cols
    'Filter = Filter & " And " & dc.Name & " Is IsNot Null"
'Next
'tbl.Table.AddNew
[此贴子已经被作者于2020/8/31 21:06:58编辑过]

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


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

把动态生成的基本信息录入表上的数据保存到基本信息表,还是那个问题,不管怎么写都报错!
Dim tbl As WinForm.Table = Forms("主窗口").Controls("基本信息录入")
For i As Integer = 0 To Forms("主窗口").Controls("基本信息录入").Compute("Count([姓名])", "[姓名] Is Not Nothing") - 1
    For Each c2 As Col In Forms("主窗口").Controls("基本信息").Cols
        For Each c1 As Col In tbl.Table.Cols
            For Each dc As DataRow In tbl.Table.DataTable.Select("[姓名] Is Not Nothing")
                Dim dr As DataRow = DataTables("基本信息").AddNew()
                dr(c2.Name) = dc(c1.Name)(i)
            Next
        Next
    Next
    i + = 1
Next
DataTables("基本信息").Load
DataTables("基本信息").Save()

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


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

c1呢?你没定义,且基本信息录入表不止一行,还得循环执行所有行的数据。

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


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

你的代码直接报错不让保存,写成这样执行后也报错:"Cannot find column [Nothing]."

Dim dt As DataTable = Forms("主窗口").Controls("基本信息录入").Table.DataTable
    For Each dr As DataRow In dt.Select("[姓名] Is Not Nothing")
        For Each c2 As Col In Forms("主窗口").Controls("基本信息").Cols
            For Each c1 As DataCol In dt.DataCols
                Dim nr As DataRow = DataTables("基本信息").AddNew()
      nr(c2.Name) = dr(c1.Name)
            Next
        Next
    Next
DataTables("基本信息").Load
DataTables("基本信息").Save()

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


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

代码并没有排除空行,基本资料表依然有空行复制过去。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/9/1 10:59:00 [显示全部帖子]

你的代码有问题啊,不存在c1,所以还要定义c1。
[此贴子已经被作者于2020/9/1 11:02:03编辑过]

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/9/1 11:02:00 [显示全部帖子]

还有基本资料录入数据不止一行,要多行保存,要执行循环赋值。

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


加好友 发短信
等级:八尾狐 帖子:1881 积分:10368 威望:0 精华:0 注册:2019/4/6 8:45:00
  发帖心情 Post By:2020/9/1 11:21:00 [显示全部帖子]

把你的代码代进去提示就是报错,直指
        nr(c1.Name) = dr(c2.Name)
这行代码里存在c1但没有定义。
[此贴子已经被作者于2020/9/1 11:21:16编辑过]

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