以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]再次求教关于结转问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=104640)

--  作者:鲁吉
--  发布时间:2017/8/2 13:16:00
--  [求助]再次求教关于结转问题
表中有如下数据列:

年    月    上年结转     本月增加    本年累计增加      本月减少     本年累计减少      本月结余


关于累计和结转问题要实现:1、上年结转+累计增加-累计减少=本月结余 的效果
                                     2、当本月为1月时上年结转列可直接录入,也可直接使用上一年12月份的“本月结余” ; 当前月份大于1时,上年结转不可录入,并能直接使用1月的“上年结转”数据

自己试了无数次都没能实现,
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关于结转.table

请高手帮忙写下表事件代码!!!

--  作者:有点甜
--  发布时间:2017/8/2 13:52:00
--  
 手动输入的是 年、月、本月增加、本月减少,上年结转?统计的是本年累计增加、累计减少、本年结余?
--  作者:鲁吉
--  发布时间:2017/8/2 14:05:00
--  
上年结转在1月份是直接获得上年12月的结余数据(如果上一年没填写过可允许手填),其他月分直接使用1月份的上年结转数据(不可手填)
[此贴子已经被作者于2017/8/2 14:06:32编辑过]

--  作者:有点甜
--  发布时间:2017/8/2 14:25:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关于结转.table


--  作者:鲁吉
--  发布时间:2017/8/2 14:32:00
--  
谢谢,我试下
--  作者:鲁吉
--  发布时间:2017/8/2 14:54:00
--  
未能实现累计(增加和减少)的自动填入


--  作者:鲁吉
--  发布时间:2017/8/2 15:28:00
--  
也就是说当前行的”本年累计增加“=上一行(月)的”本年累计增加“+当前行的”本月增加“
这种效果没能实现

--  作者:有点甜
--  发布时间:2017/8/2 16:30:00
--  
以下是引用鲁吉在2017/8/2 15:28:00的发言:
也就是说当前行的”本年累计增加“=上一行(月)的”本年累计增加“+当前行的”本月增加“
这种效果没能实现

 

参考流水账的设计

 

http://www.foxtable.com/webhelp/scr/1572.htm

 

 

Select Case e.DataCol.name
    Case "年", "月", "上年结转","本月增加","本月减少"
        If e.DataRow.IsNull("年") Then
            e.DataRow("本月结余") = Nothing
        Else
           
            If e.DataRow("月") = "1" Then
                Dim fdr = e.DataTable.find("年 = \'" & e.DataRow("年") - 1 & "\' and 月 = \'12\'")
                If fdr IsNot Nothing Then
                    e.DataRow("上年结转") =  fdr("本月结余")
                End If
            Else
                Dim fdr = e.DataTable.find("年 = \'" & e.DataRow("年") & "\' and 月 = \'1\'")
                If fdr IsNot Nothing Then
                    e.DataRow("上年结转") =  fdr("上年结转")
                End If
            End If
            Dim sum1 As Double = e.DataTable.Compute("sum(本月增加)", "年 = \'" & e.DataRow("年") & "\'")
            Dim sum2 As Double = e.DataTable.Compute("sum(本月减少)", "年 = \'" & e.DataRow("年") & "\'")
            e.DataRow("本年累计增加") = sum1
            e.DataRow("本年累计减少") = sum2
            e.DataRow("本月结余") = sum1 + e.DataRow("上年结转") - sum2
        End If
End Select