以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]有点色老师,帮一下忙解决下,谢谢!  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=102805)

--  作者:cqdjr
--  发布时间:2017/6/26 10:16:00
--  [求助]有点色老师,帮一下忙解决下,谢谢!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table


年级优秀人数是动态计算来的:按年级总人数X25%得来。
分学科年级排名在“成绩表”中已经生成得到,现在想统计分班分学科年级排名人数<=“年级优秀人数”,

然后用“班级学科年级排名人数”除以“年级优秀人数”从而得到优秀率。怎么写代码?谢谢!

--  作者:有点色
--  发布时间:2017/6/26 10:39:00
--  

1、你给的数据里,排名是班级的排名,而不是年级的排名。

 

2、代码这样写

 

Dim dr As DataRow = e.DataRow
Dim dt As DataTable =DataTables("成绩表")
Select Case e.DataCol.name
    Case  "年级", "班级", "学科"
        If dr.IsNull("年级") = False AndAlso dr.IsNull("班级") = False AndAlso dr.IsNull("学科") = False Then
            Dim filter As String = "年级 = \'" & dr("年级") & "\' and 班级 = \'" & dr("班级") & "\'"
            Dim filter1 As String = "年级 = \'" & dr("年级") & "\'"
            dr("班级人数") = dt.Compute("Count(姓名)", filter)
            dr("年级优秀人数") = dt.Compute("Count(姓名)*0.25",filter1)
            Dim filter2 As String = filter & " and " & dr("学科") & "排名 <= " & dr("年级优秀人数")
            dr("班级学科年级排名人数") = dt.Compute("count(姓名)", filter2)
            dr("优秀率") = dr("班级学科年级排名人数") / dr("年级优秀人数")
        End If
End Select


--  作者:cqdjr
--  发布时间:2017/6/26 10:40:00
--  
好的,谢谢老师,我调试一下。