-- 作者:jljacky
-- 发布时间:2013/3/20 11:19:00
-- 帮助文件里面的代码想换种方法写写看,就是出错,高手帮我看看吧
原文在 Foxtable编程 3.4.1.2.2.2.7 Select 原文如下,
例如在一个成绩表中,包括班级、姓名、总分、总分排名几列数据,希望按班级自动生成总分排名:
\'获得所有班级名称,保存在集合中 Dim bjs As List(Of String) = DataTables("成绩表").GetUniqueValues("","班级") For Each bj As String In bjs \'获得该班级的全部行,按总分降序排序 Dim drs As List(Of DataRow) = DataTables("成绩表").Select("[班级] = " & bj, "总分 DESC") For n As integer = 0 To drs.Count - 1 \'遍历所有行 If n > 0 AndAlso drs(n)("总分") = drs(n-1)("总分") Then \'如果总分和上一行相同 drs(n)("总分排名") = drs(n-1)("总分排名") \'则排名等于上一行 Else drs(n)("总分排名") = n + 1 \'设置排名 End If Next Next
以下是我写的,
Dim bjs As List(Of String)
bjs=DataTables("成绩表").GetUniqueValues("","班级")
For Each bj As String In bjs
Dim n As Integer
For Each dr As DataRow In DataTables("成绩表").Select("[班级] = " & bj, "总分 DESC")
If n > 0 AndAlso dr(n)("总分") = dr(n-1)("总分") Then
dr(n)("总分排名") = dr(n-1)("总分排名")
Else
dr(n)("总分排名") = n + 1
End If
Next
Next
执行后弹出对话框
|