- PR -

Crystal Reports 固定行数にて出力した場合の集計フィールド

1
投稿者投稿内容
サラギ
会議室デビュー日: 2007/02/19
投稿数: 6
投稿日時: 2007-02-19 16:04
初めまして。
Visual Studio 2005(VB.NET)
Crystal Reports XI
にて帳票出力の開発を行なっております。

件名にあります通り、固定行にて出力し、金額の合計値も出力しております。
この際、複数ページにわたる印刷の場合、合計値が下図のようになってしまいます。
※固定行数5行の場合

CASE1:明細数4の場合
------------------------------------------
ページヘッダ
------------------------------------------
グループヘッダ
------------------------------------------
明細
明細
明細
明細
空行
------------------------------------------
合計値

CASE2:明細数7の場合
(1ページ目)
------------------------------------------
ページヘッダ
------------------------------------------
グループヘッダ
------------------------------------------
明細
明細
明細
明細
明細
------------------------------------------

(2ページ目)
------------------------------------------
ページヘッダ
------------------------------------------
グループヘッダ
------------------------------------------
明細
明細
合計
空行
空行
------------------------------------------

CASE2の2ページ目を以下のように出力したいと考えています。
------------------------------------------
ページヘッダ
------------------------------------------
グループヘッダ
------------------------------------------
明細
明細
空行
空行
空行
------------------------------------------
合計

現状、合計はレポートフッターに仕込んであるのですが、複数ページに渡る場合、うまくいかず、困っています。
「ページ下部へ出力」のチェックをオンにすると、複数ページでもCASE1のように出力されるのですが、明細部と合計値に空白ができてしまいます。明細部の直下に(くっつけて)出力したいので、良い方法がございましたらご教授下さい。






じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-19 16:49
引用:

サラギさんの書き込み (2007-02-19 16:04) より:

件名にあります通り、固定行にて出力し、金額の合計値も出力しております。
この際、複数ページにわたる印刷の場合、合計値が下図のようになってしまいます。


固定行を出力するための実装はどのようになっているでしょうか?
こちらの実装によって、解決が難しい状況にあるような気がします。

引用:

現状、合計はレポートフッターに仕込んであるのですが、複数ページに渡る場合、うまくいかず、困っています。


レポート フッタはその名とおり、レポートの最後でしか出力されません。

今回はグループの集計なのですから、グループ フッタで出力するのが適切でしょう。
おそらく固定行を出力するための仕組みに問題があって、それがままならないのではないかと推測しています。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
サラギ
会議室デビュー日: 2007/02/19
投稿数: 6
投稿日時: 2007-02-19 18:03
早速のご返答ありがとうございます。

>固定行を出力するための実装はどのようになっているでしょうか?
>こちらの実装によって、解決が難しい状況にあるような気がします。

上記に関しましては、以下のURLの情報を参考にして実装しております。

■Crystal Reports 9 レポート作成およびレポート コネクティビティ FAQ
http://japan.crystaldecisions.com/support/crystalreports9/faq.asp#rcon_line

-----------------------------------------------------------------------------
レポートに 1 つのグループが挿入された場合を例にして、以下の手順でお試しください。

グループ ヘッダー #1 に『セクションを下に挿入』を選択して、セクションを挿入します。
グループ ヘッダー #1b が挿入されます。
グループ ヘッダー #1b に (縦、横) 線、ボックス線を利用して表を作成します。例えば、10 行分の表を作成します。この時、1 行の高さは、詳細セクションの高さに合わせるようにします。
以下の 2 つの式フィールドを作成します。

(1) グループ ヘッダーに変数を初期化する式フィールドを挿入します。
//変数の初期化 (@init)
WhilePrintingRecords;
numberVar line_count := 10;
numberVar line := 0;

(2) 詳細セクションに行数を計算する式フィールドを挿入します。
//行数の計算(@control_line)
WhilePrintingRecords;
numberVar line_count;
numberVar line;
line := line + 1;
line := remainder(line, line_count);

上記の (1), (2) の式フィールドは、非表示とします。
グループの変更オプションから「ページごとにグループ ヘッダーを出力」をチェックします。
セクション エキスパートからグループ ヘッダー #1b の「続くセクションをアンダーレイ」をチェックします。
セクション エキスパートから詳細セクションの「出力後に改ページ」の条件式 (X-2) に以下の式を挿入します。
WhilePrintingRecords;
{@control_line} = 0
-----------------------------------------------------------------------------
また、上記だけでは、合計値のみが改行されてしまったので、グループフッターにも以下の条件式を挿入しております。
「出力後に改ページ」の条件式 (X-2)
WhilePrintingRecords;
{@control_line} = 0

>レポート フッタはその名とおり、レポートの最後でしか出力されません。

>今回はグループの集計なのですから、グループ フッタで出力するのが適切でしょう。
>おそらく固定行を出力するための仕組みに問題があって、それがままならないのではな>いかと推測しています。

すみません、記述がたりませんでした。
始めは、合計値はグループフッターに仕込んでありました。
ですが、うまくいかなかったので、現状はレポートフッターに仕込んであります。
この理由は、開発において、印刷ジョブ1個当たり、1グループとしているので(グループによって、両面印刷/片面印刷が切り替わる為)、結局はレポートの最後に合計値が出力されると判断し、こちらならうまくいくかと試したのですが、出来ていないのが実情です。

[ メッセージ編集済み 編集者: サラギ 編集日時 2007-02-19 18:11 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-19 18:50
引用:

サラギさんの書き込み (2007-02-19 18:03) より:

すみません、記述がたりませんでした。
始めは、合計値はグループフッターに仕込んでありました。
ですが、うまくいかなかったので、現状はレポートフッターに仕込んであります。
この理由は、開発において、印刷ジョブ1個当たり、1グループとしているので(グループによって、両面印刷/片面印刷が切り替わる為)、結局はレポートの最後に合計値が出力されると判断し、こちらならうまくいくかと試したのですが、出来ていないのが実情です。


それでしたら、ページ フッタに式フィールドを仕込んだ方が楽だと思います。
式フィールドの出力条件に最終レコードに達したかどうかの判定をつけておけば良いです。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
サラギ
会議室デビュー日: 2007/02/19
投稿数: 6
投稿日時: 2007-02-19 19:33
早速試してみたのですが、「ページ下部へ出力」のチェックをオンにした場合と同様、空白が出来てしまいました。

ボックス線で囲って出力しており、明細部の直下にくっつけて出力したいのです。
たびたび申し訳ありませんが、他に方法等ご存知でしょうか。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-02-19 19:40
引用:

サラギさんの書き込み (2007-02-19 19:33) より:

早速試してみたのですが、「ページ下部へ出力」のチェックをオンにした場合と同様、空白が出来てしまいました。
ボックス線で囲って出力しており、明細部の直下にくっつけて出力したいのです。
たびたび申し訳ありませんが、他に方法等ご存知でしょうか。


それは、ページ フッタ セクションの位置が希望どおりでなかっただけですから、
あとは自分で調整することで事足りる話だと思うのですが、私の認識が間違っているのでしょうか?

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
サラギ
会議室デビュー日: 2007/02/19
投稿数: 6
投稿日時: 2007-02-19 20:05
了解しました。
あとは調整して対応しようと思います。

ご教授ありがとうございました。

-----------------------------------------------------------------
追記(2007/02/20 12:52)
-----------------------------------------------------------------
思い通りのデザインにすることができました。
ありがとうございました。


[ メッセージ編集済み 編集者: サラギ 編集日時 2007-02-20 12:54 ]
1

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