首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过分组并将结果加载到试算资产负债表的标题行,对数据集中的值求和

通过分组并将结果加载到试算资产负债表的标题行,对数据集中的值求和
EN

Stack Overflow用户
提问于 2016-10-17 03:12:23
回答 1查看 70关注 0票数 0

我通过填写资产子账户和银行余额的值以及股票价值来创建数据集。从不同的表中收集所有这些值。

现在的问题是,我想要对具有相同父账号的行中的每个值进行求和,并希望在同一数据集表中的父账号中更新结果。

有不同类型的行。以下可能性可能出现在行中。行可以是父组科目。每个集团可以有不同的交易账户,也可以有下级的集团账户,集团账户没有交易。它们的价值将仅作为其子账户的总和。

表如下所示。

代码语言:javascript
运行
复制
AccountNo | AccountDepth| ParrentAccountNo|OpeningDebit|
1         |   0         |                 |            | <Main Header
11        |   1         |   1             |            |   <Header Child    
111       |   2         |   11            |10000       |     <Trx   
112       |   2         |   11            |            |   <Header Child
1121      |   3         |   112           | 5000       |     <Trx
1122      |   3         |   112           |15000       |     <Trx   
113       |   2         |   11            |            |   <Hedaer Child
1131      |   3         |   113           |            |   <Header Child
11311     |   4         |   1131          |20000       |      <Trx  
1132      |   3         |   113           |35000       |      <Trx  
12        |   1         |   1             |            |   <Header Child
121       |   2         |   12            |            |     <Header Child
1211      |   3         |   121           |10000       |      <Trx  

我想把每个交易账户加到表头,然后把所有表头和到它们的表头,如果它们存在任何子代,那么它的子集也在表头,然后把所有表头加到它的父表中。请记住,所有值都在数据集表中

EN

回答 1

Stack Overflow用户

发布于 2016-10-17 19:10:20

我从来没有从这里得到我的任何问题的答案。不管我是怎么做到的。如果任何人也需要这个,让我与你分享。

代码语言:javascript
运行
复制
   Dim currentValue As Integer = 0, Depth As Integer = 0
        For c As Integer = 0 To ds.Tables(0).Rows.Count - 1
            currentValue = ds.Tables(0).Rows(c).Item("AccountDepth")
            If currentValue > Depth Then Depth = currentValue
        Next

        Dim depthchang As Integer = Depth

        For i = 0 To Depth
            Dim dt As DataTable = ds.Tables(0).Clone
            Dim rows() As DataRow = ds.Tables(0).Select("AccountDepth = " & depthchang & "")
            Dim row1 As DataRow
            For Each row1 In rows
                dt.ImportRow(row1)
            Next
            For j = 0 To ds.Tables(0).Rows.Count - 1
                For k = 0 To dt.Rows.Count - 1
                    If ds.Tables(0).Rows(j).Item("AccountNo") = dt.Rows(k).Item("ParentAccountNo") Then
                        ds.Tables(0).Rows(j).Item("OpeningDebit") = ds.Tables(0).Rows(j).Item("OpeningDebit") + dt.Rows(k).Item("OpeningDebit")
                        ds.Tables(0).Rows(j).Item("OpeningCredit") = ds.Tables(0).Rows(j).Item("OpeningCredit") + dt.Rows(k).Item("OpeningCredit")
                    End If
                Next
            Next
            dt.Clear()
            depthchang = depthchang - 1
        Next

这段代码给出了我所需要的输出。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40074362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档