Foxtable(狐表)用户栏目专家坐堂 → [求助]


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

主题:[求助]

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


加好友 发短信
等级:童狐 帖子:210 积分:1790 威望:0 精华:0 注册:2017/6/28 16:46:00
[求助]  发帖心情 Post By:2020/4/3 18:43:00 [只看该作者]

Dim Filter As String = "1=2"  
Dim val As String = e.Form.Controls("textbox1").Text


    For Each c As DataCol In DataTables("地区表").DataCols 
    
       Filter & = " or Convert(varchar(100), " & c.name & ") like '%" & val & "%'  "     老师请问这句怎么理解呢?为什么 Filter 后面要加&,才可以等于呢?
还有为什么一开始是OR,这句代码怎么也读不明白
    Next

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/5 20:10:00 [只看该作者]

filter &= "xxx" 等同于 filter = filter & "xxx" ,一种简写模式。

至于使用or还是使用and要看自己需要的功能。http://www.foxtable.com/webhelp/topics/0102.htm
比如如果是要筛选第一列或者第二列符合条件就使用or
比如如果是要筛选第一列第二列同时符合就使用and

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


加好友 发短信
等级:童狐 帖子:210 积分:1790 威望:0 精华:0 注册:2017/6/28 16:46:00
  发帖心情 Post By:2020/4/6 15:28:00 [只看该作者]

   Filter & = " or Convert(varchar(100), " & c.name & ") like '%" & val & "%'  "  
老师上面的变量已经定义了Filter是字符串=“1=2”,那这句的是不是:筛选条件:1=2 & 转换地区列为字符串 like 地区列包含“东”,照读就是1=2这个开头就是搞不懂

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/4/6 16:09:00 [只看该作者]

统计表达式可以理解为是否的判断,就是:条件1是否成立 or 条件2是否成立 or 条件3是否成立 or ......

1=2是一种为了减少代码的取巧用法,因为1=2始终都是不成立的,所以:1=2 or 条件2是否成立 or 条件3是否成立 or ......
就等同于条件1不成立 or 条件2是否成立 or 条件3是否成立 or ......


如果不用1=2,可能就是这样的:

Dim Filter As String
With
 e.Form.Controls("cmbProduct")
    
If .Value IsNot Nothing Then
        Filter = 
"产品 = '" & .Value & "'"
    
End If
End
 With
With
 e.Form.Controls("cmbCustomer")
    
If .Value IsNot Nothing Then
        
If Filter > "" Then
            Filter = Filter & 
" or "
        
End If
        Filter = Filter & 
"客户 = '" & .Value & "'"
    
End If
End
 With

如果使用1=2,就样

Dim Filter As String = "1=2"
With
 e.Form.Controls("cmbProduct")
    
If .Value IsNot Nothing Then
        Filter = 
" or 产品 = '" & .Value & "'"
    
End If
End
 With
With
 e.Form.Controls("cmbCustomer")
    
If .Value IsNot Nothing Then
        Filter = Filter & 
" or 客户 = '" & .Value & "'"
    
End If
End
 With


不再需要一堆的这种判断
        If Filter > "" Then
            Filter = Filter & 
" or "
        
End If
[此贴子已经被作者于2020/4/6 16:09:15编辑过]

 回到顶部