以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 筛选树利用Ctrl多选后,无法控制条件加载 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159417) |
-- 作者:透明人生 -- 发布时间:2020/12/25 21:55:00 -- 筛选树利用Ctrl多选后,无法控制条件加载 系统筛选树利用Ctrl多选后,无法控制条件加载(用户只加载“数学”)。点击显示所有,代码统计分数分布只显示一个科目(数学),正常;选择任何一个年级,正常; 利用Ctrl,把三四年级多选后,筛选内容正常,统计结果就不正常,会把语文、数学、英语三科全统计出来(因为设定用户只加载“数学”,不应该把语文和英语全统计出来)。 (如果选择三年级,再按住Ctrl选四年级,筛选内容正常,但统计出来三年级正常(只有数学),四年级语文和英语也跑出来了;如果选择四年级,再按住Ctrl选三年级, 筛选内容正常,但统计出来四年级正常(只有数学),三年级语文和英语也跑出来了。 看来问题是出在利用Ctrl选择上。) 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编辑过]
|
-- 作者:有点蓝 -- 发布时间: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) 调试看看各个条件
|
-- 作者:透明人生 -- 发布时间:2020/12/26 14:49:00 -- 第一条提示: 教师=“用户” 第二条提示:教师=“用户” and [年级] = “三年级” or ([年级] = “四年级”) 问题好像是出在“or”上,用Ctrlt选择,没有把用户都带进去?
[此贴子已经被作者于2020/12/26 14:50:41编辑过]
|
-- 作者:有点蓝 -- 发布时间: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
|
-- 作者:透明人生 -- 发布时间:2020/12/26 15:12:00 -- 谢谢!老师真厉害! |