以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教排序问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=122053)

--  作者:13861676007
--  发布时间:2018/7/18 10:33:00
--  请教排序问题
请教各位大通:
      记录库中,第1-5号记录中的凭证号是 2,6-10中的记录中的凭证号是 4,11-18记录中的凭证号是 6,以此类推,现在要整理:在整个表中,某个月份的凭证号要按序排列,1-5号记录中的凭证号是 1,6-10中的记录中的凭证号是 2,11-18记录中的凭证号是 3,以此类推,请教思路或代码,谢谢!

--  作者:有点甜
--  发布时间:2018/7/18 12:22:00
--  

你的意思是原来的凭证号除以2?或者说明具体是什么逻辑。


--  作者:13861676007
--  发布时间:2018/7/18 15:33:00
--  
客户在操作过程中,一般是按顺序录入的,1,2,3,4,5,6,7。。。其中1号有3条记录,2号有4条记录,但是有时会发现,5,6号是错误的,便进行删除,那么月末时进行整理,将7号调成5号记录,将8号调成6号记录,将9号调成7号记录。。。以此类推,主要是实现此功能
--  作者:有点甜
--  发布时间:2018/7/18 16:18:00
--  

参考代码

 

Dim drs = DataTables("表A").Select("", "第一列")
For i As Integer = 1 To drs.count
    drs(i-1)("第一列") = i
Next


--  作者:13861676007
--  发布时间:2018/7/18 17:01:00
--  
谢谢老师,我这样做的,初试了下还是对的
Dim result As Dialogresult
result = messagebox.Show("确认整下?...","提示",MessageBoxbuttons.yesno,MessageBoxicon.question)
If result = dialogresult.yes Then
    Dim  s1,s2,s3 As Integer
    s1 = 1
    s2 = 1
    s3 = 0
    For Each dr As DataRow In DataTables("凭证记录表").Select ("工作日期 = \'" & da & "\'","工作日期")
        If dr("凭证号") = s1 Then
            s2= dr("凭证号")
        Else
            If dr("凭证号") = s2+1 Then
                s1 = s1 + 1
            Else
                If dr("凭证号") = s3 Then
                    dr("凭证号") = s1
                Else
                    s3= dr("凭证号")
                    dr("凭证号") = s1+1
                    s1 = s1 + 1
                End If
            End If
        End If
    Next
Else
    Return
End If