以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  请教修改学生成绩统计中代码  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=170245)

--  作者:xusuyang
--  发布时间:2021/7/18 11:27:00
--  请教修改学生成绩统计中代码

班级

姓名

语文

数学

英语

语数英

物理

化学

生物

物化生

语数英物化生

分数

级名

班名

分数

级名

班名

分数

级名

班名

小计

级名

班名

分数

级名

班名

分数

级名

班名

分数

级名

班名

小计

级名

班名

总分数

级名

班名

1

150

9

3

145

9

3

148

9

3

443

9

3

89

9

3

100

9

3

99

9

3

288

9

3

731

9

3

1

146

8

2

138

8

2

128

8

2

412

8

2

90

8

2

98

8

2

98.5

8

2

286.5

8

2

698.5

8

2

2

145

5

2

148

5

2

135.5

5

2

405.5

5

2

95

5

2

99.5

5

2

90

5

2

284.5

5

2

690

5

2

2

140

4

1

119.5

4

1

132

4

1

391.5

4

1

89

4

1

78

4

1

98

4

1

265

4

1

656.5

4

1

3

138

6

4

128

6

4

119

6

4

385

6

4

79

6

4

88

6

4

98

6

4

265

6

4

650

6

4

3

145

7

3

132

7

3

129

7

3

396

7

3

99.5

7

3

82

7

3

90

7

3

271.5

7

3

667.5

7

3

3

130

3

2

108

3

2

148

3

2

386

3

2

100

3

2

100

3

2

99

3

2

299

3

2

685

3

2

3

125

2

1

 

2

1

 

2

1

125

2

1

 

2

1

 

2

1

 

2

1

0

2

1

125

2

1

1

146

1

1

 

1

1

 

1

1

126

1

1

 

1

1

 

1

1

 

1

1

0

1

1

126

1

1

老师:您好!

上表是“AA学校”一年级的一次考试成绩。请老师修改一下代码。A、如表所示:

1、共计9个同学3个班,如何用代码来实现每个同学各科、语数英、语数英物化生班级排名年级排年级排第一名为“1”,级名列显示“1 、班级排名第二名为“2”, 级名列显示“2 如表所示的成绩,一班的“宗”同学:“语文”年级排名第一名,如何在“级名”列显示为“1”? 班级排名第一名,如何在“班名”列显示为“1“数学”年级排名第二名,如何在“级名”列显示为“2”? 班级排名第一名,如何在“班名”列显示为“1即各科、语数英、语数英物化生班级排名年级排是随各科分数变化而变化,而不应该是用某一科成绩的班级排名年级排名作为所有学科成绩的班级排名年级排名。

2、二班的“杨”同学语文成绩是年级排名第三名,如何在“级名”列显示为“3”? 班级排名第一名,如何在“班名”列显示为“1 三班的“安”同学语文成绩是年级排名并列第3名,如何在“级名”列显示为“3”? 班级排名第二名,如何在“班名”列显示为“2 一班的“孔”同学语文成绩是年级排名并列第二名,如何在“级名”列显示为“2”? 班级排名并列第二名,如何在“班名”列显示为“2”? 即各科、语数英、语数英物化生班级排名年级排名若出现并列排名情况时,是否可以用代码实现如“本第二条”所述?

3当某一科成绩清除时,名列名列如何显示为空白?

 

For Each dr As DataRow In DataTables("学生成绩统计表").DataRows

    dr("语数英_分数")=dr("语文_分数")+dr("数学_分数")+dr("英语_分数")

    dr("物化生_分数")=dr("物理_分数")+dr("化学_分数")+dr("生物_分数")

    dr("语数英物化生_分数")=dr("语文_分数")+dr("数学_分数")+dr("英语_分数")+dr("物理_分数")+dr("化学_分数")+dr("生物_分数")

Next

Dim drs As List(of DataRow) = DataTables("学生成绩统计表").Select("班级 is not null","数学_分数")

For i As Integer = 0 To drs.Count - 1

    drs(i)("语文_级名") = i+ 1

    drs(i)("数学_级名") = i+ 1

    drs(i)("英语_级名") = i + 1

    drs(i)("语数英_级名") = i+ 1

    drs(i)("物理_级名") = i + 1

    drs(i)("化学_级名") = i + 1

    drs(i)("生物_级名") = i+ 1

    drs(i)("物化生_级名") = i+ 1

    drs(i)("语数英物化生_级名") = i+ 1

Next

Dim lst As List(of String ) = DataTables("学生成绩统计表").GetValues("班级","班级 is not null")

For Each s As String In lst

    drs = DataTables("学生成绩统计表").Select("班级=\'" & s & "\'","语文_分数")

    For i As Integer = 0 To drs.Count - 1

        drs(i)("语文_班名") = i + 1

        drs(i)("数学_班名") = i + 1

        drs(i)("英语_班名") = i + 1

        drs(i)("语数英_班名") = i+ 1

        drs(i)("物理_班名") = i + 1

        drs(i)("化学_班名") = i + 1

        drs(i)("生物_班名") = i+ 1

        drs(i)("物化生_班名") = i+ 1

        drs(i)("语数英物化生_班名") = i+ 1

    Next

Next

  我的版本是2021.4.5前版本。谢谢

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:辉瑞科技公司.foxdb


--  作者:有点蓝
--  发布时间:2021/7/18 20:44:00
--  
请不要发重复的问题:http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=170237