- - PR -
複数グループある場合のActiveReportsの帳票ヘッダー制御
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 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にする方法も試みたのですが うまくいきませんでした。 よい方法をご存知であれば教えて頂けるとうれしいです。 | ||||||||
|
投稿日時: 2008-07-24 10:10
GroupFooter の NewPage を After に、GroupHeader の GroupKeepTogether に FirstDetail を設定するとどうでしょうか。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-07-24 12:36
じゃんぬねっとさん、アドバイスありがとうございます。
試してみましたが、うまくいきませんでした。 グループ2_Footerを出力後〜次のグループ2_Headerまでの間は グループ2に関係ないのでOnPageIncludeNoDetailを指定していても グループ2_Headerが出ないのではないかと思うのです。 グループ1_Headerにグループ2_Headerと同様の記述をして 必要に応じて、片方をvisible=falseにするか UnderlayNextを使って二重にヘッダーが出ないようにする方法も考えたのですが visibleやUnderlayNextを変更するタイミングがわからずうまくいきません。 ありがちな帳票パターンだと思うのですが、皆様どのように処理されているのでしょう? | ||||||||
|
投稿日時: 2008-07-24 12:51
いや普通に関係ありますよ。「Group2 でグループ化されているフィールドの値が切り替わる == グループが変わる」 ですから、GroupHeader と GroupFooter は関係しています。 というより、これで関係ないのだったら何のための Group かわからないです。
確かにありがちですね。 NewPage と (Group)KeepTogether だけで思いのままにできるハズです。 単純であるが故に逆に何が問題なのか私にも見えていません。 Group1 の条件が悪さをしているなんてことはさすがにないか... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-07-24 14:04
返信ありがとうございます。
Header 〜 Footerまででグループが完結するので Footer出力後は、Headerを再出力する必要がないので出ないのだと 自分で納得してしまっていました。 プロパティで対応できるはずなのですか? いろいろ試してみます。 | ||||||||
|
投稿日時: 2008-07-24 14:46
グループはグループの条件に設定されたフィールドの値に変化が生じた単位に生成されるセクションです。 グループ ヘッダとグループ フッタはそのセクションの最初と最後になります。 今回は RepeatStyle が OnPageIncludeNoDetail になっていますから、レコードがなかろうとフッタが出力されているページですからヘッダが出力されるハズです。 それができていないようなのでおかしいなと思う次第です。
こういう作りの帳票は私も数多くやっていますが、グループの設定だけで改ページの制御はできていましたから問題なく対応できるハズです。 いろいろ試すと返ってわかりにくいので、まず初期設定に戻して Group2 の NewPage だけで確認するなどしていった方が良いと思います。 現状 Group1 に何か設定が入っていたりするのであれば取り除いてください。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2008-07-25 10:26
設定を初期値に戻して、
Group2のGroupKeepTogether、NewPageをいろいろ試したのですが、うまくいきません。 引用: -------------------------------------------------------------------------------- 今回は RepeatStyle が OnPageIncludeNoDetail になっていますから、レコードがなかろうとフッタが出力されているページですからヘッダが出力されるハズです。 それができていないようなのでおかしいなと思う次第です。 -------------------------------------------------------------------------------- 改ページ後に出力されるフッタはGroup2でなく、Group1のフッタだけなので Group2のOnPageIncludeNoDetailで Group2のヘッダーは出ないのではないかと思ってしまうのですが、違うのでしょうか? Group1のヘッダーを出すニーズはあると思うので何か方法があるのだとは思うのですが。。 | ||||||||
|
投稿日時: 2008-07-25 11:52
あ、そういう意味でしたか。 って 1 番最初の投稿に "グループ1_Footer" と書いてありましたね。 申し訳ありませんでした。 この場合は Group2 はレコードもフッタも出てこないので Group1 のフッタと Group2 のヘッダを対で載せる意味はないと思ったのですが、
? あれ? Group1 のヘッダを出力したいのですか? 途中の投稿をみると Group2 のヘッダを出力したいようにしか読み取れませんでしたが、実は最終ページのみ Group1 のヘッダを出力したいという意味だったのでしょうか? (だとすれば Group2 の設定は一切関係ないです) 何だか良くわからなくなってきました。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |