- PR -

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

投稿者投稿内容
KEI
常連さん
会議室デビュー日: 2007/01/17
投稿数: 21
投稿日時: 2007-05-07 20:09
いつもお世話になります。

現在、VS2005/ActiveReports 2.0 にて帳票を作成しております。

構成は、MainレポートのPageFooter部にSubレポートが配置されております。
Detail部であれば問題ないのですが、PageFooter部にSubレポートを配置した場合、
自動的にサイズが調整されません。
Subレポートのサイズが可変のため、何とか動的にサイズを調整したいのですが…。

どなたかお知りでしたらご教授ください。。
宜しくお願い致します。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-07 20:44
引用:

KEIさんの書き込み (2007-05-07 20:09) より:

構成は、MainレポートのPageFooter部にSubレポートが配置されております。Detail部であれば問題ないのですが、PageFooter部にSubレポートを配置した場合、自動的にサイズが調整されません。Subレポートのサイズが可変のため、何とか動的にサイズを調整したいのですが…。


まず、なぜページ フッタなんかに配置したいのか知りたいです。
普通はそんなところに SubReport を配置することはありませんので。
(理由 : 正しい結果を期待できない)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
KEI
常連さん
会議室デビュー日: 2007/01/17
投稿数: 21
投稿日時: 2007-05-08 09:00
じゃんぬねっと様 いつもありがとうございます。
ネットが見れない環境にいましたので、お返事遅れて申し訳ありません。

普通はそういうものなんですか。。
理由としては、サブレポートの内容が逐次変更される内容であるからなのですが。

正確な動きが期待できないとはどういうことなのでしょうか。
お手数ですが、できればご教授していただければ助かります。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-08 09:41
引用:

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

普通はそういうものなんですか。。
理由としては、サブレポートの内容が逐次変更される内容であるからなのですが。


その理由は、むしろ 'ページフッタに配置してはいけない理由' に当たります。
改ページのタイミングはどの環境でも同じとは限りません。

どの要素で SubReport は逐次変更されるのでしょうか?
ページに紐づいて内容を変更だなんてあまり考えられないと思うのですが...

単票形式の Report であれば、SubReport の出番すらないでしょうし。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
KEI
常連さん
会議室デビュー日: 2007/01/17
投稿数: 21
投稿日時: 2007-05-08 10:08
お返事ありがとうございます。

>どの要素で SubReport は逐次変更されるのでしょうか?
ページに紐づいて内容を変更ではなく、
サブレポートの内容が、ユーザにより変更された場合(DB値が変更)に
変更されます。
例えば、住所/連絡先といった内容をフッターに表記する場合を指しています。
Max行数は指定されていますので、フッターサイズを超える高さにはなりません。
Subレポートの下部にラベルを配置している為、SubレポートのサイズがMax行数
に達していない場合、Subレポートのサイズが自動調整され、
ラベルが上部に詰めて表示されることを期待していたのですが…。

ヘッダ/フッタはそもそも固定サイズであるため、Detailのように自動で
サイズ調整が行われる仕様にはなっていないのでしょうか。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-05-08 10:30
じゃんぬねっとさんの疑問はともかくとして、まずは「読む側に自分の意図
が伝わる文章」を書くべきかと思います。

なぜわざわざ PageFooter に SubReport を出力するのか?は私も疑
問でしたが

引用:

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

>どの要素で SubReport は逐次変更されるのでしょうか?
ページに紐づいて内容を変更ではなく、
サブレポートの内容が、ユーザにより変更された場合(DB値が変更)に
変更されます。
例えば、住所/連絡先といった内容をフッターに表記する場合を指しています。
Max行数は指定されていますので、フッターサイズを超える高さにはなりません。


これでようやく、何のために PageFooter を選択したのかという意図が見
えてきました。かと言ってそれが正しいかどうかはちょっと疑問ですが。
ただ

引用:

Subレポートの下部にラベルを配置している為、SubレポートのサイズがMax行数
に達していない場合、Subレポートのサイズが自動調整され、
ラベルが上部に詰めて表示されることを期待していたのですが…。


期待していたのですが…の続きが省略されてしまっているので、期待して
いたのだけど実際はどうだったのか、自動的にサイズが調整されないとい
うのは何を指しているのか、そのあたりがさっぱり見えてきません。

SubReport のサイズが Max 行数に達していなければ、SubReport
のサイズは自動調整されて上部に詰められるような気もしますが、それが
されずにどこか違う場所に出力される、ということでしょうか。
それとも、SubReport が Max 行数に達していない場合に
PageFooter のサイズが調整されずに余白ができる、という意味であれ
ば「そういうもんじゃね?」とは思います。

引用:

ヘッダ/フッタはそもそも固定サイズであるため、Detailのように自動で
サイズ調整が行われる仕様にはなっていないのでしょうか。


これを読む限りは、どうもそういった勘違いをされているように見受けられま
すが、その点は大丈夫でしょうか。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
KEI
常連さん
会議室デビュー日: 2007/01/17
投稿数: 21
投稿日時: 2007-05-08 10:44
ぽぴ王子様 お返事ありがとうございます。

ご指摘もっともです。今後気をつけて投稿致します。

例えば、MainレポートのDetailにSubレポートを配置します。
Subレポートのサイズは、1レコード分のサイズにしておきます。
上記を実行した場合、Subレポートのサイズは自動調整され、
レコード数分のサイズに調整されます。
また、Subレポートの下部に他のコントロールを配置している場合、
サイズ調整後のSubレポートの下部に表示されます。
※調整されたSubレポートの下部。Subレポートにかぶって表示される訳ではありません。
これはActiveReportのDetail部が相対表示されているからですよね。

フッター部で同様な処理を実行しましたが、Subレポートのサイズが調整されず、
1レコード分のみ表示されてしまいました。

Subレポートのサイズをあらかじめ予測される行数に設定をしておくと、
余白部分ができてしまいますので、Detail部で行った処理をすれば
上記で記述したような動きをすると考えていたのですが。
フッタ部では仕様的に無理なのでしょうか。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-05-08 10:51
引用:

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

ページに紐づいて内容を変更ではなく、サブレポートの内容が、ユーザにより変更された場合(DB値が変更)に変更されます。
例えば、住所/連絡先といった内容をフッターに表記する場合を指しています。


SubReport と MainReport の表示上の関連はないのですか...?

SubReport の内容が "ユーザーにより" というのも意味がわかりませんが、
データソースが出力されるにつれてデータが変わった時という意味でしょうか?

であれば、SubReport が勝手なタイミングで出力しても良いということにはならないと思いますけど...

引用:

Max行数は指定されていますので、フッターサイズを超える高さにはなりません。


Max 行数というのは Detail セクション側のお話ですか?
であれば、レイアウト上は問題ないのでしょうけど、MainReport と SubReport の関連性の保証は未解決です。

引用:

Subレポートの下部にラベルを配置している為、SubレポートのサイズがMax行数に達していない場合、Subレポートのサイズが自動調整され、ラベルが上部に詰めて表示されることを期待していたのですが…。


ページ フッタってその名前のとおりフッタですから、上に詰められるわけではありません。
'フッタ' なのですから 「下に詰められるのであって欲しいと願う」 のが普通です。

私は 「勝手に上に詰められると困るケースの方が多い」 と断言します。
たとえば、Detail セクションのデータが極端に少ない場合、帳票の中腹にフッタが出力されます。
これでは、もはや 「ページ フッタ」 ではないでしょう。

というわけで、結局のところページフッタに配置するのは間違っています。
関連を用意してグループ フッタに出力しましょう。

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

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