Foxtable(狐表)用户栏目专家坐堂 → 筛选树利用Ctrl多选后,无法控制条件加载


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

主题:筛选树利用Ctrl多选后,无法控制条件加载

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


加好友 发短信
等级:童狐 帖子:223 积分:1738 威望:0 精华:0 注册:2019/10/19 23:00:00
筛选树利用Ctrl多选后,无法控制条件加载  发帖心情 Post By:2020/12/25 21:55:00 [只看该作者]

系统筛选树利用Ctrl多选后,无法控制条件加载(用户只加载“数学”)。点击显示所有,代码统计分数分布只显示一个科目(数学),正常;选择任何一个年级,正常;
利用Ctrl,把三四年级多选后,筛选内容正常,统计结果就不正常,会把语文、数学、英语三科全统计出来(因为设定用户只加载“数学”,不应该把语文和英语全统计出来)。
(如果选择三年级,再按住Ctrl选四年级,筛选内容正常,但统计出来三年级正常(只有数学),四年级语文和英语也跑出来了;如果选择四年级,再按住Ctrl选三年级,
筛选内容正常,但统计出来四年级正常(只有数学),三年级语文和英语也跑出来了。
看来问题是出在利用Ctrl选择上。)

图片点击可在新窗口打开查看此主题相关图片如下:系统筛选树.png
图片点击可在新窗口打开查看

b.FIlter = DataTables("自测成绩表").loadFIlter                 
If Tables("自测成绩表").FIlter > "" Then                             '是否要加一个利用Ctrl多选条件 ?
    b.FIlter = IIF(b.FIlter > "", b.FIlter & " and ","") & Tables("自测成绩表").FIlter 
End If
b.Groups.AddDef("学校")
b.Groups.AddDef("年级")
b.Groups.AddDef("班级")  
b.Groups.AddDef("学科")
b.Groups.AddDef("单元")
b.Groups.AddDef("教师")
b.Groups.AddDef("年度")
b.Groups.AddDef("学期")
b.Groups.AddDef("排序")
b.Totals.AddExp("人数","分数","",AggregateEnum.Count) '统计人数
Dim zf As object = TopToolBar.Items("学科总分").Value
If zf > 0 Then
b.Totals.AddExp("分数分布_"& (50 * zf/100) &"以下","Case When 分数 < " & (50 * zf/100) & " Then  1 Else 0  End")
b.Totals.AddExp("分数分布_" & (60 * zf/100) & "-"& (50 * zf/100) &"","Case When 分数 >= " & (50 * zf/100) & " And 分数 < " & (60 * zf/100) & " Then  1 else 0  End")
b.Totals.AddExp("分数分布_" & (70 * zf/100) & "-"& (60 * zf/100) &"","Case When 分数 >= " & (60 * zf/100) & " And 分数 < " & (70 * zf/100) & " Then  1 else 0  End")

[此贴子已经被作者于2020/12/25 22:56:08编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

msgbox(DataTables("自测成绩表").loadFIlter)
b.FIlter = DataTables("自测成绩表").loadFIlter
If Tables("自测成绩表").FIlter > "" Then                             '是否要加一个利用Ctrl多选条件 ?
    b.FIlter = IIF(b.FIlter > "", b.FIlter & " and ","") & Tables("自测成绩表").FIlter 
End If
msgbox(b.FIlter)

调试看看各个条件

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


加好友 发短信
等级:童狐 帖子:223 积分:1738 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/12/26 14:49:00 [只看该作者]

第一条提示: 教师=“用户”
第二条提示:教师=“用户” and [年级] = “三年级” or ([年级] = “四年级”)
问题好像是出在“or”上,用Ctrlt选择,没有把用户都带进去?
[此贴子已经被作者于2020/12/26 14:50:41编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107321 积分:545866 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/12/26 15:01:00 [只看该作者]

b.FIlter = IIF(b.FIlter > "", b.FIlter & " and ","") & Tables("自测成绩表").FIlter 
改为
if b.FIlter > "" then
b.FIlter  = b.FIlter & " and (" & Tables("自测成绩表").FIlter  & ")"
else
b.FIlter = Tables("自测成绩表").FIlter 
end if

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


加好友 发短信
等级:童狐 帖子:223 积分:1738 威望:0 精华:0 注册:2019/10/19 23:00:00
  发帖心情 Post By:2020/12/26 15:12:00 [只看该作者]

谢谢!老师真厉害!

 回到顶部