- PR -

【クリスタルレポート】改ページ設定について

投稿者投稿内容
だい
常連さん
会議室デビュー日: 2004/08/03
投稿数: 22
投稿日時: 2004-12-06 17:20
開発環境
------------------------------------------
 Microsoft Visual Basic .NET
Crystal Reports for Visual Studio .NET
SQLサーバ2003
------------------------------------------

クリスタルレポート初心者なのですが、
Winアプリからプレビューなしで直接出力する帳票の仕様で、
ページヘッダーの値が変わったら改ページしたいのですが、
どのように設定したらできるのかが、わからずに困っております。
色々調べたのですが、いまいちピンときませんでした。
どなたか具体的な方法をご教授していただけませんでしょうか?
よろしくお願い致します。
だい
常連さん
会議室デビュー日: 2004/08/03
投稿数: 22
投稿日時: 2004-12-10 16:21
自己レスです。
結局VB側で改行・ブレイク共に制御しました。
一応うまく制御できてます。

レポート側で簡単に処理できる方法があれば
どなたか書き込みお願いします。(^0^)/
GTG
常連さん
会議室デビュー日: 2004/08/26
投稿数: 43
投稿日時: 2004-12-11 08:23
だい様

どのような項目をページヘッダーに挿入しているかわかりませんが、
ページヘッダーとページフッターは、他のセクションと異なり、セクションエキスパートをみると制御が限られています。そのため、今回のようなレポートの場合、ページヘッダーでなく、グループを利用すると可能です。
例えば、
(テーブル内容)
[番号]  [都道府県名] ・・・
1 山形県  ・・・
2 宮城県  ・・・
3 青森県  ・・・
4 青森県  ・・・
5 秋田県  ・・・
(レポートデザイン)[番号]でグループを挿入する。
ページヘッダー
グループヘッダー {番号} {都道府県名} ・・・
詳細
グループフッター
ページフッター

グループフッターの「出力後に改ページ」の条件式に以下の式を挿入します。
WhilePrintingRecords;
{都道府県名}<>Next({都道府県名})

この式フィールドで値が変化したことを判断して、改ページを行います。

だい
常連さん
会議室デビュー日: 2004/08/03
投稿数: 22
投稿日時: 2004-12-13 10:17
GTG様
ご返答ありがとうございます。

ページヘッダー部にはタイトル・日付・ページ数
そして改ページさせたい区分が項目として表示しております。

[取扱区分コード][取扱区分名称]
30 取扱一号
40 取扱二号

上記の区分に違ったコードが挿入されたら改ページする。といったかんじです。
初歩的で申し訳ありません。
帳票自体も初めての作成でもちろんクリレポも初めて使用しています。

早速教えていただいたグループ挿入をしてみました。

----------------------------------------------------
グループの挿入で値を挿入しているレコードを選択?
グループオプションの設定はどのように?
ページヘッダーに貼り付けておけばいいのでしょうか?
グループヘッダーは非表示にでもしておけばいいのですか?
グループの名称はどうやったらつけられますか?
-----------------------------------------------------
一応
セクションエキスパートのグループヘッダーの
出力後に改ページにチェックして式を挿入してみたのですが
違う値が入ってもそのまま表示して改ページしてくれませんでした。

初歩的すぎる質問で申し訳ありませんが
できればでいいのでご教授宜しくお願いいたします。
GTG
常連さん
会議室デビュー日: 2004/08/26
投稿数: 43
投稿日時: 2004-12-14 06:07
だい様

前回の説明が不足していましたが、ページヘッダーは利用しません。
グループヘッダーをページヘッダーの代わりに利用します。

[取扱区分コード]や[取扱区分名称]でグループ化できる場合、このグループ毎に改ページさせるのであれば、以下の手順でできると思います。
1. グループを[取扱区分コード]か[取扱区分名称]の項目を利用して挿入します。
2. セクションエキスパートからグループフッターの出力後に改ページのオプションをチェックします。これで、グループ毎に改ページが行なわれます。
同一グループで複数ページに跨る場合、グループヘッダーがそのグループの2ページ以降に表示されません。改ページしてもグループヘッダーを表示させるためには、グループの挿入オプションからページ毎鬼グループヘッダーを出力のオプションをチェックします。
これで、同一グループが複数ページに跨ってもそれぞれのページにグループヘッダーの内容が表示されます。

Crystal Reports を利用する上で一番の落とし穴は、デザインタブにあるセクション名です。
このセクションを意識過ぎると期待する表示結果になりません。
まず、出力したいイメージからどのセクションをうまく利用すると実現できるか考えることがよいかと思います。例えば、1ページ単位で完結するレポートならページヘッダー、フッターに挿入することで問題ないかと思います。しかし、各ページが同一形式で出力されないようなレポートでは、ページヘッダー、フッターでは事が足りないことがあります。そのため、グループをうまく利用することで実現できると思います。
だい
常連さん
会議室デビュー日: 2004/08/03
投稿数: 22
投稿日時: 2004-12-14 13:41
GTG様

ご返答ありがとうございます。
ページヘッダーからグループへ変更して実現することができました。
何度も答えて頂いてありがとうございます。m(_ _)m

最後に質問させていただきたいのですが、今回改ページ項目が一つですが、
複数項目がある場合はどのようにグループを組めばよろしいのでしょうか?

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

[取扱区分][取扱区分名称]--***帳票タイトル*****--[日付][2004/12/14][ページ][1/1]
[入庫区分][入庫区分名称]
[品名区分][品名区分名称]

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


上記のようなヘッダーで、左側の区分三つのうちどれかが
変更された場合改ページするといった場合のグループ挿入
の方法をできればご教授お願いいたします。
何度も申し訳ありません。

GTG
常連さん
会議室デビュー日: 2004/08/26
投稿数: 43
投稿日時: 2004-12-14 14:19
だい様

どれか1つの項目をグループとし、そのグループヘッダーに3行挿入し、グループフッターの「出力後に改ページ」オプションをチェックしているわけですよね。この場合、このオプションのチェックを外します。そして、このオプションの条件式に以下の式を挿入します。
WhilePrintingRecords;
{取扱区分} <> Next({取扱区分}) OR
{入庫区分} <> Next({入庫区分}) OR
{品名区分} <> Next({品名区分})
これで、どれか一つの項目が変化すると改ページが行われると思います。
「ページ毎にグループヘッダーを出力」オプションがチェックされていれば、改ページされてもこの3行は毎ページ表示されるはずです。

または、それぞれの項目でグループ化しても問題ないと思いますが・・

グループヘッダー#1{取扱区分}
グループヘッダー#2{入庫区分}
グループヘッダー#3{品名区分}

それぞれのグループフッターの「出力後の改ページ」オプションにチェックします。
但し、この場合、改ページが発生するとグループ別にグループヘッダーが表示されてしまうため、3行まとめてページ毎のグループヘッダーに表示できないと思います。
試していないから詳細は不明ですが・・
だい
常連さん
会議室デビュー日: 2004/08/03
投稿数: 22
投稿日時: 2004-12-14 16:50
GTG様

度々のご返答ありがとうございます。

早速「出力後に改ページ」オプションのチェックをはずして
式を挿入してみたのですが、取扱区分の値でしか
改ページできませんでした。

それぞれのグループ化も三行まとめての表示がうまく
いきませんでした。

グループをうまく使用して実現できるようやってみます。

本当にありがとうございました。
また何か情報があれば書き込み宜しくお願いします。


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