以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  筛选问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=115275)

--  作者:aza520
--  发布时间:2018/3/4 11:27:00
--  筛选问题
数据是分页加载的,想在窗口中用简单的按钮设置筛选功能,按如下设置后,发现只能在当前页中进行筛选,不能对所有加载页进行筛选,请老师指点。


在窗口中有如图按钮进行筛选功能

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20180304111721.png
图片点击可在新窗口打开查看

在“开始筛选”按钮设置:
Dim Filter As String

If e.Form.Controls("RadioButton2").Checked = True \' 如果付款状态选择了"已付"
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "是否决算 = 1 "
End If
If e.Form.Controls("RadioButton3").Checked = True \' 如果付款状态选择了"未付"
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "是否决算 = 0 Or 是否决算 Is Null"
End If
If Filter > "" Then
    Tables("S征情况表").Filter = Filter
End If

e.Form.Controls("TextBox1").Value = 1 & "/" & DataTables("S征情况表").TotalPages

在“第一页”、“上一页”、“下一页”、“最后一页”按钮分别设置:
With DataTables("S征情况表")
    .LoadPage = 0 \'加载第一页
    .Load()
    e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages
End With

With DataTables("S征情况表")
    If .LoadPage > 0 Then
        .LoadPage  = .LoadPage - 1
        .Load()
        e.Form.Controls("TextBox1").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With

With DataTables("S征情况表")
    If .LoadPage < .TotalPages - 1
        .LoadPage = .LoadPage  + 1
        .Load()
        e.Form.Controls("TextBox1").Value = (.LoadPage + 1) & "/" & .TotalPages
    End If
End With

With DataTables("S征情况表")
    If .LoadPage < .TotalPages - 1
        .LoadPage  = .TotalPages - 1
        .Load()
        e.Form.Controls("TextBox1").Value = .TotalPages & "/" & .TotalPages
    End If
End With




--  作者:有点甜
--  发布时间:2018/3/4 16:07:00
--  

Tables("S征情况表").Filter = Filter

 

改成

 

With DataTables("S征情况表")
    .LoadPage = 0 \'加载第一页
    .LoadFilter = Filter
    .Load()
    e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages
End With

--  作者:aza520
--  发布时间:2018/3/4 16:34:00
--  
老师,还有一个问题,我在“显示所有”按钮设置:
Tables("S征情况表").ApplyFilter = False

为什么不能恢复到筛选前的数据

--  作者:aza520
--  发布时间:2018/3/4 17:14:00
--  
Tables("S征情况表").Filter = ""也不行


--  作者:有点甜
--  发布时间:2018/3/4 17:38:00
--  

代码改成

 

With DataTables("S征情况表")
    .LoadPage = 0 \'加载第一页
    .LoadFilter = ""
    .Load()
    e.Form.Controls("TextBox1").Value = 1 & "/" & .TotalPages
End With

--  作者:aza520
--  发布时间:2018/3/4 17:46:00
--  
谢谢老师