2011年9月17日土曜日

VB6 & CrystalReport6で手動で積算合計を作る方法

VB6.0およびCrystalReport6で
「グループごとにまとめて表示」にチェックを入れ、
積算合計フィールドを使用して合計表示を行うと
集計値がおかしくなる不具合がある。

その為、積算合計フィールドを使用する場合は
「グループごとにまとめて表示」するのをあきれめる必要があるが、
どうしても、見栄え等でグループの途中で改行が入るのが嫌な場合は、
別途、手動で積算合計をする必要がある。

無論、.NETおよび最新のCrystalReport(CR)に移行すれば問題無いと思われるが、
.NETに移行するにはマンパワーが足りないので現状は棚上状態なので…。

本題に戻して、
手動で積算合計を使用する場合は、
[レポートヘッダー]に変数宣言と初期化の処理を行う。

グループ毎の小計を出力する場合は
 [グループヘッダー]に小計の初期化の処理を入れる。
 (小計が必要ない場合は省略可能)

[詳細]で小計及び総計の演算処理を行う。

[グループフッター]に小計表示の数式を配置
 (小計が必要無い場合は省略可能)

[レポートフッター]に総計表示の数式を配置

※①~⑤はすべて式フィールドで作成し各場所に配置する。
※[ページヘッダー]および[ページフッター]は使用しない。


使用例は下記の通りです。
----------------------------------------------------------------------------

①[レポートヘッダー]
 総計変数宣言 ←式の名前

 ↓式の内容はここから -----------------------------------------------------
  Shared numberVar TOTAL :=0 ; ←変数宣言および初期化
  "";              ←空白の文字列を返す
                  (レポート上に何も表示させない為)
 ↑式の内容ここまで -------------------------------------------------------

 [レポートヘッダー]上の好きな所に総計変数宣言を配置する。

②[グループヘッダー]
 小計変数宣言 ←式の名前

 ↓式の内容はここから -----------------------------------------------------
  Shared numberVar SUBTOTAL :=0 ; ←変数宣言および初期化
  "";               ←空白の文字列を返す
                    (レポート上に何も表示させない為)
 ↑式の内容ここまで ------------------------------------------------------
 
 [グループヘッダー]上の好きな所に総計変数宣言を配置する。

③[詳細]
 演算処理 ←式の名前

 ↓式の内容はここから -----------------------------------------------------
 Shared NumberVar TOTAL;      ←変数宣言のみ
 Shared NumberVar SUBTOTAL ;    ←変数宣言のみ

 WhilePrintingRecords;       ←書いていた方が良い(動作内容はヘルプで)
 TOTAL:= TOTAL+{指示書.数量};    ←総計の足し込み処理
 SUBTOTAL:= SUBTOTAL+{指示書.数量}; ←小計の足し込み処理

 "";                ←空白の文字列を返す
                    (レポート上に何も表示させない為)
 ↑式の内容ここまで -------------------------------------------------------
 ※{指示書.数量}はレポート上の数量の意味

 [詳細]上の好きな所に総計変数宣言を配置する。

④[グループフッター]
 HSUBTOTAL ←式の名前

 ↓式の内容はここから -----------------------------------------------------
 Shared NumberVar SUBTOTAL ;    ←変数宣言のみ

 SUBTOTAL;             ←小計を表示する
 ↑式の内容ここまで ------------------------------------------------------

 [グループフッター]の小計を表示させたい場所に配置する。

⑤[レポートフッター]
 HTOTAL ←式の名前

 ↓式の内容はここから -----------------------------------------------------
 Shared NumberVar TOTAL ;      ←変数宣言のみ

 TOTAL;               ←総計を表示する
 ↑式の内容ここまで ------------------------------------------------------

 [レポートフッター]の総計を表示させたい場所に配置する。
----------------------------------------------------------------------------

VB6 Crystal Report

0 件のコメント:

コメントを投稿