Foxtable(狐表)用户栏目专家坐堂 → [求助]如何让统计表根据筛选出来的数据实时更新统计结果


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

主题:[求助]如何让统计表根据筛选出来的数据实时更新统计结果

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/1 9:43:00 [显示全部帖子]


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/3 9:22:00 [显示全部帖子]

Dim nianfen As WinForm.ComboBox = e.Form.Controls("入学年份")
Tables("成绩记录").Filter="入学年份 = '" & nianfen.Text & " ' "
For Each dr As DataRow In DataTables("班级考情分析").Select("")
    Dim dt As Table = Tables("成绩记录")
    dr("分布_40以下") = dt.Compute("Count(姓名)", dr("科目") & " < 40")
    dr("分布_40至60") = dt.Compute("Count(姓名)", dr("科目") & " >= 40 And " & dr("科目") & " < 60" )
    dr("分布_60分段") = dt.Compute("Count(姓名)", dr("科目") & " >= 60 And " & dr("科目") & " < 70" )
    dr("分布_70分段") = dt.Compute("Count(姓名)", dr("科目") & " >= 70 And " & dr("科目") & " < 80" )
    dr("分布_80分段") = dt.Compute("Count(姓名)", dr("科目") & " >= 80 And " & dr("科目") & " < 90" )
    dr("分布_90分段") = dt.Compute("Count(姓名)", dr("科目") & " >= 90 And " & dr("科目") & " < 100" )
    dr("分布_满分") = dt.Compute("Count(姓名)", dr("科目") & " >= 100" )
    dr("优秀人数") = dt.Compute("Count(姓名)", dr("科目") & " >= " & 80)
    dr("及格人数") = dt.Compute("Count(姓名)", dr("科目") & " >= 60")
    dr("差生人数") = dt.Compute("Count(姓名)", dr("科目") & " < 40")
    dr("最高分") = dt.Compute("Max(" & dr("科目") & ")")
    dr("最低分") = dt.Compute("Min(" & dr("科目") & ")")
    dr("总分") = dt.Compute("Sum(" & dr("科目") & ")")
    dr("平均分") = dt.Compute("Avg(" & dr("科目") & ")")
   
next

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/3 14:57:00 [显示全部帖子]

做一个表 分数线

 

年级  优秀分数   及格分数   差生分数

1         90

2         90

3         80

4         80

 

然后写代码改一下

 

Dim nianfen As WinForm.ComboBox = e.Form.Controls("入学年份")
Tables("成绩记录").Filter="入学年份 = '" & nianfen.Text & " ' "

For Each dr As DataRow In DataTables("班级考情分析").Select("")
    Dim dt As Table = Tables("成绩记录")
    dr("分布_40以下") = dt.Compute("Count(姓名)", dr("科目") & " < 40")
    dr("分布_40至60") = dt.Compute("Count(姓名)", dr("科目") & " >= 40 And " & dr("科目") & " < 60" )
    dr("分布_60分段") = dt.Compute("Count(姓名)", dr("科目") & " >= 60 And " & dr("科目") & " < 70" )
    dr("分布_70分段") = dt.Compute("Count(姓名)", dr("科目") & " >= 70 And " & dr("科目") & " < 80" )
    dr("分布_80分段") = dt.Compute("Count(姓名)", dr("科目") & " >= 80 And " & dr("科目") & " < 90" )
    dr("分布_90分段") = dt.Compute("Count(姓名)", dr("科目") & " >= 90 And " & dr("科目") & " < 100" )
    dr("分布_满分") = dt.Compute("Count(姓名)", dr("科目") & " >= 100" )
   
    Dim filter1 As String = "1=2"
    Dim filter2 As String = "1=2"
    For Each cdr As DataRow In DataTables("分数线").DataRows
        filter1 = filter1 & " or 学年 = " & Date.Today.Year - cdr("年级") & " and " & dr("科目") & " > " & cdr("优秀分数")
        filter2 = filter2 & " or 学年 = " & Date.Today.Year - cdr("年级") & " and " & dr("科目") & " > " & cdr("及格分数")
    Next
   
    dr("优秀人数") = dt.Compute("Count(姓名)", filter1)
    dr("及格人数") = dt.Compute("Count(姓名)", filter2)
    dr("差生人数") = dt.Compute("Count(姓名)", dr("科目") & " < 40")
    dr("最高分") = dt.Compute("Max(" & dr("科目") & ")")
    dr("最低分") = dt.Compute("Min(" & dr("科目") & ")")
    dr("总分") = dt.Compute("Sum(" & dr("科目") & ")")
    dr("平均分") = dt.Compute("Avg(" & dr("科目") & ")")
next


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/4 9:19:00 [显示全部帖子]

 逻辑是什么?怎么计算?

 

 上传实例说明。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/4 17:54:00 [显示全部帖子]

 可以用全局变量

 

vars("变量") = 你定义的值

 

--------------然后你到处都可以用

 

vars("变量")


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 2:08:00 [显示全部帖子]

 你msgbox弹出一下值,看是否正确

 

 msgbox(cdr("优秀分数") * var("变量"))


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 15:46:00 [显示全部帖子]

 直接赋值啊

 

vars("cks") = 3

 

然后乘以对应的分数线就可以啊。


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 17:27:00 [显示全部帖子]

 贴出你写的代码啊

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/8/5 17:34:00 [显示全部帖子]

直接赋值啊

 

vars("cks") = 3

 

然后乘以对应的分数线就可以啊。


 回到顶部