2008.03.04

CrystalReportで空行を表示する

先日初めてCrystalReportを使ったのですが、これがなかなか難しい。

空行がある帳票を作成しようとしたのだが、
空行を表示する方法がわからず悪戦苦闘してしまった。

調べてみるといろいろな方法があり、どれが最適なのかわからない状態。

思いついたのが、下記の4つ。
(1)VBのコードで空行を追加する。
(2)CrystalReportの詳細を必要行数分作成して、
セクションエキスパートの非表示で制御する。
(3)CrystalReportのページヘッダーで必要行数分の罫線を作成して、
セクションエキスパートの「続くセクションをアンダーレイ」にチェックを入れる。
詳細は1行分のみ入れて、あとは微調整する。
(4)データを取ってくるときに空行分取ってくる。

考えれば考えるほど、どうにでも出来るという感じ。

今回はグループ単位の明細行数が決まっていたので、
(2)で作成しました。

まず、詳細を必要行数分用意します。今回は2つ用意します。

1つ目の詳細は、詳細に表示したいフィールドを追加する。
2つ目の詳細は、フィールドを追加せず、非表示の条件に下記を追加。

WhilePrintingRecords;
//明細数が2件以上なら表示しない
count(カウントする項目, グループ化する項目) >= 2

そうすると明細が1件のときは2つ目の詳細が表示されるので、空行が表示されます。
明細が2件のときは、2つ目の詳細は表示されません。

必要行数が増えても、その分詳細を追加して対応することが出来る。
ただ、その必要行数が30件とかになるとかなりめんどくさい。
実は(3)の方が楽なのではとこれを書いていて思いました。

まだ、試していないが近々試してみます!

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

photo
jnakamura