- - PR -
ActiveReports PageFooter部でのSabReportの表示について
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-05-07 20:09
いつもお世話になります。
現在、VS2005/ActiveReports 2.0 にて帳票を作成しております。 構成は、MainレポートのPageFooter部にSubレポートが配置されております。 Detail部であれば問題ないのですが、PageFooter部にSubレポートを配置した場合、 自動的にサイズが調整されません。 Subレポートのサイズが可変のため、何とか動的にサイズを調整したいのですが…。 どなたかお知りでしたらご教授ください。。 宜しくお願い致します。 | ||||||||||||
|
投稿日時: 2007-05-07 20:44
まず、なぜページ フッタなんかに配置したいのか知りたいです。 普通はそんなところに SubReport を配置することはありませんので。 (理由 : 正しい結果を期待できない) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-05-08 09:00
じゃんぬねっと様 いつもありがとうございます。
ネットが見れない環境にいましたので、お返事遅れて申し訳ありません。 普通はそういうものなんですか。。 理由としては、サブレポートの内容が逐次変更される内容であるからなのですが。 正確な動きが期待できないとはどういうことなのでしょうか。 お手数ですが、できればご教授していただければ助かります。 | ||||||||||||
|
投稿日時: 2007-05-08 09:41
その理由は、むしろ 'ページフッタに配置してはいけない理由' に当たります。 改ページのタイミングはどの環境でも同じとは限りません。 どの要素で SubReport は逐次変更されるのでしょうか? ページに紐づいて内容を変更だなんてあまり考えられないと思うのですが... 単票形式の Report であれば、SubReport の出番すらないでしょうし。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-05-08 10:08
お返事ありがとうございます。
>どの要素で SubReport は逐次変更されるのでしょうか? ページに紐づいて内容を変更ではなく、 サブレポートの内容が、ユーザにより変更された場合(DB値が変更)に 変更されます。 例えば、住所/連絡先といった内容をフッターに表記する場合を指しています。 Max行数は指定されていますので、フッターサイズを超える高さにはなりません。 Subレポートの下部にラベルを配置している為、SubレポートのサイズがMax行数 に達していない場合、Subレポートのサイズが自動調整され、 ラベルが上部に詰めて表示されることを期待していたのですが…。 ヘッダ/フッタはそもそも固定サイズであるため、Detailのように自動で サイズ調整が行われる仕様にはなっていないのでしょうか。 | ||||||||||||
|
投稿日時: 2007-05-08 10:30
じゃんぬねっとさんの疑問はともかくとして、まずは「読む側に自分の意図
が伝わる文章」を書くべきかと思います。 なぜわざわざ PageFooter に SubReport を出力するのか?は私も疑 問でしたが
これでようやく、何のために PageFooter を選択したのかという意図が見 えてきました。かと言ってそれが正しいかどうかはちょっと疑問ですが。 ただ
期待していたのですが…の続きが省略されてしまっているので、期待して いたのだけど実際はどうだったのか、自動的にサイズが調整されないとい うのは何を指しているのか、そのあたりがさっぱり見えてきません。 SubReport のサイズが Max 行数に達していなければ、SubReport のサイズは自動調整されて上部に詰められるような気もしますが、それが されずにどこか違う場所に出力される、ということでしょうか。 それとも、SubReport が Max 行数に達していない場合に PageFooter のサイズが調整されずに余白ができる、という意味であれ ば「そういうもんじゃね?」とは思います。
これを読む限りは、どうもそういった勘違いをされているように見受けられま すが、その点は大丈夫でしょうか。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||
|
投稿日時: 2007-05-08 10:44
ぽぴ王子様 お返事ありがとうございます。
ご指摘もっともです。今後気をつけて投稿致します。 例えば、MainレポートのDetailにSubレポートを配置します。 Subレポートのサイズは、1レコード分のサイズにしておきます。 上記を実行した場合、Subレポートのサイズは自動調整され、 レコード数分のサイズに調整されます。 また、Subレポートの下部に他のコントロールを配置している場合、 サイズ調整後のSubレポートの下部に表示されます。 ※調整されたSubレポートの下部。Subレポートにかぶって表示される訳ではありません。 これはActiveReportのDetail部が相対表示されているからですよね。 フッター部で同様な処理を実行しましたが、Subレポートのサイズが調整されず、 1レコード分のみ表示されてしまいました。 Subレポートのサイズをあらかじめ予測される行数に設定をしておくと、 余白部分ができてしまいますので、Detail部で行った処理をすれば 上記で記述したような動きをすると考えていたのですが。 フッタ部では仕様的に無理なのでしょうか。 | ||||||||||||
|
投稿日時: 2007-05-08 10:51
SubReport と MainReport の表示上の関連はないのですか...? SubReport の内容が "ユーザーにより" というのも意味がわかりませんが、 データソースが出力されるにつれてデータが変わった時という意味でしょうか? であれば、SubReport が勝手なタイミングで出力しても良いということにはならないと思いますけど...
Max 行数というのは Detail セクション側のお話ですか? であれば、レイアウト上は問題ないのでしょうけど、MainReport と SubReport の関連性の保証は未解決です。
ページ フッタってその名前のとおりフッタですから、上に詰められるわけではありません。 'フッタ' なのですから 「下に詰められるのであって欲しいと願う」 のが普通です。 私は 「勝手に上に詰められると困るケースの方が多い」 と断言します。 たとえば、Detail セクションのデータが極端に少ない場合、帳票の中腹にフッタが出力されます。 これでは、もはや 「ページ フッタ」 ではないでしょう。 というわけで、結局のところページフッタに配置するのは間違っています。 関連を用意してグループ フッタに出力しましょう。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |