以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  老师,麻烦帮我看下这代码改怎么改  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99053)

--  作者:jick0526
--  发布时间:2017/4/11 22:13:00
--  老师,麻烦帮我看下这代码改怎么改
Tables("表A").Filter = "客户 like \'%" & e.Sender.Text & "%\'"      Textchanged事件

Dim cmb As WinForm.ComboBox = e.form.Controls("客户")  Enter
cmb.ComboList = DataTables("表A").GetComboListString("客户")      Enter事件

老师,我想问下,上面两段代码我如果想把它放在功能区的组合框里,能够对所有的表和所有的列都通用,我如果想查哪一列,只要先点一下那一列,再在功能区的组合框里输入想查的数据就可以了,这样代码该怎么改,要放在哪个事件,谢谢!


--  作者:有点蓝
--  发布时间:2017/4/11 22:21:00
--  
参考:


--  作者:jick0526
--  发布时间:2017/4/16 3:21:00
--  
老师,上面你发的第一个我试着会弄了,但是第二个一直试着改还是不会弄,我要效果是想要可以针对当前表的当前列,相当于是通用的,不是针对某表某列,麻烦老师帮我写下代码,另外我把主菜单的系统事件写入下面代码可以吗?
Static fm As RibbonMenu.ComboBox
If fm Is Nothing Then
    fm = CType(RibbonTabs("日常工作").Groups("快速筛选").Items("筛选"), RibbonMenu.ComboBox)
End If
If CurrentTable.Position < 0 OrElse CurrentTable.ColSel < 0 Then 
    If fm.Enabled Then
        fm.Enabled = False
    End If
Else
    If Not fm.Enabled Then
        fm.Enabled = True
    End If
End If

--  作者:有点蓝
--  发布时间:2017/4/16 9:37:00
--  
上面代码执行有什么问题呢?
--  作者:jick0526
--  发布时间:2017/4/16 14:45:00
--  
我就是想在菜单栏做个模糊筛选,折腾几天了,麻烦老师帮我写下代码,谢谢!
--  作者:jick0526
--  发布时间:2017/4/16 14:48:00
--  
Tables("表A").Filter = "客户 like \'%" & e.Sender.Text & "%\'"      Textchanged事件

Dim cmb As WinForm.ComboBox = e.form.Controls("客户")  Enter
cmb.ComboList = DataTables("表A").GetComboListString("客户")      Enter事件

和上面代码功能一样的,但是是放在菜单栏里面,不是在窗口,就是模糊筛选,是可以针对所有表都通用的,不是针对某列的,麻烦老师了,谢谢!

--  作者:有点蓝
--  发布时间:2017/4/16 15:09:00
--  
CurrentTable.Filter = "客户 like \'%" & RibbonTabs("日常工作").Groups("快速筛选").Items("筛选") & "%\'" 

然后在系统事件CurrentTableChanged加入如下代码:

With RibbonTabs("日常工作")("快速筛选")("筛选")
    .Items.Clear 
\'清除原有项目
    
For Each kh As string In 
CurrentTable.GetComboListString("客户")  
        
Dim b As New RibbonMenu.Button(c.Name) 
        b.Text = 
kh
        .Items.Add(b)

    Next
End
 With


--  作者:jick0526
--  发布时间:2017/4/16 15:14:00
--  
老师,我想要的是对所有列都通用的,不是指定对某列,是对当前表的任何列都可以的,老师能帮我改下吗,麻烦了,谢谢!
--  作者:jick0526
--  发布时间:2017/4/16 15:18:00
--  
就是我想筛选哪一列,就点下哪一列,任何在筛选框里输入想要筛选的数据,然后就会跳出所有跟这有关的数据
--  作者:有点蓝
--  发布时间:2017/4/16 22:36:00
--  
还不如直接使用系统原来的筛选菜单

With CurrentTable
    .Filter = .Cols(.ColSel).name & " Like \'%" & RibbonTabs("日常工作").Groups("快速筛选").Items("筛选") & "%\'"
End With