以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] 怎么用代码隐藏行呢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=129235)

--  作者:龙潭春早
--  发布时间:2018/12/24 21:02:00
--  [求助] 怎么用代码隐藏行呢?

有些行的内容想要隐藏,怎么用代码实现呢?

[此贴子已经被作者于2018/12/24 21:03:04编辑过]

--  作者:有点蓝
--  发布时间:2018/12/24 22:03:00
--  
移除即可http://www.foxtable.com/webhelp/scr/2736.htm
--  作者:龙潭春早
--  发布时间:2018/12/24 22:53:00
--  
移除的话,倒是可以看不到这些行了。

但是,希望在改变条件的情况下,还能看到这些行。比如,点击菜单按钮,就能显示其它的行。

所以,希望在某种情况下,只是隐藏这些行,而不是移除(移除的话,再看到需要重新加载了)。

这样要怎么做呢?

--  作者:有点蓝
--  发布时间:2018/12/24 22:56:00
--  
tables.filter = "_Identify not in(1,2,3)"

1,2,3使用隐藏的行的主键

--  作者:龙潭春早
--  发布时间:2018/12/24 23:02:00
--  
没太明白。

蓝老师再详细讲讲。

太晚了就明天吧。

--  作者:有点蓝
--  发布时间:2018/12/24 23:14:00
--  
http://www.foxtable.com/webhelp/scr/0102.htm

In 运算符用来判断某一个值是否在指定的一系列值中,例如:

[国籍] In (\'中国\',\'美国\',\'英国\',\'法国\',\'俄罗斯\')

表示判断国籍是否是上述五国之一,显然这比用OR来连接多个表达式要简洁很多。

记得数值型的列,值不要用单引号括起来,例如:

[订单号] In (1, 3, 4, 6, 7,12)

而日期型的列,值需要用符号#括起来,例如:

[日期] In (#7/2/2012#, #7/12/2012#, #8/30/2012#)

同样如果在 In 运算符之前,加上 Not 关键词,表示不在指定的一系列值之中,例如:

[国籍] Not In (\'中国\',\'美国\',\'英国\',\'法国\',\'俄罗斯\')

表示国籍非上述指定的五国。


--  作者:有点甜
--  发布时间:2018/12/25 8:59:00
--  

参考代码

 

CurrentTable.grid.Rows(2).visible = False

 

 


--  作者:龙潭春早
--  发布时间:2018/12/25 14:46:00
--  
谢谢蓝老师,那么晚了还给回复!


想隐藏不含“酒店”数组所在的行,要怎么操作呢?

下面的代码对吗?

代码中的【 不显示该行 】部分的代码不知道怎么写了,请老师们帮个忙。

For Each dr As DataRow In DataTables("综合表").DataRows  \' 遍历 "综合表" 的数据行
    
    If dr.IsNull("应用场所") = False Then  \' 如果 "应用场所" 列不为空

        Dim plcs() As String = dr("应用场所").Split(",")  \' 将 "应用场所" 列的内容拆分成数组
        
        If \'酒店\' Not In plcs Then  \' 如果场所中不包括此场所
        
        【 不显示该行 】
        
    End If
End If
Next


--  作者:龙潭春早
--  发布时间:2018/12/25 14:57:00
--  
这样?

For Each dr As DataRow In DataTables("综合表").DataRows  \' 遍历 "综合表" 的数据行
    
    If dr.IsNull("应用场所") = False Then  \' 如果 "应用场所" 列不为空

        Dim plcs() As String = dr("应用场所").Split(",")  \' 将 "应用场所" 列的内容拆分成数组
        
        Tables.filter = " \'酒店\' Not In plcs"
        
    End If
End If
Next

--  作者:有点甜
--  发布时间:2018/12/25 15:05:00
--  
Dim ls As List(of String)
For Each dr As DataRow In DataTables("综合表").DataRows  \' 遍历 "综合表" 的数据行
    If dr.IsNull("应用场所") = False Then  \' 如果 "应用场所" 列不为空
        Dim plcs() As String = dr("应用场所").Split(",")  \' 将 "应用场所" 列的内容拆分成数组
        ls.AddRange(plcs)
    End If
Next
For i As Integer = 1 To Tables("表A").grid.Rows.count-1
    If ls.Contains(Tables("表A").grid.Rows(i)("酒店")) Then
        Tables("表A").grid.Rows(i).visible = False
    Else
       
        Tables("表A").grid.Rows(i).visible = True
    End If
   
Next