以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请问如何有条件显示列?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=101986)

--  作者:chh2321
--  发布时间:2017/6/11 11:58:00
--  请问如何有条件显示列?
老师,您好!

我想当表第一列出现字符串“A”时,显示第二列,否则隐藏第二列。请问如何书写代码,在哪个事件中书写?

--  作者:新福星
--  发布时间:2017/6/11 12:31:00
--  
If e.DataCol.Name="第一列" Then
    If e.NewValue="A" Then
        Tables("表名").Cols("第一列").Visible=False
    Else
        Tables("表名").Cols("第一列").Visible=True
    End If
End If
放到表的DataColChanged这个事件中
[此贴子已经被作者于2017/6/11 12:32:10编辑过]

--  作者:有点色
--  发布时间:2017/6/11 14:35:00
--  

 你的逻辑有问题。是第一列某一行只要有A就隐藏第二列,还是说当前行为A,就隐藏第二列?

 

 


--  作者:chh2321
--  发布时间:2017/6/11 15:06:00
--  

我是想第一列某一行只要出现A,就出现第二列。

--  作者:chh2321
--  发布时间:2017/6/11 15:30:00
--  

是不是应该先隐藏第二列,当第一列某一行出现 “%A%”时,再Tables("表名").Cols("第二列").Visible = True ?

--  作者:有点色
--  发布时间:2017/6/11 16:27:00
--  

AfterOpenProject事件、DataColChanged事件

 

Dim fdr As DataRow = DataTables("表A").Find("第一列 like \'%A%\'")
If fdr IsNot Nothing Then
    Tables("表A").cols("第二列").Visible = True
Else
    Tables("表A").cols("第二列").Visible = False
End If

 

 


--  作者:chh2321
--  发布时间:2017/6/12 9:05:00
--  

谢谢老师,成功解决!