Foxtable(狐表)用户栏目专家坐堂 → [求助]模糊查询加条件判断不执行


  共有6546人关注过本帖树形打印复制链接

主题:[求助]模糊查询加条件判断不执行

帅哥哟,离线,有人找我吗?
洮沙
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
[求助]模糊查询加条件判断不执行  发帖心情 Post By:2022/7/23 18:40:00 [只看该作者]

老师计划根据文本框中内容并依据单选按钮条件进行模糊查询,以下“点击模糊查询”代码只按照全部条件进行查询:

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

Dim Filter As String
Dim tbl As Table = Tables("客户")
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        Dim txt1 As String = .Value
        txt1 = "'%" & txt1 & "%'"
        Filter = "客户编号 Like " & txt1 & " Or 客户名称 Like " & txt1
        If e.Form.Controls("RadioButton1").Checked = True Then '如果选择正常客户
            Filter = Filter & " And " & "停用 = False "
        End If
        If e.Form.Controls("RadioButton2").Checked = True Then '如果选择停用客户
            Filter = Filter & " And " & "停用 = True "
        End If
        If e.Form.Controls("RadioButton3").Checked = True Then '如果选择全部客户
            Filter = Filter
        End If
    Else
        If e.Form.Controls("RadioButton1").Checked = True Then '如果选择正常客户
            Filter = "停用 = False "
        End If
        If e.Form.Controls("RadioButton2").Checked = True Then '如果选择停用客户
            Filter = "停用 = True "
        End If
        If e.Form.Controls("RadioButton3").Checked = True Then '如果选择全部客户
            Filter = Filter
        End If
    End If
End With
tbl.DataTable.loadFilter = Filter
tbl.DataTable.loadPage = 0
tbl.DataTable.load
e.Form.Controls("Label7").text = "数据状态:筛选"
Functions.Execute("客户窗口页面统计")

麻烦帮忙改一下,谢谢!

 

文本框无内容,可以根据单选按钮执行。有内容无法执行。


[此贴子已经被作者于2022/7/23 18:42:51编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
洮沙
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:837 积分:7217 威望:0 精华:0 注册:2017/8/31 12:07:00
  发帖心情 Post By:2022/7/23 20:43:00 [只看该作者]

自行模式解决了:

  Filter = "(客户编号 Like " & txt1 & " Or 客户名称 Like " & txt1 & ")"

 

添加蓝色部分可以正常查询,但是如果前一次根据“正常”单选框条件进行筛选,不改变单选框选择状态(也就是不单击任一单选框),查询结果出错。

为此在代码前面加入以下代码:

 

For Each ctl As WinForm.Control In e.Form.Controls '遍历所有控件
    If TypeOf ctl Is WinForm.RadioButton Then '如果此控件是RadionButton(单选框)
        Dim rdo As WinForm.RadioButton = ctl
        If rdo.Checked Then '如果已经选中
            rdo.Select '将焦点移到控件上  不知是否有代码可以模拟单击或者重新选中?老师指点一下

            Exit For
        End If
    End If
Next

[此贴子已经被作者于2022/7/23 20:44:58编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111414 积分:567140 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/24 19:45:00 [只看该作者]


 回到顶部