我通过填写资产子帐户和银行余额以及库存值的值来创建数据集。从不同的表中收集了所有这些值。
现在问题我想要将具有相同父帐号的行中的每个值相加,并且想要在同一数据集表中作为父帐号的帐号中更新结果。
有不同类型的行。以下可能性可能在行中。 该行可以是父组帐户。每个组可以有不同的交易账户,也可以有子账户组账户,组账户没有交易。他们的价值只是他们子账户的总和。
表格如下。
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
我想将每个事务帐户加到标题中,而不是将所有标题加到标题中,如果它们存在任何子项,那么它的子项总和也在标题中,然后所有标题都添加到其父项。 请记住,所有值都在DATA-SET Table
中答案 0 :(得分:0)
我从来没有回答过我的任何问题。我是怎么做到的。 如果有人也需要,请与我分享。
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
这段代码给了我所需的输出。