以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]流水账代码  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=81166)

--  作者:poiokm26
--  发布时间:2016/2/19 18:00:00
--  [求助]流水账代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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("余额") = e.DataRow("收入") - e.DataRow("支出")
            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)("余额") + drs(i)("收入") - drs(i)("支出")
        Next   
End
Select

今天状态不好,有点混乱.帮助中的例子
高效率的流水账设计.第八行代码 dr = e.DataRow 这一句不是很理解.测试过提示出错,代码看懂了,思路不懂.
[此贴子已经被作者于2016/2/19 18:00:51编辑过]

--  作者:大红袍
--  发布时间:2016/2/20 1:18:00
--  

意思是,把当前行赋值给一个变量dr,方便以后使用,不然就需要写 e.datarow,太长