Delphi Programming / Object Pascal
サイトのトップページへ リンクのページへ ロゴマーク
[掲載 2001年02月04日] [更新 2016年04月30日] Query 印刷コンポーネント
Query 印刷コンポーネント
テストプログラム SubTotal
動作確認等 Windows 7 U64(SP1) + Delphi XE(UP1) Pro







小計 ( グループ計 ) の印刷


小計 (グループ計) と総合計を印刷する例です.
TotalPrint プロパティを True にすると総合計を印刷します.項目ごとの小計は,項目の SumPrint を True にします.


リスト1
Query1 の SQL プロパティ
SELECT T2.CustNo,
       T4.Company,
       T3.Description, 
       T1.OrderNo, 
       T3.ListPrice, 
       T3.Cost,
       T1.Qty,
       T1.Qty*T3.Cost as Sales 
FROM   "Items.db" T1,
       "Orders.db" T2, 
       "Parts.db" T3, 
       "Customer.db" T4
WHERE  (T2.OrderNo = T1.OrderNo) AND 
       (T3.PartNo = T1.PartNo) AND 
       (T4.CustNo = T2.CustNo) AND
       (T4.CustNo <= 1351)
ORDER BY T2.CustNo, T3.Description


図1
設計時画面
図2
印刷項目の内,グループ計の項目
  • Company ごとの計を計算する設定
    この項目の Grouping を True
図3
印刷項目の内,集計計算する項目
  • Qty と Sales の計を計算して印刷
  • これらの項目の SumPrint を True

  • 図4 
  • 実行結果.最後の頁.Company ごとの計 (グループ計) と総合計の値を印刷

リスト2
テストプログラムのコード
unit SubTotal1Unit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, plPrev, plQueryPrev, DB, DBTables;

type
  TForm1 = class(TForm)
    Query1: TQuery;
    plQueryPrev1: TplQueryPrev;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//=============================================================================
//  クエリの結果を印刷
//  コードはこれだけ.後はオブジェクト・インスペクタで設定
//=============================================================================
procedure TForm1.Button1Click(Sender: TObject);
begin
  plQueryPrev1.Title := 'Queryの印刷例';
  plQueryPrev1.Preview;
end;

end.