Foxtable(狐表)用户栏目专家坐堂 → in在代码中失效了?没有失效——问题解决了


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

主题:in在代码中失效了?没有失效——问题解决了

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


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
in在代码中失效了?没有失效——问题解决了  发帖心情 Post By:2016/12/28 15:35:00 [只看该作者]

以下代码中的in,类似于表达式的用法,非常方便,去年的开发版是能用的,但今年的版本怎么失效了?
(虽然不会因为用了in而提示错误,但只显示一个人员,其他人员不显示)
而且出差、请假、加班都要用到的。
xmjl=1——是项目经理;ye1、ye0——年度;mo1、mo0——月份
问题解决了:把蓝色代码改成红色代码
    Case "出差管理"
        Dim Names As List(of String)
        Dim name,name0 As String
        Dim ta As New DropTreeBuilder
        ta.SourceTable = DataTables("人员管理")
        Ta.treesort = "部门名称,员工姓名"
        ta.TreeCols = "部门名称|员工姓名"
        ta.SourceCols = "部门名称|员工姓名|差费标准"
        ta.ReceiveCols = "部门名称|姓名|差费标准"
        If _userroles <> "开发者" AndAlso _userroles <> "管理者" AndAlso _userroles <> "审核人员"  Then
            If  xmjl = 1 OrElse ((_userroles = "部门干事" OrElse _userroles = "部门领导" OrElse _userroles = "财务领导" OrElse _userroles = "生产领导") AndAlso _office = "机关") Then
                If xmjl = 1 Then
                    names = DataTables("考勤管理").SQLGetValues("姓名","[复核人] = '" & _username & "' and (([年度] = " & ye1 & " and [月份] = " & mo1 & ") or ([年度] = " & ye0 & " and [月份] = " & mo0 & "))")
                Else
                    names = DataTables("考勤管理").SQLGetValues("姓名","[复核人] <> '' and (([年度] = " & ye1 & " and [月份] = " & mo1 & ") or ([年度] = " & ye0 & " and [月份] = " & mo0 & "))")
                End If
                If names.Count > 0 Then
                    For Each name In names
                        name0 = name0 & ",'" & name & "'"
                    Next
                    name0 = name0.trim(",")
                    ta.TreeFilter = "[部门名称] in (" & _usergroup & ") and [员工姓名] in (" & name0 & ")"
                    DataTables("人员管理").LoadFilter ="[部门名称] in (" & _usergroup & ") and [员工姓名] in (" & name0 & ")"
                    DataTables("人员管理").Load
                Else
                    ta.TreeFilter = "[员工姓名] = ''"
                End If
            Else
                ta.TreeFilter = "[员工姓名] = ''"
            End If
        End If
        CurrentTable.Cols("部门名称").DropTree = ta.Build()
[此贴子已经被作者于2016/12/28 15:49:19编辑过]

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


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

 弹出你的表达式,看值是什么,msgbox("[部门名称] in (" & _usergroup & ") and [员工姓名] in (" & name0 & ")")

 

 你的值,应该赋初值为 '',不然name0等没有值的时候,肯定是会报错的

 

 Dim name0 As String = "''"


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


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

 具体问题,做例子上来说明。


 回到顶部