Microsoft Access 掲示板

レポートグループ値の総合計をレポートヘッダーに表示させたい / 21

25 コメント
views
4 フォロー
21
hiroton 2023/06/07 (水) 13:10:04 9c71f@f966d

[Pages]は必須です
基本的な使い方の、ページ番号表示のために設置済みであれば改めて配置する必要はありませんが、未使用場合は配置する必要があります。表示不要なら可視プロパティを「いいえ」にしましょう


簡単に説明すると、レポートは「データの整形format」→「描画print」をレコードの数だけ繰り返します。そして、「描画」したら描画内容が確定され、修正できなくなります。プレビュー画面で見てるとイメージが付きにくいですが、実際に印刷されることを考えればわかりやすいですね
つまり、レポートヘッダーとは通常、真っ先に印刷済みになってしまうのであとから累計を書き込みたいといっても無理なのです

ここで、[pages]ですが、これは総ページ数を表示する変数です。しかしながら、総ページ数は出力してみないとわからないので上記の単純な仕組みでは描画することができません
そこで、ACCESSは[pages]が含まれるレポートを印刷しようとすると
『全レコード分(「データの整形」)→全レコード分(「データの整形」→「描画」)』
のように、印刷の仮データを作るかのような動作します

この動作をイベントで追いかければ

(仮)レポートヘッダー→(仮)詳細[レコード数分]→(仮)レポートフッター→(本番)レポートヘッダー→(本番)詳細[レコード数分]→(本番)レポートフッター

となるので、全レコード分の情報を反映した内容をレポートヘッダーに書き込むことができるようになります

処理するイベントがヘッダーでもフッターでもいいというのは、正確には「(仮)レポートフッター」か、「(本番)レポートヘッダー」のどちらかであればいいということですね


次に、コードがMe.[tx月合計] = Me.[tx税込金額の累計]の場合はフッターでなければならないのはなぜ?となるのですが、これは参照するデータの問題です。つまり、Me.[tx税込金額の累計]はイベントのタイミングで内容が異なるからということですね
レポート上のコントロールなので、描画するレコードに合わせて内容は変わっていて当然というわけです

通報 ...