以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  余额计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=81716)

--  作者:kaituozhe
--  发布时间:2016/3/4 10:24:00
--  余额计算

有三个表,分别是余额横表、本期借方、本期贷方,表的列都为会计年度、货币资金、应收账款等,年度为2011、2012、2013 我的想法在余额横表2012年余额等于余额横表2011年余额 + 2012年本期借方 - 2012年本期贷方

下面的代码该怎么修改

Dim kjnds As List (of String ) = kuaijiqijian
Dim mns2 As List (of String)
mns2 = DataTables("会计科目").GetValues("科目名称","方向 = \'贷方\'")
Select Case e.DataCol.name
    Case "会计年度"
        If e.newvalue IsNot Nothing Then
            For Each mn1 As String In mns1
                Dim filter As String ="会计年度 = \'" & e.DataRow("会计年度") & "\'"
                e.DataRow(mn1) = DataTables("余额横表").Compute("sum(" & mn1 & ")",filter)-DataTables("本期借方").Compute("sum(" & mn1 & ")",filter)+DataTables("本期贷方").Compute("sum(" & mn1 & ")",filter)

Next
        ElseIf e.newvalue = Nothing Then
            For Each mn1 As String In mns1
                e.DataRow(mn1) = Nothing
            Next
        End If
End Select


--  作者:大红袍
--  发布时间:2016/3/4 10:26:00
--  

合成不同的日期条件不就行了?

 

Dim filter1 As String ="会计年度 = \'" & e.DataRow("会计年度") & "\'"

Dim filter2 As String ="会计年度 = \'" & e.DataRow("会计年度")-1 & "\'"

[此贴子已经被作者于2016/3/4 10:25:59编辑过]

--  作者:kaituozhe
--  发布时间:2016/3/4 10:30:00
--  
  e.DataRow(mn1) 该怎么改
--  作者:大红袍
--  发布时间:2016/3/4 10:34:00
--  
不用改啊,报什么错。
--  作者:kaituozhe
--  发布时间:2016/3/4 10:35:00
--  

 e.DataRow(mn1) = e.DataRow(mn1) - DataTables("本期借方").Compute("sum(" & mn1 & ")",filter)+DataTables("本期贷方").Compute("sum(" & mn1 & ")",filter)

改成以上代码,但是在余额横表中怎么区别2011年的行与2012的行


--  作者:大红袍
--  发布时间:2016/3/4 10:38:00
--  

 

Dim filter1 As String ="会计年度 = \'" & e.DataRow("会计年度") & "\'"
Dim filter2 As String ="会计年度 = \'" & e.DataRow("会计年度")-1 & "\'"
e.DataRow(mn1) = DataTables("余额横表").Compute("sum(" & mn1 & ")",filter2)-DataTables("本期借方").Compute("sum(" & mn1 & ")",filter1)+DataTables("本期贷方").Compute("sum(" & mn1 & ")",filter1)