- PR -

サブレポートの表示/非表示について

1
投稿者投稿内容
けい
常連さん
会議室デビュー日: 2004/12/03
投稿数: 47
お住まい・勤務地: 神奈川県
投稿日時: 2004-12-03 09:42
現在VB.netでCrystal Reportを使用して帳票出力するプログラムを作成中です。
データによってサブレポートを表示/非表示にする方法が見つからなくて困っています。

複数のフォーマットを持つ帳票を出力したいため

・メインのレポート(Main)の「詳細セクションa,b,c」に複数のサブレポート(A,B,C)を貼り付ける。
・メインレポート(Main)にA,B,Cの情報を持つデータセットを設定し、帳票を出力。

ここまでで、A,B,Cのデータが存在する場合はうまく動作しますが、実現したいのはA,B,Cのいずれかのデータ件数が0件の場合、そのサブレポートを表示させないようにしたいのですが、うまくいきません。
セクションエキスパートの詳細、「非表示-ドリルダウン不可」に
----------------------------
WhilePrintingRecords;
//Aが0件なら非表示
If (COUNT({A.DATA}) = 0)
then
True
Else
False
----------------------------
としましたが、データが入っていない空のサブレポートが表示されるだけです。
サブレポート自体を完全に非表示にすることは不可能なのでしょうか?
メインのレポートを複数つくるしかないのかな?と検討中です。
もし分かる方がいらっしゃればご教授願います。
GTG
常連さん
会議室デビュー日: 2004/08/26
投稿数: 43
投稿日時: 2004-12-03 13:35
けい様

詳細を3分割してそれぞれサブレポートを挿入していると思いますが・・
詳細bの「非表示-ドリルダウン不可」に同じ式をそのまま代入してみてください。その結果、詳細bが非表示となると思います。
この場合、非表示にしたい箇所よりも前にサブレポートのデータ有無を知る必要があります。例えば、データ有無をチェックするためのサブレポートをレポートヘッダーに挿入しておきます。このサブレポートの表示が不要ですが、非表示にするとデータの計算が行われないため、なるべく小さくし表示したときに内容が見れないようにします。
サブレポートの中で共有変数を利用して、データ有無を保存しておきます。
非表示したい詳細xの「非表示-ドリルダウン不可」の式の中で共有変数の内容をチェックします。
けい
常連さん
会議室デビュー日: 2004/12/03
投稿数: 47
お住まい・勤務地: 神奈川県
投稿日時: 2004-12-03 18:25
GTG様
ありがとうございます。
早速試してみます。
1

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