Foxtable(狐表)用户栏目专家坐堂 → [求助]如何关闭不属于本表的列窗口


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

主题:[求助]如何关闭不属于本表的列窗口

帅哥哟,离线,有人找我吗?
流水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:279 积分:3086 威望:0 精华:0 注册:2019/7/19 15:14:00
[求助]如何关闭不属于本表的列窗口  发帖心情 Post By:2021/12/3 14:36:00 [只看该作者]

求助:如何关闭不是本表的列窗口,当打开了父表列窗口,在打开子表列窗口时,想让父表的列窗口自动关闭;

b.CloseWindow

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/3 14:47:00 [只看该作者]


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


加好友 发短信
等级:童狐 帖子:279 积分:3086 威望:0 精华:0 注册:2019/7/19 15:14:00
  发帖心情 Post By:2021/12/3 14:52:00 [只看该作者]

在同一张表多个列窗口知道怎么自动关闭和打开,跨表就不知道怎么写了;怎么判断当前已打开的列窗口不熟当前表?

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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/3 15:08:00 [只看该作者]

当前表不可能显示其它表的列窗口吧。

没有办法判断,直接根据表名关闭

Tables("某父表").Cols("照片").CloseWindow()

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


加好友 发短信
等级:童狐 帖子:279 积分:3086 威望:0 精华:0 注册:2019/7/19 15:14:00
  发帖心情 Post By:2021/12/3 15:58:00 [只看该作者]

关联表有的,父表先打开了列窗口,再打开子表的列窗口,父表的列窗口不会关闭,除非手动关闭,如果两个列窗口是同名的,就会分不清哪那个列窗口是哪个表的;
这里一个父表+3个子表,共四个列窗口,全都打开了,三个备注窗口对应三个子表,不知道哪个列窗口是哪个表的;

图片点击可在新窗口打开查看此主题相关图片如下:1638518161(1).png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:109736 积分:558396 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/12/3 16:48:00 [只看该作者]

到项目事件currenttablechanged事件,切换到某个关联表的时候,把其它表列窗口关闭

select case CurrentTable.Name 
  case "父表.子表1"
CurrentTable.Cols("备注").openWindow()
Tables("子表2").Cols("备注").CloseWindow()
Tables("子表3").Cols("备注").CloseWindow()
  case "父表.子表2"
CurrentTable.Cols("备注").openWindow()
Tables("子表1").Cols("备注").CloseWindow()
Tables("子表3").Cols("备注").CloseWindow()
  case "父表.子表3"
CurrentTable.Cols("备注").openWindow()
Tables("子表1").Cols("备注").CloseWindow()
Tables("子表2").Cols("备注").CloseWindow()

End If

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


加好友 发短信
等级:童狐 帖子:279 积分:3086 威望:0 精华:0 注册:2019/7/19 15:14:00
  发帖心情 Post By:2021/12/3 17:08:00 [只看该作者]

嗯嗯,谢谢,刚才在几个表里的AfterSelChange表事件里写了个遍历,也解决了,感谢感谢

If e.Table.Focused = True Then '输入焦点是否在表
    Dim tb() As String = {"客商资料","客商资料.收货地址","客商资料.装机明细","客商资料.客户注意事项"}
    For t As Integer = 0 To tb.Length - 1
        If Tables.Contains(tb(t)) = True Then '如果表存在
            Dim a() As String = {"备注","单证注意","注意事项"} '定义字段
            For i As Integer = 0 To a.Length - 1
                If Tables(tb(t)).Cols.Contains(a(i)) = True Then '如果字段存在
                    Dim b As Col = Tables(tb(t)).Cols(a(i)) '命名列
                    If e.NewRange.ColSel = b.Index Then '如果点击位置相同
                        If e.Table.Name = tb(t) '如果是同一张表
                            b.OpenWindow '打开列窗口
                        Else
                            b.CloseWindow '关闭列窗口
                        End If
                    Else
                        b.CloseWindow
                    End If
                End If
            Next
        End If
    Next
End If

 回到顶部