以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于后台筛选,这段代码的问题究竟在哪里?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=109660)

--  作者:tuohai
--  发布时间:2017/11/16 12:35:00
--  关于后台筛选,这段代码的问题究竟在哪里?
关于后台筛选,这段代码的问题究竟在哪里?

 Dim LoadFilter As String
With e.Form.Controls("开始日期")
    If .Value IsNot Nothing Then
        If LoadFilter >"" Then
            LoadFilter = LoadFilter & " And "
        End If 
        LoadFilter = LoadFilter & "录入日期 >= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("结束日期")
    If .Value IsNot Nothing Then
        If LoadFilter >"" Then
            LoadFilter = LoadFilter & " And "
        End If 
        LoadFilter = LoadFilter & "录入日期 <= \'" & .Value & "\'"
    End If
End With
If e.Form.Controls("标注").Checked = True \' 如果付款状态选择了"已付"
          If LoadFilter >"" Then
            LoadFilter = LoadFilter & " And "
        End If 
        LoadFilter = LoadFilter & "标注 = True"
End If
If e.Form.Controls("未标注").Checked = True \' 如果付款状态选择了"未付"
          If LoadFilter >"" Then
            LoadFilter = LoadFilter & " And "
        End If 
        LoadFilter = LoadFilter & "标注 = False Or 标注 Is Null"
End If
If LoadFilter > "" Then
    DataTables("服装资料表").Load()
End If

--  作者:有点甜
--  发布时间:2017/11/16 12:53:00
--  
Dim LoadFilter As String
With e.Form.Controls("开始日期")
    If .Value IsNot Nothing Then
        If LoadFilter >"" Then
            LoadFilter = LoadFilter & " And "
        End If
        LoadFilter = LoadFilter & "录入日期 >= \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("结束日期")
    If .Value IsNot Nothing Then
        If LoadFilter >"" Then
            LoadFilter = LoadFilter & " And "
        End If
        LoadFilter = LoadFilter & "录入日期 <= \'" & .Value & "\'"
    End If
End With
If e.Form.Controls("标注").Checked = True \' 如果付款状态选择了"已付"
    If LoadFilter >"" Then
        LoadFilter = LoadFilter & " And "
    End If
    LoadFilter = LoadFilter & "标注 = True"
End If
If e.Form.Controls("未标注").Checked = True \' 如果付款状态选择了"未付"
    If LoadFilter >"" Then
        LoadFilter = LoadFilter & " And "
    End If
    LoadFilter = LoadFilter & "(标注 = False Or 标注 Is Null)"
End If
If LoadFilter > "" Then
    DataTables("服装资料表").LoadFilter = LoadFilter
    DataTables("服装资料表").Load()
End If

--  作者:tuohai
--  发布时间:2017/11/16 14:17:00
--  
谢谢大虾!!!
--  作者:tuohai
--  发布时间:2017/11/16 15:32:00
--  
列名 \'True\' 无效。


--  作者:有点甜
--  发布时间:2017/11/16 15:39:00
--  
以下是引用tuohai在2017/11/16 15:32:00的发言:
列名 \'True\' 无效。

 

把 true 改成 1,把 false 改成 0

 

If e.Form.Controls("标注").Checked = True \' 如果付款状态选择了"已付"
    If LoadFilter >"" Then
        LoadFilter = LoadFilter & " And "
    End If
    LoadFilter = LoadFilter & "标注 = 1"
End If
If e.Form.Controls("未标注").Checked = True \' 如果付款状态选择了"未付"
    If LoadFilter >"" Then
        LoadFilter = LoadFilter & " And "
    End If
    LoadFilter = LoadFilter & "(标注 = 0 Or 标注 Is Null)"
End If


--  作者:tuohai
--  发布时间:2017/11/18 10:38:00
--  
Dim loadFilter As String
With e.Form.Controls("输入货号")
    If .Value IsNot Nothing Then
        loadFilter =  loadFilter & "convert(服装资料_货号,\'System.String\')  like \'%" & .text & "%\'"
    End If
End With



以上代码报错    

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.8.19.1
错误所在事件:加载[订单明细表]失败!
详细错误信息:
类型 服装资料_货号 不是已定义的系统类型。
==========================================

以下代码怎么实行模糊筛选

With e.Form.Controls("选择门店")
    If .Value IsNot Nothing Then
        If loadFilter > "" Then
            loadFilter = loadFilter & " And "
        End If
        loadFilter = loadFilter & "门店 = \'" & .Value & "\'"
    End If
End With


--  作者:有点蓝
--  发布时间:2017/11/18 10:45:00
--  
loadFilter =  loadFilter & "cast(服装资料_货号 as nvarchar(50))  like \'%" & .text & "%\'"


loadFilter = loadFilter & "门店 like \'%" & .Value & "%\'"

--  作者:tuohai
--  发布时间:2017/11/20 10:41:00
--  
If e.Form.Controls("rdo标注").Checked = True \' 如果付款状态选择了"已付"
    If loadFilter >"" Then
        loadFilter = loadFilter & " And "
    End If
    loadFilter = loadFilter & "标注 = 1"
End If
If e.Form.Controls("rdo未标注").Checked = True \' 如果付款状态选择了"未付"
    If loadFilter >"" Then
        loadFilter = loadFilter & " And "
    End If
    loadFilter = loadFilter & "标注 = 0 Or 标注 Is Null"
End If
If loadFilter > "" Then
======================================================
为什么我选选择标注(也就是标注列=1能正常完成筛选)但是我选择未标注时,他只是清空数据,所在的行还存在?

--  作者:有点甜
--  发布时间:2017/11/20 11:52:00
--  

loadFilter = loadFilter & "标注 = 0 Or 标注 Is Null"

 

改成

 

loadFilter = loadFilter & "(标注 = 0 Or 标注 Is Null)"


--  作者:tuohai
--  发布时间:2017/11/20 13:37:00
--  

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

还是不行