以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  分页加载和后台筛选启用后加载树和筛选按钮不可用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124864)

--  作者:weibu
--  发布时间:2018/9/15 8:42:00
--  分页加载和后台筛选启用后加载树和筛选按钮不可用
采用的分页加载和后台筛选及筛选功能均为狐表自带的功能。

在普通用户状态下:分页筛选和后台筛选启用后加载树和筛选功能,点击某个分类,数据并不能实现筛选。打开的时候登陆者为自定义的普通用户。
的Beforeload有设置加载条件:仅加载登陆者所在部门的信息。

在开发用户状态下:两个又是可用的,请问这是什么原因。切换到用户菜单也是可用的。
[此贴子已经被作者于2018/9/15 9:01:57编辑过]

--  作者:有点蓝
--  发布时间:2018/9/15 9:02:00
--  
我测试没有问题。怎么做的分页筛选和后台筛选?贴出代码。或者上传实例说明
--  作者:weibu
--  发布时间:2018/9/15 9:24:00
--  
蓝老师,分页筛选就是用咱们狐表自带的加载树设置的。
           后台筛选就是狐表配置栏右上角的自带按钮功能。
我刚才又试了下把表时间Beforeload的加载条件去掉,登陆普通用户也是可以用的。
在论坛中看到一个跟我情况类似的
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&replyID=813816&ID=120735&skin=1
我的Beforeload事件如下:
Dim dr As DataRow = DataTables("用户信息").find("用户名 = \'" & 用户名 & "\'")  \'找到当前登录者所在的行
Dim filter As String = "1=2"
If dr("职位") = "管理者" Then
   Dim drs = DataTables("部门信息").Select("层级 like \'" & dr("层级") & "%\'")
    For Each cdr As DataRow In drs
        Filter &= " or 当前所在部门 = \'" & cdr("所属部门") & "\' And 是否可用 = 1"
    Next
    Else If dr("职位") = "职员" Then
    Filter = "当前所在部门 = \'" & dr("所属部门") & "\'And 是否可用 = 1"
End If
DataTables("溯源码").loadfilter = Filter

--  作者:有点蓝
--  发布时间:2018/9/15 9:37:00
--  
那就是合成的条件不准确。

自己看看最终合成的条件

msgbox(Filter)

--  作者:weibu
--  发布时间:2018/9/15 10:31:00
--  
合成条件什么意思?在哪里加msgbox(Filter)

下面是beforeload的Filter

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



[此贴子已经被作者于2018/9/15 10:41:37编辑过]

--  作者:有点蓝
--  发布时间:2018/9/15 10:45:00
--  
有没有符合上面条件的数据?
--  作者:weibu
--  发布时间:2018/9/15 10:54:00
--  
以下内容情况是普通用户登陆,非开发用户:

加载处理的数据全部都符合上面的条件。
后台筛选按钮开启的情况下:点击筛选无筛选效果:如我想筛选商品名称为“苹果”的商品。我在单元格右击快捷筛选,并没有筛选出来苹果的商品。好像仅仅时重新加载了一下,加载的代码仅执行了Beforeload,并没有执行快捷菜单的筛选动作。
后台筛选按钮关闭的情况下:筛选是正常的;


但是通过狐表自带的加载树,设置的加载树点击相应商品是没有筛选效果的,好像还是重新加载仅执行了beforeload,并没有执行筛选树的筛选加载动作。

在开发者登陆的环境下所有功能是正常的
[此贴子已经被作者于2018/9/15 10:58:32编辑过]

--  作者:weibu
--  发布时间:2018/9/15 11:01:00
--  
论坛中看到一个跟我情况类似的,但没看到解决方案

在普通用户登录下,如果删除表beforeload中的代码,除了达不到我按beforeload设置的加载数据的目的。加载树和后台筛选功能都正常了。

也就是说表中beforeload设置的加载条件和加载树、后台筛选不能共存。否则异常。
 
[此贴子已经被作者于2018/9/15 11:11:17编辑过]

--  作者:有点蓝
--  发布时间:2018/9/15 11:07:00
--  
DataTables("溯源码").loadfilter = Filter
改为:

If e.DataTable.LoadFilter > "" Then
    e.DataTable.LoadFilter = e.DataTable.LoadFilter &  " and " & Filter
Else
    e.DataTable.LoadFilter = Filter
End If

--  作者:weibu
--  发布时间:2018/9/15 11:18:00
--  
还是不行,跟原来情况一样。

论坛中看到一个跟我情况类似的,但没看到解决方案

在普通用户登录下,如果删除表beforeload中的代码,除了达不到我按beforeload设置的加载数据的目的。加载树和后台筛选功能都正常了。

也就是说表中beforeload设置的加载条件和加载树、后台筛选不能共存。否则异常。