以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于分页加载后筛选的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=107350)

--  作者:洮沙
--  发布时间:2017/9/26 15:48:00
--  [求助]关于分页加载后筛选的问题

分页加载后自制的筛选窗口:

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

代码如下:

Dim tbl As Table = Tables("主合同")
Dim Filter As String
With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "签订日期 >= \'" & .Value & "\'"
        tbl.DataTable.loadFilter = Filter
        tbl.DataTable.loadPage = 0
        tbl.DataTable.load
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "签订日期 <= \'" & .Value & "\'"
        tbl.DataTable.loadFilter = Filter
        tbl.DataTable.loadPage = 0
        tbl.DataTable.load
    End If
End With
With e.Form.Controls("DateTimePicker3")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "合同结束日期 >= \'" & .Value & "\'"
        tbl.DataTable.loadFilter = Filter
        tbl.DataTable.loadPage = 0
        tbl.DataTable.load
    End If
End With
With e.Form.Controls("DateTimePicker4")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "合同结束日期 <= \'" & .Value & "\'"
        tbl.DataTable.loadFilter = Filter
        tbl.DataTable.loadPage = 0
        tbl.DataTable.load
    End If
End With
If e.Form.Controls("CheckBox1").Checked = True
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "代账服务 =  True"
    tbl.DataTable.loadFilter = Filter
    tbl.DataTable.loadPage = 0
    tbl.DataTable.load
End If
If e.Form.Controls("CheckBox2").Checked = True
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "代税服务_国税申报 = True "
    tbl.DataTable.loadFilter = Filter
    tbl.DataTable.loadPage = 0
    tbl.DataTable.load
End If
If e.Form.Controls("CheckBox3").Checked = True
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & ("工商代理_年报公示 = True or (工商代理_注册登记 = True) Or (工商代理_变更登记 =True) Or (工商代理_注销登记 =True)")
    tbl.DataTable.loadFilter = Filter
    tbl.DataTable.loadPage = 0
    tbl.DataTable.load
End If
If e.Form.Controls("CheckBox4").Checked = True
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "下欠服务费 > 0"
    tbl.DataTable.loadFilter = Filter
    tbl.DataTable.loadPage = 0
    tbl.DataTable.load
End If

If e.Form.Controls("RadioButton2").Checked = True \' 如果已审核状态选择了"对号"
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "已审核 = True"
    tbl.DataTable.loadFilter = Filter
    tbl.DataTable.loadPage = 0
    tbl.DataTable.load
End If
If e.Form.Controls("RadioButton3").Checked = True \' 如果已审核状态未选择"对号"
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "已审核 = False Or 已审核 Is Null"
    tbl.DataTable.loadFilter = Filter
    tbl.DataTable.loadPage = 0
    tbl.DataTable.load
End If
If e.Form.Controls("RadioButton6").Checked = True \' 如果客户状态选择了"对号"
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "已终止 = True"
    tbl.DataTable.loadFilter = Filter
    tbl.DataTable.loadPage = 0
    tbl.DataTable.load
End If
If e.Form.Controls("RadioButton5").Checked = True \' 如果客户状态未选择"对号"
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "已终止 = False Or 已终止 Is Null"
    tbl.DataTable.loadFilter = Filter
    tbl.DataTable.loadPage = 0
    tbl.DataTable.load
End If
If Filter > "" Then
    tbl.DataTable.loadFilter = Filter
End If

“签订日期”和“结束日期”都能够正常筛选查询(可以实现全部数据的查询),但是如果选择了“逻辑型”的选项,出现如下错误,望版主看一下,哪里出错了,自己折腾了一下午!

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

[此贴子已经被作者于2017/9/27 9:01:46编辑过]

--  作者:有点甜
--  发布时间:2017/9/26 16:03:00
--  

Dim tbl As Table = Tables("主合同")
Dim Filter As String
With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "签订日期 >= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "签订日期 <= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("DateTimePicker3")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "合同结束日期 >= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("DateTimePicker4")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "合同结束日期 <= \'" & .Value & "\'"
    End If
End With
If e.Form.Controls("CheckBox1").Checked = True
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "代账服务 =  1"
End If
If e.Form.Controls("CheckBox2").Checked = True
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "代税服务_国税申报 = 1 "
End If
If e.Form.Controls("CheckBox3").Checked = True
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & ("工商代理_年报公示 = 1 or (工商代理_注册登记 = 1) Or (工商代理_变更登记 =1) Or (工商代理_注销登记 =)")
   
End If
If e.Form.Controls("CheckBox4").Checked = True
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "下欠服务费 > 0"
End If

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 e.Form.Controls("RadioButton6").Checked = True \' 如果客户状态选择了"对号"
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "已终止 = 1"
End If
If e.Form.Controls("RadioButton5").Checked = True \' 如果客户状态未选择"对号"
    If Filter >"" Then
        Filter = Filter & " And "
    End If
    Filter = Filter & "已终止 = 0 Or 已终止 Is Null"
   
End If
If Filter > "" Then
    tbl.DataTable.loadFilter = Filter
    tbl.DataTable.loadPage = 0
    tbl.DataTable.LoadTop = "100 percent"
    tbl.DataTable.load
End If

 


--  作者:洮沙
--  发布时间:2017/9/26 16:22:00
--  还有一点问题,

  Filter = Filter & "下欠服务费 > 0"
这一句,哪里有不对了?

 


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

 

另外,麻烦将导航栏的问题一并帮帮忙!谢谢!


--  作者:有点甜
--  发布时间:2017/9/26 18:08:00
--  

 回复3楼,你的列【下次服务费】是不是表达式列?表达式列不能作为加载条件的。

 

 你的表达式怎么写的?


--  作者:洮沙
--  发布时间:2017/9/26 19:14:00
--  回复:(有点甜) 回复3楼,你的列【下次服务费】...
是表达式列,IsNull([总费用],0)-IsNull([实收费],0)
--  作者:有点蓝
--  发布时间:2017/9/26 20:51:00
--  
Filter = Filter & " and (总费用- 实收费) > 0"
--  作者:洮沙
--  发布时间:2017/9/26 23:10:00
--  回复:(有点蓝)Filter = Filter & " and (总费用...

知道了,还是自己没有变通的想法,惭愧!另外,晚上,也没有休息,帮助我,十分感动!再次感谢!