DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ActiveReportsのヘッダについて

環境/言語:[環境:Windows XP 使用言語:VB.NET Frameworkバージョン:4.0]
分類:[.NET]

ActiveReports初心者なのですが、ヘッダについてご教授ください。

現在、以下のようなイメージの帳票を作成しています。

[ページヘッダ]
帳票タイトル
[グループヘッダ]
表1(行数固定)
[ディテール]
表2(行数可変)

帳票タイトルはページヘッダで1ページ目にのみ表示されるようにしていましたが、
グループヘッダの表1のグループ単位での表示が必要になりました。
ここで、帳票タイトルが表示されないページの先頭には
帳票タイトル分の余白を作らなければならないのですが、
どのうように実装すればいいでしょうか?
イメージとしては以下の通りです。

 1ページ目      2ページ目
__________________ __________________
|        | |        |
| 帳票タイトル | |        |
| ____________ | |        |
| |     | | | | 表2  | |
| | 表1  | | | | 続き  | |
| |__________| | | |     | |
| ____________ | | |     | |
| |     | | | |__________| |
| | 表2  | | |        |
| |     | | |        |
|________________| |________________|

改ページ時にページ数によってヘッダのvisibleを切り替えてやってみましたが、
2ページ目以降の制御がうまくできない上、
ヘッダなしのページの余白が作れず行き詰っています。
よろしくお願いします。
■No29550に返信(ロクさんの記事)

手元に環境がないので憶測ですが空白のヘッダを用意して帳票タイトル部の表示と排他的に表示するようには出来ませんか?
■No29552に返信(shuさんの記事)

ご回答ありがとうございます。

帳票タイトルのヘッダが表示されていないときは空白ヘッダを表示させる、ということでしょうか?
やろうとはしたのですが、
帳票タイトルのヘッダの表示状態の取得方法が分からずうまくいきません…。
ヘッダのプロパティにもそれらしい物が見当たらなかったのですが、
何かいい方法はありませんでしょうか?
こんばんは。

タイトル部分の高さだけはすべてのページに必ず表示し、
表1グループが切り替わるタイミングで改頁しつつタイトル内の文字等の要素を表示、
グループヘッダがこないページ(グループ2の明細のみ出力するページ)ではタイトル内の要素は表示しない、
ということでよいでしょうか。
以下の方法で対応できると思います。

レポート内に、タイトル出力変数=Trueで宣言。

ページヘッダはShrink、GrowともFalseにしてください。

表1のグループヘッダに対応するグループフッタを用意。非表示には設定しません。
これのAfterPrintイベントで、
    タイトル出力変数=True
を記述しておきます。

ページヘッダのFormatイベントハンドラ内で、
    タイトル部の要素たち.Visible=タイトル出力変数
    タイトル部の要素たち.Visible=タイトル出力変数
    タイトル部の要素たち.Visible=タイトル出力変数
    ・・・
を記述します。

表1グループヘッダのAfterPrintイベントで
    タイトル出力変数=False
を記述しておきます。

あと、表1グループヘッダはNewPageをBeforeにしておきます。

これで、表1ヘッダ出現後は対応するフッタが出現した後(フッタの次のページ)まで要素を抑制できます。
─────────────────────────
なお、特に理由がない限りは、各セクションはKeepTogetherをTrueに設定してください。
(上の処理とは関係ない話ですが、
グループ内の最終明細がページ下でほぼぴったりでわずかだけはみ出る際に
次ページにヘッダだけが出てしまう症状を減らせます。)
とん。様、ご回答ありがとうございます。

せっかく解決案を提示くださったところ申し訳ありませんが、
サポートサービスに問い合わせたところ
帳票タイトルを表示するヘッダの上に
空白ヘッダを被せて表示させることで実装することができました。

とん。様の案は、参考にさせて頂き今後に生かしたいと思います。
自己完結になってしまいましたが、
shu様、とん。様、ご回答ありがとうございました。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板