Foxtable(狐表)用户栏目专家坐堂 → 请教加载数据的条件表达式


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

主题:请教加载数据的条件表达式

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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
请教加载数据的条件表达式  发帖心情 Post By:2017/3/16 14:33:00 [只看该作者]

想设计一个根据 DataTables("用户权限").DataRow("company")里的公司值(如同一个单元格数据里包含:A公司,B公司,C公司),
然后登陆的用户,根据DataRow("company")的值,只能加载A公司,B公司,C公司的数据,下面写的方法,不知道哪写的不对,请教,谢谢!

Dim Products As List(Of String)
Products = DataTables("用户权限").GetValues("company")
For Each Product As String In Products 
  
Dim sDate As Date = e.form.controls("StartDate").value
Dim eDate As Date = e.form.controls("EndDate").value


For Each dr As DataRow In DataTables("用户权限").Select("',' + name + ',' like '%," & User.Name &",%'" )
 If User.Name = dr("name") Then
       DataTables("Finance").LoadFilter = "PayrollMothMsg >= '" & sDate & "' And PayrollMothMsg <= '" & eDate &  "'and CompanyName like '%" & Product &  "%'"
End If
DataTables("Finance").Load()

'这个位置能成功加载数据,但加载的数据,是全部公司(即除A,B,C以外的公司数据也加载出来),然后再执行下面的语句后,数据就清空了

Next
Next



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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/16 15:57:00 [只看该作者]


Dim sDate As Date = e.form.controls("StartDate").value
Dim eDate As Date = e.form.controls("EndDate").value

Dim filter As String = "1=2"
Dim ls As new List(Of String)
For Each dr As DataRow In DataTables("用户权限").Select("',' + name + ',' like '%," & User.Name & ",%'" )
    For Each s As String In dr("company").split(",")
        If ls.Contains(s) = False Then
            ls.add(s)
            filter &=  " or PayrollMothMsg >= '" & sDate & "' And PayrollMothMsg <= '" & eDate &  "' and CompanyName like '%" & s & "%'"
        End If
    Next
Next
DataTables("Finance").LoadFilter = filter
DataTables("Finance").Load()

 


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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2017/3/16 16:57:00 [只看该作者]

谢谢!就是这个Dim filter As String = "1=2" 的写法不是很明白
[此贴子已经被作者于2017/3/16 16:57:40编辑过]

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


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/3/16 17:01:00 [只看该作者]

1=2 是为了和后面的 or 条件1 or 条件2 合并写的。

 

最后得到 1=2 or 条件1 or 条件2

 

1=2的意思是,永远等于假,那就是不加载任何数据的意思。


 回到顶部