以文本方式查看主题

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

--  作者:JoyGum
--  发布时间:2014/1/10 21:47:00
--  [求助]流水帳問題
有條件的計算方式,附上例子。感恩啊!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目5.table


--  作者:有点甜
--  发布时间:2014/1/10 22:17:00
--  
 如下代码

Select Case e.DataCol.Name
    Case "第一列","收入","支出"
        Dim dr As DataRow
        Dim mr As DataRow = e.DataRow
        Dim drs As List(of DataRow)
        dr = e.DataTable.Find("[_SortKey] < " & mr("_SortKey") & " And [第一列] = \'" & mr("第一列") & "\'", "[_SortKey] Desc")
        If dr Is Nothing Then \'如果没有上一行,说明本行就是同产品的第一行
            If mr("第一列").startsWith("1") OrElse mr("第一列").startswith("5") Then
                mr("余额") = mr("收入") - mr("支出")
            Else
                mr("余额") =  mr("支出") - mr("收入")
            End If
            dr = mr
        End If
        drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [第一列] = \'" & dr("第一列") & "\'")
        For i As Integer = 1 To drs.Count - 1 \'重算余下行的余额
            If mr("第一列").startsWith("1") OrElse mr("第一列").startswith("5") Then
                drs(i)("余额") = drs(i-1)("余额") + drs(i)("收入") - drs(i)("支出")
            Else
                drs(i)("余额") = drs(i-1)("余额") + drs(i)("支出") - drs(i)("收入")
            End If
        Next
End Select

--  作者:JoyGum
--  发布时间:2014/1/10 22:53:00
--  
有點甜老師:真的謝謝您啊!再次感恩啊!
--  作者:包头123
--  发布时间:2014/1/11 18:29:00
--  
挺好。