以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- [求助]页码计算问题。 (http://www.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 以上代码执行后如下图: 我想实现下图效果,根据“台账编号或台账名称”使“开始页”和“结束页”能根据“页数”给定的数连续相加。 求高手帮助解决。
[此贴子已经被作者于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 -- 谢谢 有点蓝 老师,完美解决。 |