以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]连续编号  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=172772)

--  作者:lgj716330
--  发布时间:2021/10/30 11:50:00
--  [求助]连续编号
Dim bjs As List(Of String) = DataTables("成绩表").GetValues("班级")
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

上面标黄色部分条件如果是字符,如何实现,如202110260845000423147

--  作者:有点蓝
--  发布时间:2021/10/30 12:03:00
--  
黄色部分是 比较2个单元格的数据,和是不是字符没有任何关系,字符一样用。
--  作者:lgj716330
--  发布时间:2021/10/30 13:04:00
--  
Dim bjs As List(Of String) = DataTables("审批单").GetValues("审批编号")
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

序号并没有递增

图片点击可在新窗口打开查看此主题相关图片如下:f2307977-5058-4358-80dd-411808460888.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2021/10/30 13:20:00
--  
dim idx as ibteger = 1
    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)("序号") = idx
idx = idx + 1
        End If
    Next

--  作者:lgj716330
--  发布时间:2021/10/30 19:14:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目6.foxdb

麻烦贴下代码哈,计划马上入手一个高级版的了


--  作者:lgj716330
--  发布时间:2021/10/31 10:05:00
--  
已解决,加了一列辅助列处理