2

私はこれについて多くのことをグーグルで調べましたが、何も役に立ちませんでした。これは以前にここで質問されましたが、誰も回答していません。

グループ化されたデータを金額列で表示する Tablix があります。

Tablix (data)
             Name (group)
                         Amount (rows)

「名前」グループが複数のページにまたがる場合、最初のページにある金額の合計のページ合計を表示したいと思います。次のページでは、前のページの繰越合計を表示する必要があります。

特にカスタム アセンブリを使用して、多くのことを試しました (各グループの合計を含む辞書を保持し、レポートのフッターに合計を表示しようとするなど)。実装を本当に混乱させるのは、レポートのヘッダー、本文、およびフッターが「実行」される順序です。

アイデアや提案はありますか?

4

2 に答える 2

1

のため:

  • グループ化されたデータの 1 つのインスタンスが詳細レベルで複数のページに分割されているかどうかを取得する方法がないという事実 (繰り返される列ヘッダーの下に繰越合計を表示できるようにするため)
  • ページのヘッダーとフッターは、body 要素の後に常に「評価」されます。
  • ページのヘッダーとフッターで使用される式では、ReportItem でのみ参照できます。
  • ページのヘッダーまたはフッターから body 要素を変更することはできません (主に上記の理由により)
  • Tablix コントロールを拡張して独自の機能を追加することはできません

グループページの合計をフッターに表示して保存し、次のページに表示するために拾うことにしました。

これは、累積合計列を使用して行われます

= IIf(RunningValue(Fields!AmountDC.Value, Sum, "Group1") <> Sum(Fields!Amount.Value, "Group1"), code.SetTotal(RunningValue(Fields!Amount.Value, Sum, "Group1")), Nothing) 

最後の詳細行では、「Nothing」に設定されています

フッターでは、テキストボックスがその累積合計フィールドの最後の値を取得します。

= code.SetTotal(Last(ReportItems!CumTotal.Value))

現在の合計を埋め込みコードのプライベート フィールドに格納します。

Private running As Double = 0

Public Function SetTotal(ByVal val As Double) As Double
    running = val
    Return val
End Function

Public Function GetTotal() As Double
    Return running
End Function

そして最後にページフッターで、保存された合計が取得されます

= code.GetTotal()

シンプルすぎますが、何度も試行錯誤した結果、私が持っているものに最も近いものになりました!

于 2013-01-08T11:18:04.653 に答える
0

この投稿を試してください...ページの回答を分離..

これは直接的な答えではありませんが、SQL を使用してページを分割したり、現在の合計を使用したりする場合は、これで始めることができます。

ただし、質問に答えるには、ssrs の機能ではありません。

于 2013-01-05T11:39:22.820 に答える