以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]表达式求助:如何计算成绩表中各班总分排名390名以内各班人数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=143727)

--  作者:hbfnmxb
--  发布时间:2019/12/2 18:57:00
--  [求助]表达式求助:如何计算成绩表中各班总分排名390名以内各班人数
表达式求助:如何计算成绩表中总分排名390名以内各班人数,只想用表达式来计算,这个表达式公式怎么写?谢谢老师!!
--  作者:有点蓝
--  发布时间:2019/12/2 20:27:00
--  
表达式做不到,只能使用代码处理
--  作者:hbfnmxb
--  发布时间:2019/12/3 8:06:00
--  
能给个实例吗
--  作者:程兴刚
--  发布时间:2019/12/3 8:22:00
--  
是您提问呢,您向谁要实例?
--  作者:有点蓝
--  发布时间:2019/12/3 8:43:00
--  
以下是引用hbfnmxb在2019/12/3 8:06:00的发言:
能给个实例吗

请上传具体实例说明问题
--  作者:hbfnmxb
--  发布时间:2019/12/3 8:46:00
--  
第一个表,最后几列
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学生成绩统计系统.rar


--  作者:ahbzczy
--  发布时间:2019/12/3 8:55:00
--  
如果不怕拐弯也可以实现:
1、在成绩表中添加一列整数型表达式列,公示设置判断某生的排名是否小于等于390,如果是,值为1,否则为0;
2、添加一个表或使用原来班级统计表,设置该表和学生成绩表关连,关连列为班级,父表为统计表,子表为成绩表,生成方式不生成,自动变动等不勾选;
3、在统计表中增加一个数据型表达式列,公式设置为sum(子表成绩表中的第1增的表达式列)。

这就是利用表达式列的思路,不妥之处请老师们指正。

--  作者:y2287958
--  发布时间:2019/12/3 8:55:00
--  
目的+详细说明,才是解决问题王道
--  作者:有点蓝
--  发布时间:2019/12/3 9:08:00
--  
不要说第几个表,请直接说表名,我这里第一个表是“学生成绩汇总表”

单项成绩统计汇总表datacolchanged事件

Select e.DataCol.Name
    Case "班级","科目"
        If e.DataRow.IsNull("班级") OrElse e.DataRow.IsNull("科目")
            e.DataRow("前390名") = Nothing
        Else
            e.DataRow("前390名") = DataTables("学生成绩汇总表").Compute("count(学号)",e.DataRow("科目") & "年级排名 <= 390 and 班级 = \'" & e.DataRow("班级") & "\'")
        End If
End Select

--  作者:hbfnmxb
--  发布时间:2019/12/3 9:34:00
--  
谢谢老师,正在学习中,所以有些问题是小白,所以见谅!