- PR -

複数グループある場合のActiveReportsの帳票ヘッダー制御

投稿者投稿内容
とろ
会議室デビュー日: 2008/07/24
投稿数: 6
投稿日時: 2008-07-24 02:44
ActiveReports VB.NET 2005 を使用しています。

複数グループある場合の
帳票のヘッダーの制御がうまくいかず困っています。

下記のような帳票を作成したいと思っています。

レイアウト
----------------------------
帳票ヘッダー
詳細
グループ2_Footer
(改頁)
帳票ヘッダー
詳細
グループ2_Footer
グループ1_Footer
(改頁)
----------------------------

※グループ1、2ブレイク時に改頁を行う。


帳票のヘッダー部分にグループ1、2の情報を含むので
帳票のヘッダー部分をグループ2_Headerで記述して

グループ2_Headerのプロパティを
Newpage=Before
Repeat=OnPageIncludeNoDetail
としたのですが、

グループ2_Footer出力直後に行数の関係で改頁が起った場合
帳票のヘッダー部分は出力されず
帳票のヘッダーが無い状態でグループ1_Footerが出力されてしまいます。

グループ1_Headerとグループ2_Header両方にヘッダー内容を記述して
片方をVisible=falseにする方法も試みたのですが
うまくいきませんでした。

よい方法をご存知であれば教えて頂けるとうれしいです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-07-24 10:10
引用:

とろさんの書き込み (2008-07-24 02:44) より:

グループ2_Headerのプロパティを
Newpage=Before
Repeat=OnPageIncludeNoDetail
としたのですが、


GroupFooter の NewPage を After に、GroupHeader の GroupKeepTogether に FirstDetail を設定するとどうでしょうか。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
とろ
会議室デビュー日: 2008/07/24
投稿数: 6
投稿日時: 2008-07-24 12:36
じゃんぬねっとさん、アドバイスありがとうございます。

試してみましたが、うまくいきませんでした。

グループ2_Footerを出力後〜次のグループ2_Headerまでの間は
グループ2に関係ないのでOnPageIncludeNoDetailを指定していても
グループ2_Headerが出ないのではないかと思うのです。

グループ1_Headerにグループ2_Headerと同様の記述をして
必要に応じて、片方をvisible=falseにするか
UnderlayNextを使って二重にヘッダーが出ないようにする方法も考えたのですが
visibleやUnderlayNextを変更するタイミングがわからずうまくいきません。

ありがちな帳票パターンだと思うのですが、皆様どのように処理されているのでしょう?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-07-24 12:51
引用:

とろさんの書き込み (2008-07-24 12:36) より:

グループ2_Footerを出力後〜次のグループ2_Headerまでの間は
グループ2に関係ないのでOnPageIncludeNoDetailを指定していても
グループ2_Headerが出ないのではないかと思うのです。


いや普通に関係ありますよ。「Group2 でグループ化されているフィールドの値が切り替わる == グループが変わる」 ですから、GroupHeader と GroupFooter は関係しています。 というより、これで関係ないのだったら何のための Group かわからないです。

引用:

ありがちな帳票パターンだと思うのですが、皆様どのように処理されているのでしょう?


確かにありがちですね。 NewPage と (Group)KeepTogether だけで思いのままにできるハズです。 単純であるが故に逆に何が問題なのか私にも見えていません。 Group1 の条件が悪さをしているなんてことはさすがにないか...

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
とろ
会議室デビュー日: 2008/07/24
投稿数: 6
投稿日時: 2008-07-24 14:04
返信ありがとうございます。

Header 〜 Footerまででグループが完結するので
Footer出力後は、Headerを再出力する必要がないので出ないのだと
自分で納得してしまっていました。

プロパティで対応できるはずなのですか?
いろいろ試してみます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-07-24 14:46
引用:

とろさんの書き込み (2008-07-24 14:04) より:

Header 〜 Footerまででグループが完結するので
Footer出力後は、Headerを再出力する必要がないので出ないのだと
自分で納得してしまっていました。


グループはグループの条件に設定されたフィールドの値に変化が生じた単位に生成されるセクションです。 グループ ヘッダとグループ フッタはそのセクションの最初と最後になります。

今回は RepeatStyle が OnPageIncludeNoDetail になっていますから、レコードがなかろうとフッタが出力されているページですからヘッダが出力されるハズです。 それができていないようなのでおかしいなと思う次第です。

引用:

プロパティで対応できるはずなのですか?
いろいろ試してみます。


こういう作りの帳票は私も数多くやっていますが、グループの設定だけで改ページの制御はできていましたから問題なく対応できるハズです。 いろいろ試すと返ってわかりにくいので、まず初期設定に戻して Group2 の NewPage だけで確認するなどしていった方が良いと思います。

現状 Group1 に何か設定が入っていたりするのであれば取り除いてください。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
とろ
会議室デビュー日: 2008/07/24
投稿数: 6
投稿日時: 2008-07-25 10:26
設定を初期値に戻して、
Group2のGroupKeepTogether、NewPageをいろいろ試したのですが、うまくいきません。

引用:
--------------------------------------------------------------------------------

今回は RepeatStyle が OnPageIncludeNoDetail になっていますから、レコードがなかろうとフッタが出力されているページですからヘッダが出力されるハズです。 それができていないようなのでおかしいなと思う次第です。

--------------------------------------------------------------------------------

改ページ後に出力されるフッタはGroup2でなく、Group1のフッタだけなので
Group2のOnPageIncludeNoDetailで
Group2のヘッダーは出ないのではないかと思ってしまうのですが、違うのでしょうか?

Group1のヘッダーを出すニーズはあると思うので何か方法があるのだとは思うのですが。。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2008-07-25 11:52
引用:

とろさんの書き込み (2008-07-25 10:26) より:

改ページ後に出力されるフッタはGroup2でなく、Group1のフッタだけなので
Group2のOnPageIncludeNoDetailで
Group2のヘッダーは出ないのではないかと思ってしまうのですが、違うのでしょうか?


あ、そういう意味でしたか。 って 1 番最初の投稿に "グループ1_Footer" と書いてありましたね。 申し訳ありませんでした。

この場合は Group2 はレコードもフッタも出てこないので Group1 のフッタと Group2 のヘッダを対で載せる意味はないと思ったのですが、

引用:

Group1のヘッダーを出すニーズはあると思うので何か方法があるのだとは思うのですが。。


? あれ? Group1 のヘッダを出力したいのですか? 途中の投稿をみると Group2 のヘッダを出力したいようにしか読み取れませんでしたが、実は最終ページのみ Group1 のヘッダを出力したいという意味だったのでしょうか? (だとすれば Group2 の設定は一切関係ないです) 何だか良くわからなくなってきました。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)