Foxtable(狐表)用户栏目专家坐堂 → [求助]当前表,列名有“含”字的列=含,列名有“壹”字的列值大于x的行筛选


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

主题:[求助]当前表,列名有“含”字的列=含,列名有“壹”字的列值大于x的行筛选

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


加好友 发短信
等级:幼狐 帖子:113 积分:974 威望:0 精华:0 注册:2023/6/18 23:26:00
[求助]当前表,列名有“含”字的列=含,列名有“壹”字的列值大于x的行筛选  发帖心情 Post By:2024/8/27 18:52:00 [只看该作者]

求助 窗口按钮代码,实现
当前表,列名有“含”字的列值=含,列名有“壹”字的列值大于x(窗口文本控件里录入的数值)的行筛选

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:11.foxdb


[此贴子已经被作者于2024/8/27 18:52:17编辑过]

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/27 20:11:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:11.zip


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


加好友 发短信
等级:幼狐 帖子:113 积分:974 威望:0 精华:0 注册:2023/6/18 23:26:00
回复:(有点蓝)[upload=zip,11.zip]viewFile.asp?ID...  发帖心情 Post By:2024/8/28 9:08:00 [只看该作者]

蓝大师,上楼项目执行没有效果
想实现的效果是 黄色和绿色 2个条件都成立时的行筛选出来

图片点击可在新窗口打开查看此主题相关图片如下:第2行显示不对,要求2个条件同时成立.jpg
图片点击可在新窗口打开查看


我把上楼代码改成下面还是有问题,多显示了红色的第2行

Dim filter As String = "1=1 "
Dim x As String = e.Form.Controls("ComboBox1").text
For Each c As Col In Tables("表A").Cols
'    If c.Name.Contains("含") Then
'        filter = filter & " and " & c.Name & "='含'"
'    ElseIf c.Name.Contains("壹") Then
'        filter = filter & " and " & c.Name & ">'" & x & "'"
'    End If
   If c.Name.Contains("壹") Then
        filter = filter & " and " & c.Name & ">'" & x & "'"
    End If
Next
Tables("表A").filter = filter

求助 黄色和绿色 2个条件都成立时的行筛选出来
[此贴子已经被作者于2024/8/28 9:10:10编辑过]

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/28 9:18:00 [只看该作者]

这个条件不能算都成立。里面还包含了部分处理。比如3个含列,指全部都有【含】,还是只是其中一个列有就算?同样情况还有3个壹列,上面都没有说清楚,所以我的代码是按全部算的。自己理清思路,如果只是其中一个对应自己看看怎么改改代码

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


加好友 发短信
等级:幼狐 帖子:113 积分:974 威望:0 精华:0 注册:2023/6/18 23:26:00
回复:(有点蓝)这个条件不能算都成立。里面还包含了...  发帖心情 Post By:2024/8/28 9:53:00 [只看该作者]

蓝大师,下面代码报错
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2022.8.18.1
错误所在事件:
详细错误信息:
语法错误:“=”运算符前缺少操作数。


求助  c.Name.Contains("含") 的列行值='含'的行筛选

Dim filter As String = "1=1 "
Dim x As String = e.Form.Controls("ComboBox1").text
For Each c As Col In Tables("表A").Cols
    If c.Name.Contains("含") Then
        
        For Each rf As Row In Tables("表A").rows
            filter = filter & " And " & rf(c.Name) & " = '含'"
        Next
        '    ElseIf c.Name.Contains("壹") Then
            filter = filter & " And " & c.Name & " > '" & x & "'"
    End If

Next
Tables("表A").filter = filter

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/28 9:55:00 [只看该作者]

filter = filter & " or " & c.Name & " = '含'"

理解一下and和or的区别:http://www.foxtable.com/webhelp/topics/0102.htm
[此贴子已经被作者于2024/8/28 9:56:03编辑过]

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


加好友 发短信
等级:幼狐 帖子:113 积分:974 威望:0 精华:0 注册:2023/6/18 23:26:00
回复:(有点蓝)filter = filter & " or&nb...  发帖心情 Post By:2024/8/28 10:18:00 [只看该作者]

蓝大师,按上楼 and 改成 or,还是跟想要的效果不符

Dim filter As String = "1=1 "
Dim x As String = e.Form.Controls("ComboBox1").text
For Each c As Col In Tables("表A").Cols
    If c.Name.Contains("含") Then
        filter = filter & " and " & c.Name & "='含'"   求助,改成不要所有列值都= 含,有1列值=含就可以
    ElseIf c.Name.Contains("壹") Then
        filter = filter & " or " & c.Name & ">'" & x & "'"
    End If 
Next
Tables("表A").filter = filter

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


加好友 发短信
等级:超级版主 帖子:110758 积分:563716 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/8/28 10:37:00 [只看该作者]

Dim filter As String = "1=2 "
Dim filter2 As String = "1=2 "
Dim x As String = e.Form.Controls("ComboBox1").text
For Each c As Col In Tables("表A").Cols
    If c.Name.Contains("含") Then
        filter = filter & " or  " & c.Name & "='含'"   求助,改成不要所有列值都= 含,有1列值=含就可以
    ElseIf c.Name.Contains("壹") Then
        filter2 = filter2 & " or " & c.Name & ">'" & x & "'"
    End If 
Next
Tables("表A").filter = "(" & filter & ") and (" & filter2 & ")"
msgbox(Tables("表A").filter)

 回到顶部