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


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

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

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


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

  不最后一行绝对会有空,会计凭证通常固定表高,设定最小行数,自动行高下如果内容只有两行,未填满凭证部份的以空行补够,这样打出来的凭证才美观,所以保存凭证后,只把有数据的行保存到账上,忽略空行这是所有ERP软件都有的功能。

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


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

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

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


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

如果觉得我回复的代码没有用,请自行解决,没有提问的必要了。不然请按照我提供的代码测试,如果还有问题再在我提供的代码的基础上反馈具体的错误和需求

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


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

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

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


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

遍历所有列判断,逐个判断

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


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

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


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

这算是一个bug。明天反馈一下。

或者可以到全局表事件的keydown事件自己写代码控制,如果是在逻辑型的前一个列回车就自己使用代码判断添加行

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


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

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


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

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

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


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

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

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