以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  财务期初数据动态获取  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=139143)

--  作者:yifan3429
--  发布时间:2019/8/6 18:05:00
--  财务期初数据动态获取

图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20190806213838.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20190806213818.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:企业微信截图_20190806204346.png
图片点击可在新窗口打开查看

通过凭证明细 获取每个部门 每个月的期初期末数据

求助:财务期初数据动态获取方案 
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:期初数据获取.foxdb



[此贴子已经被作者于2019/8/6 21:39:27编辑过]

--  作者:有点蓝
--  发布时间:2019/8/6 20:22:00
--  
没看懂,最终需要得到什么结果?
--  作者:yifan3429
--  发布时间:2019/8/6 20:46:00
--  
我更新了问题 
--  作者:有点蓝
--  发布时间:2019/8/6 20:49:00
--  
还是没看懂,请手工填上最终的期末和期初值看看
--  作者:yifan3429
--  发布时间:2019/8/6 21:40:00
--  
重新更新了
--  作者:有点蓝
--  发布时间:2019/8/6 22:02:00
--  
和我理解的不一样。

期初数据表,DataColChanged事件

Select Case e.DataCol.Name
    Case "部门","年份","月度"
        If e.DataRow.IsNull("部门") OrElse e.DataRow.IsNull("年份") OrElse e.DataRow.IsNull("月度")
        Else
            Dim ms() As String = {"一","二","三","","","六","","八"} ‘其它月份自己补上
            Dim s As String = e.DataRow("月度").replace("月份","")
            Dim idx As Integer = Array.IndexOf(ms,s)
            If idx > -1 Then
                Dim d As Date = new Date(val(e.DataRow("年份")),idx+1,1)
                Dim dr As DataRow  = DataTables("凭证明细").Find("部门=\'" & e.DataRow("部门") & "\' And 日期 >=#" & d & "# And 日期 < #" & d.AddMonths(1) & "#","日期")
                If dr IsNot Nothing Then
                    e.DataRow("期初") = dr("余额")
                End If
                dr  = DataTables("凭证明细").Find("部门=\'" & e.DataRow("部门") & "\' And 日期 >=#" & d & "# And 日期 < #" & d.AddMonths(1) & "#","日期 desc")
                If dr IsNot Nothing Then
                    e.DataRow("期末") = dr("余额")
                End If
            End If
        End If
End Select