以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  账簿 求助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10897)

--  作者:shixia
--  发布时间:2011/6/28 20:59:00
--  账簿 求助
触发借方或贷方,借或贷 和 余额 列就计算出了数据,但是以经营费用科目列为类,借或贷及余额列数据从16行之后几行出现错误。如果再次触发借方,整个借或贷方向再次变化。弄了半天没有弄出来,发上求助。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:帐簿.table


--  作者:e-png
--  发布时间:2011/6/28 22:21:00
--  

For i As Integer = 0 To Tables("zz").count-1
    Dim r As Row = Tables("zz").Rows(i)
    If i = 0
        r("余额") = r("借方") - r("贷方")
        If r("余额") > 0
            r("借或贷") = "借"
        ElseIf r("余额") < 0
            r("借或贷") = "贷"
        Else
            r("借或贷") = "平"
        End If       
    Else
        r("余额") = Tables("zz").Rows(i-1)("余额") + r("借方") - r("贷方")
        If r("余额") > 0
            r("借或贷") = "借"
        ElseIf r("余额") < 0
            r("借或贷") = "贷"
        Else
            r("借或贷") = "平"
        End If       
    End If   
Next

 


--  作者:shixia
--  发布时间:2011/6/29 9:13:00
--  

已解决:把e.datarow换成drs(i)

         drs = e.DataTable.Select("[_SortKey] >= " & dr("_SortKey") & " And [科目] =\'" & mr("科目") & "\'", "[_SortKey]")
        For i As Integer = 1 To drs.Count - 1 \'重算余下行的余额

            If drs(i-1)("借或贷")="贷" Then
                Dim s As Double = drs(i-1)("余额") - drs(i)("借方") + drs(i)("贷方")
                If s>0  Then
                    drs(i)("余额") = s
                   drs(i)("借或贷")="贷"
                ElseIf s < 0 Then
                    drs(i)("余额") = -s
                    drs(i)("借或贷")="借"
                ElseIf s = 0 Then
                    drs(i)("余额") = 0
                    drs(i)("借或贷")="平"
                End If
            ElseIf drs(i-1)("借或贷")="借" Then
                Dim s1 As Double = drs(i-1)("余额") + drs(i)("借方") - drs(i)("贷方")
                If s1>0  Then
                    drs(i)("余额") = s1
                    drs(i)("借或贷")="借"
                ElseIf s1< 0 Then
                    drs(i)("余额") = -s1
                    drs(i)("借或贷")="贷"
                ElseIf s1= 0 Then
                    drs(i)("余额") = 0
                    drs(i)("借或贷")="平"
                End If
            ElseIf drs(i-1)("借或贷")="平" Then
                If e.DataRow("借方")>0 Then
                    drs(i)("余额") = e.DataRow("借方")
                    drs(i)("借或贷")="借"
                ElseIf e.DataRow("贷方")>0 Then
                    drs(i)("余额") = e.DataRow("贷方")
                    drs(i)("借或贷")="贷"
                Else
                    drs(i)("余额") = 0
                    drs(i)("借或贷")="平"
                End If
            End If
        Next     

[此贴子已经被作者于2011-6-29 9:15:33编辑过]