2016-10-16 1 views
0

私はアセットの子口座と銀行残高の値を記入し、そして株価を入力してデータセットを作成しました。これらの値をすべて別のテーブルから集めました。データセット内の合計値トライアルバランスシートのヘッダ行に結果をグループ化してロードすることにより

問題今私は、同じ親アカウント番号を持つ行の各値と、同じデータセットテーブルの親であるアカウント番号で更新したい結果を合計します。

行にはさまざまな種類があります。次のような可能性があります。 行は親グループアカウントにすることができます。各グループは異なるトランザクションアカウントを持つことができ、また子供のグループアカウント、グループアカウントはトランザクションを持たない。彼らの価値は子供の勘定の合計としてのみ得られます。

表は以下の通りです。

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テーブルにあることを覚えておいてください。

答えて

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 

このコードは私に必要な出力を与えます。

関連する問題