以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助][分享]筛选  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=129917)

--  作者:工匠
--  发布时间:2019/1/8 18:16:00
--  [求助][分享]筛选
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:筛选20190108.table



老师好!
       今天在论坛看到一个关于表列值在首行筛选的例子,非常好!谢谢分享!在实际项目中有一定的辅助作用,但是好像只能对字符型和备注可以筛选,对日期,数值等录入内容就会报错。工作中实际数据类型有多种,请老师帮优化3个需求:1.对于其它数据类型也支持筛选(比如:日期,整数,高精度小数,双精度小数等)2.对于需要筛选的列,没有录入的内容(文字)能用*号代替,多个关键字过滤筛选 3.在窗口表也能实现首行筛选。万分感谢!!!
谢谢!!!
[此贴子已经被作者于2019/1/8 18:51:31编辑过]

--  作者:有点蓝
--  发布时间:2019/1/8 20:25:00
--  
1、2:txt_TextChanged函数

Dim sender = args(0)
Dim e = args(1)
Dim _flex = sender.parent
Dim _row = _flex.rows.fixed-1
Dim _col = _flex.Col

_flex(_row, _col) = sender.Text
Dim filter As String = "1=1"
For i As Integer = 0 To _flex.Cols.count-1
    Dim str As String = _flex(_row, i)
    If str > "" Then
        For Each s As String  In str.Split("*")
            filter &= " and convert(" & _flex.Cols(i).name & ",\'System.String\') Like \'%" & s & "%\'"
        Next
    End If
Next
Dim t As Table = Tables(_flex.name)
t.filter = filter

3、看懂afteropenproject事件代码,自己搬到窗口


--  作者:工匠
--  发布时间:2019/1/9 14:50:00
--  
谢谢有点蓝老师,可以达到使用需求,再次感谢!