以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]如何关闭不属于本表的列窗口 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=173525) |
-- 作者:流水 -- 发布时间:2021/12/3 14:36:00 -- [求助]如何关闭不属于本表的列窗口 求助:如何关闭不是本表的列窗口,当打开了父表列窗口,在打开子表列窗口时,想让父表的列窗口自动关闭; b.CloseWindow
|
-- 作者:有点蓝 -- 发布时间:2021/12/3 14:47:00 -- 参考:http://www.foxtable.com/webhelp/topics/1437.htm |
-- 作者:流水 -- 发布时间:2021/12/3 14:52:00 -- 在同一张表多个列窗口知道怎么自动关闭和打开,跨表就不知道怎么写了;怎么判断当前已打开的列窗口不熟当前表? |
-- 作者:有点蓝 -- 发布时间:2021/12/3 15:08:00 -- 当前表不可能显示其它表的列窗口吧。 没有办法判断,直接根据表名关闭 Tables("某父表").Cols("照片").CloseWindow()
|
-- 作者:流水 -- 发布时间:2021/12/3 15:58:00 -- 关联表有的,父表先打开了列窗口,再打开子表的列窗口,父表的列窗口不会关闭,除非手动关闭,如果两个列窗口是同名的,就会分不清哪那个列窗口是哪个表的; 这里一个父表+3个子表,共四个列窗口,全都打开了,三个备注窗口对应三个子表,不知道哪个列窗口是哪个表的;
|
-- 作者:有点蓝 -- 发布时间: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() |
-- 作者:流水 -- 发布时间: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 |