- PR -

ActiveReports PageFooter部でのSabReportの表示について

投稿者投稿内容
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-05-08 11:24
とりあえず、話を整理するために図を書いてみました。

コード:

+------------------------------+
| Detail                       |
|+----------------------------+|
|| SubReport(1)               ||
||                            ||
||                            ||
||                            ||
|+----------------------------+|
|   [他のコントロール]         |
|                              |
+------------------------------+
|+----------------------------+|
|| SubReport(2)               ||
|+----------------------------+|
|  PageFooter                  |
+------------------------------+


ここで、Detail に配置した SubReport(1) はレコード数分出力され、そ
の下の[他のコントロール]は SubReport の下に出力される。行数が変
化したとしてもその下に必ず出力される。
SubReport(2) は行数が変化したとしても 1 レコード分しか表示されな
い。
という意識であっているでしょうか。

まず結論から言うと「それはそういうものです」となります。
SubReport(1) の出力がレコード数分表示され、その下に配置した他の
コントロールが正しく表示されるのは、それが Detail の機能だからです。
というか、Detail はそもそもそういうものです。
対して PageFooter (あるいは Detail 以外の部分)は決まりきった大き
さのものを出力するために使うもので、Detail の用に自動で大きさを変え
てくれたり SubReport に合わせてくれたりしません。
ということで

引用:

KEIさんの書き込み (2007-05-08 10:44) より:

フッタ部では仕様的に無理なのでしょうか。


ですです。

っと、書いてるうちにじゃんぬねっとさんの投稿が。
じゃんぬねっとさんの理解だと「上図の[他のコントロール]の真下に
PageFooter が来てほしいと考えられている」という感じですが、私は
「PageFooter の中で SubReport を使っても SubReport の行数が
自動調節してくれへんねん」という風に見ました。
どちらにしても「PageFooter は使うな」で終了ですが。


余談ですが、以前こんな帳票を作りました。

コード:

+------------------------------+
| XXX 9,999,999                | 合計(単票風)
| XXX 9,999,999                |
| XXX 9,999,999                |
|                              |
|+----------------------------+| 詳細(1)
||    |        |       |      ||
||    |        |       |      ||
||    |        |       |      ||
||    |        |       |      ||
|+----------------------------+|
|+------++--------++----------+| 詳細(2) [3列]
||   |  ||   |    ||     |    ||
||   |  ||   |    ||     |    ||
|+------++--------++----------+|
+------------------------------+


単票風の合計欄と、帯で出力する詳細と、別々の3列の枠を表示する詳細
が混在する、非常にややこしい帳票でした。
そのときは、3種類の帳票を全部サブレポートにして、メインのレポート側で
それぞれのサブレポートの出力を管理しつつ、1レコードにつき3回(3種類
あるから)出力するといったことをやりました。
1回目→合計出力/詳細(1)非表示/詳細(2)非表示
2回目→合計非表示/詳細(1)出力/詳細(2)非表示
3回目→合計非表示/詳細(1)非表示/詳細(2)出力
→次レコードへ移動してループ
あまりおすすめはしませんが、PageFooter に Detail を盛り込みたいと
いうのであれば、このような感じになるのではないかと思います。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
KEI
常連さん
会議室デビュー日: 2007/01/17
投稿数: 21
投稿日時: 2007-05-08 11:39
じゃんぬねっと様、ぽぴ王子様 お返事ありがとうございます。
大変助かっております。

引用:
まず結論から言うと「それはそういうものです」となります。
SubReport(1) の出力がレコード数分表示され、その下に配置した他の
コントロールが正しく表示されるのは、それが Detail の機能だからです。
というか、Detail はそもそもそういうものです。
対して PageFooter (あるいは Detail 以外の部分)は決まりきった大き
さのものを出力するために使うもので、Detail の用に自動で大きさを変え
てくれたり SubReport に合わせてくれたりしません。



やはりそうですよね。。。。
確証が得られました。

引用:
「PageFooter の中で SubReport を使っても SubReport の行数が
自動調節してくれへんねん」という風に見ました。



正にその通りでございます↓
大変わかりづらい文章を書いてしまい皆さんのお時間を取らせてしまい、
恐縮です。これから十分に気をつけます。

じゃんぬねっと様、ぽぴ王子様 丁寧にありがとうございました。
お二人のご助言を基に対策を練ってみます☆
ありがとうございました。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-08 12:20
引用:

ぽぴ王子さんの書き込み (2007-05-08 11:24) より:

っと、書いてるうちにじゃんぬねっとさんの投稿が。
じゃんぬねっとさんの理解だと「上図の[他のコントロール]の真下に
PageFooter が来てほしいと考えられている」という感じですが、私は
「PageFooter の中で SubReport を使っても SubReport の行数が
自動調節してくれへんねん」という風に見ました。


アッー!! すみません、ボケていましたね。
Detail セクションなどの 1 ページ内で繰り返されないセクションについては、
出力内容によって大きさを動的に変わることはありません。(これは仕様です)

引用:

あまりおすすめはしませんが、PageFooter に Detail を盛り込みたいと
いうのであれば、このような感じになるのではないかと思います。


下揃えでさえなければ、グループ フッタのオーバーレイ描画でいけそうなんですけどね。

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

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