以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]页码计算问题。  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=100566)

--  作者:hjsl
--  发布时间:2017/5/13 22:16:00
--  [求助]页码计算问题。
Select Case e.DataCol.Name
    Case "页数"
        Dim dr As DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") \'找出上一行
        If dr Is Nothing Then \'如果没有找到上一行,说明本行就是第一行
            e.DataRow("开始页") = 1
            dr = e.DataRow
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey"), "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1 \'
            drs(i)("开始页") = drs(i-1)("结束页") + 1
        Next
    Case "开始页"
        If e.DataRow.IsNull("开始页") Then
            e.DataRow("结束页") = Nothing
        Else
            e.DataRow("结束页") = e.DataRow("开始页") + e.DataRow("页数") - 1
        End If
End Select

以上代码执行后如下图:

图片点击可在新窗口打开查看此主题相关图片如下:未标题-1.jpg
图片点击可在新窗口打开查看

我想实现下图效果,根据“台账编号或台账名称”使“开始页”和“结束页”能根据“页数”给定的数连续相加。

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

求高手帮助解决。
[此贴子已经被作者于2017/5/13 22:17:39编辑过]

--  作者:有点蓝
--  发布时间:2017/5/15 8:46:00
--  
Select Case e.DataCol.Name
    Case "页数"
        Dim dr As DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("台账编号 = \'" & e.DataRow("台账编号") & "\' and [_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") \'找出上一行
        If dr Is Nothing Then \'如果没有找到上一行,说明本行就是第一行
            e.DataRow("开始页") = 1
            dr = e.DataRow
        Else
            e.DataRow("开始页") = dr("结束页") + 1
        End If
        drs = e.DataTable.Select("台账编号 = \'" & e.DataRow("台账编号") & "\' and [_SortKey] >= " & dr("_SortKey"), "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1 \'
            drs(i)("开始页") = drs(i-1)("结束页") + 1
        Next
    Case "开始页"
        If e.DataRow.IsNull("开始页") Then
            e.DataRow("结束页") = Nothing
        Else
            e.DataRow("结束页") = e.DataRow("开始页") + e.DataRow("页数") - 1
        End If
End Select

--  作者:hjsl
--  发布时间:2017/5/16 9:03:00
--  
谢谢 有点蓝 老师,完美解决。