以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=73519)

--  作者:dongxiaoqi
--  发布时间:2015/8/20 15:49:00
--  [求助]
一个表有 v v1 v2 v3 v4 v5 v6 v7 v8 v9 这些列
初始化只显示 v 这一列
v的值是一个下拉列表 有A B C三个值
当v的值发生改变为A时  将隐藏的 v1 v2 v3 列显示出来 v4 v5 v6 v7 v8 v9 隐藏
当v的值发生改变为B时  将隐藏的 v4 v5 v6 列显示出来 v1 v2 v3 v7 v8 v9 隐藏
当v的值发生改变为C时  将隐藏的 v7 v8 v9 列显示出来 v1 v2 v3 v4 v5 v6 隐藏
这种的需求如何实现?
是否可以在 DataColChanged 事件里编程实现?

--  作者:有点蓝
--  发布时间:2015/8/20 16:07:00
--  
可以啊
If e.DataCol.name = "v" Then
  CurrentTable.Cols("v1").Visible  = True
  CurrentTable.Cols("v2").Visible  = True
  CurrentTable.Cols("v3").Visible  = True
  CurrentTable.Cols("v4").Visible  = False
....
End If

--  作者:大红袍
--  发布时间:2015/8/20 16:16:00
--  

控制列的显示没多少意义。直接控制能不能输入就好。prepareEdit事件

 

Select Case e.Col.Name

    Case "1", "2", "3"

        If e.Row("v") <> "A" Then e.Cancel = true

    Case "4", "5", "6"

        If e.Row("v") <> "B" Then e.Cancel = true

    Case "7", "8", "9"

        If e.Row("v") <> "C" Then e.Cancel = true

End Select


--  作者:dongxiaoqi
--  发布时间:2015/8/20 16:22:00
--  回复:(有点蓝)可以啊If e.DataCol.name = "v" Then...
 太感谢了 正是我想要的结果!
--  作者:dongxiaoqi
--  发布时间:2015/8/20 16:23:00
--  回复:(大红袍)控制列的显示没多少意义。直接控制能...
感谢