以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何实现会计科目的分组汇总  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130508)

--  作者:nxhylczh
--  发布时间:2019/1/23 21:57:00
--  如何实现会计科目的分组汇总

图片点击可在新窗口打开查看此主题相关图片如下:630cd9b54edc6fb659f05a3036fc795.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/1/23 23:20:39编辑过]

--  作者:有点甜
--  发布时间:2019/1/23 22:09:00
--  

 

做一个内部数据源或者access数据源的例子发上来,说明操作步骤,以及需要做到的效果。

 

 


--  作者:nxhylczh
--  发布时间:2019/1/23 23:12:00
--  
请看示例
[此贴子已经被作者于2019/1/23 23:12:41编辑过]

--  作者:nxhylczh
--  发布时间:2019/1/23 23:15:00
--  
以下是引用nxhylczh在2019/1/23 23:12:00的发言:
请看示例
[此贴子已经被作者于2019/1/23 23:12:41编辑过]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb

项目的实际情况是  科目表  期初数表为外部表
科目期初数表是 一个填充表
[此贴子已经被作者于2019/1/23 23:19:14编辑过]

--  作者:nxhylczh
--  发布时间:2019/1/23 23:22:00
--  
\'1010030202 的级数为4级

Dim kmbm_lenC() As String ={"101","101003","10100302","1010030202"} 

\'假定现在在第8行 借方累计栏内输入 100
For js As Integer = 4 To 1 Step -1
    For CurRow As Integer =  Tables("期初数").Position  To 1 Step -1   \'从当前行向上查找
        If Tables("期初数").Current("科目编码") = kmbm_lenC(js - 1) Then  \'找到上级 10100302
             \'汇总当前科目的下级科目 1010030202=1010030201+1010030202  第一次循环
            \'Dim je As String = \'汇总当前科目的下级科目 1010030202=1010030201+1010030202  第一次循环
            \'更新 期初数  1010030202
            \'Tables("期初数").Current(e.Col.Name) = je
            \'表第六行 10100302 的借方累计=100+100
            Exit For
        End If
    Next
Next

--  作者:有点甜
--  发布时间:2019/1/24 9:36:00
--  

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1 (3).foxdb

 


 


--  作者:nxhylczh
--  发布时间:2019/1/24 10:55:00
--  
If e.Col.name = "借方累计" OrElse e.Col.name = "年初数" Then
    Dim bmgs As String = "3322"
    Dim bm As String = e.Row("科目编码")
    Dim idx As Integer = 0
    For i As Integer = 0 To bmgs.length-1
        idx += val(bmgs(i))
        If bm.length >= idx Then
            Dim s = bm.SubString(0, idx)
            Dim fdr As DataRow = e.Table.DataTable.find("科目编码 = \'" & s & "\' and 有下级 = true")
            If fdr IsNot Nothing
                fdr("借方累计") = e.Table.Compute("sum(借方累计)", "科目编码 like \'" & s & "%\' and 科目编码 <> \'" & s & "\'  and 有下级 = false")\'
                fdr("年初数")= e.Table.Compute("sum(年初数)", "科目编码 like \'" & s & "%\' and 科目编码 <> \'" & s & "\'  and 有下级 = false")\'
            End If
        End If
    Next
End If

--  作者:nxhylczh
--  发布时间:2019/1/24 10:56:00
--  
公开源代码,让有用的同行借鉴一下!(代码是版主写的)