Foxtable(狐表)用户栏目专家坐堂 → 筛选出现错误,重新加载后又可以


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

主题:筛选出现错误,重新加载后又可以

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
筛选出现错误,重新加载后又可以  发帖心情 Post By:2018/3/4 17:42:00 [只看该作者]

打开项目时,在第一个打开的窗口可以正常筛选,切换到第二个打开的窗口时就会出现如图类型的错误,但在加载树重新加载后又可以正常筛选,切换到第三次打开的窗口时又会出现类似的问题,反复检查了代码,一直没找出问题,请问老师,怎么才能找出问题?

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


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/3/4 17:53:00 [只看该作者]

而且用“开发者”登录时,筛选就不存在上述问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/4 18:12:00 [只看该作者]

提示列名无效,说明你加载条件合成不正确,比如列名写错了。

 

检查你表格 beforeLoad 等等事件代码,看看哪里有问题。

 


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/3/4 20:26:00 [只看该作者]

在表的BeforeLoad事件有如下代码,刚好用户属于以下三个用户组时出现问题,开发者就不会。反复检查了,列名没有错,就是不知问题在哪?
If User.Group = "乡镇" 
    Dim fl As String = "[乡] = '" & User.Name & "'"
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then 
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

If User.Group = "县办" 
    Dim fl As String = "[县] = '" & User.Name & "'"
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then 
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

If User.Group = "建设办" 
    Dim fl As String = "[项目名称] = '" & User.Name & "'"
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then 
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/3/4 20:26:00 [只看该作者]

在表的BeforeLoad事件有如下代码,刚好用户属于以下三个用户组时出现问题,开发者就不会。反复检查了,列名没有错,就是不知问题在哪?
If User.Group = "乡镇" 
    Dim fl As String = "[乡] = '" & User.Name & "'"
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then 
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

If User.Group = "县办" 
    Dim fl As String = "[县] = '" & User.Name & "'"
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then 
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

If User.Group = "建设办" 
    Dim fl As String = "[项目名称] = '" & User.Name & "'"
    If e.DataTable.LoadFilter = "" Then
        e.DataTable.LoadFilter = fl
    ElseIf e.DataTable.LoadFilter.IndexOf(fl) < 0 Then 
        e.DataTable.LoadFilter = e.DataTable.Loadfilter & " And " & fl
    End If
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/4 20:32:00 [只看该作者]

在代码的最后,加入这个代码,看弹出什么

 

msgbox( e.DataTable.LoadFilter )

 

msgbox( e.DataTable.DataCols.Contains("乡") )


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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/3/4 20:46:00 [只看该作者]


分别弹出:

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


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


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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/4 21:05:00 [只看该作者]

loadFilter那里,你把【乡镇】改成【乡】行不行?或者倒过来【乡】改成【乡镇】

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


加好友 发短信
等级:三尾狐 帖子:689 积分:5155 威望:0 精华:0 注册:2017/10/22 10:15:00
  发帖心情 Post By:2018/3/4 21:06:00 [只看该作者]

我还在项目的LoadUserSetting事件设置了如下代码:

If User.Name = "开发者" Or User.Name = "管理员" Then
    DataTables("S征地记录").LoadFilter = ""
Else
    DataTables("S征地记录").LoadFilter = "乡 = '" & User.Name & "' or 县 = '" & User.Name & "' or 项目名称 = '" & User.Name & "'"
End If

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/3/4 21:09:00 [只看该作者]

你表格【S征地记录】的列名到底是【乡】还是【乡镇】?要规范,统一啊,不然你合成的条件肯定是错误的。


 回到顶部
总数 21 1 2 3 下一页