我通过填写资产子账户和银行余额的值以及股票价值来创建数据集。从不同的表中收集所有这些值。
现在的问题是,我想要对具有相同父账号的行中的每个值进行求和,并希望在同一数据集表中的父账号中更新结果。
有不同类型的行。以下可能性可能出现在行中。行可以是父组科目。每个集团可以有不同的交易账户,也可以有下级的集团账户,集团账户没有交易。它们的价值将仅作为其子账户的总和。
表如下所示。
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
我想把每个交易账户加到表头,然后把所有表头和到它们的表头,如果它们存在任何子代,那么它的子集也在表头,然后把所有表头加到它的父表中。请记住,所有值都在数据集表中
发布于 2016-10-17 19:10:20
我从来没有从这里得到我的任何问题的答案。不管我是怎么做到的。如果任何人也需要这个,让我与你分享。
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
这段代码给出了我所需要的输出。
https://stackoverflow.com/questions/40074362
复制相似问题