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







動作確認テスト


Delphi 付属の DBDEMOS の Customer.db を DBGrid に表示して,それを印刷プレビューする例です.以下の手順でプロジェクトを作成しています.
データベース関連コントロール (コンポーネント) の設定は,通常の使用における設定と特に変りありません.本コンポーネントの DBGrid プロパティの設定があるだけです.
  • 下図のようにコンポーネント類を配置
  • Query1の DatabaseName プロパティを DBDEMOS にする
  • DataSource の DataSet プロパティを Query1 とする
  • Query1 の SQL プロパティを以下のコードにする
  • DBGrid1 の DataSource プロパティを DataSource1 とする
  • DBGrid1 のカラムを設定
  • 本コンポーネントの DBGrid プロパティを DBGrid1 にする
  • 本コンポの TopMargin 等の印刷マージン等を設定する

リスト1 
Query1 の SQL プロパティ
select CustNo,Company,Zip,Addr1,Phone from customer


図1
設計時画面
  • 以下のコンポーネントを配置
    Query1 (TQueyr)
    DataSource1 (TDataSource)
    DBGrid1 (TDBGrid)
    plDBGridPrev1 (TplDBGridPrev)
    Button1 (TButton)
図2
TDBGrid のカラムの設定
図3
実行して DBGrid を表示
図4
プレビュー画面
  • 印刷マージン等を変更している

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

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, plPrev, plDBGridPrev, DB, DBTables, Grids, DBGrids, StdCtrls, Buttons;

type
  TForm1 = class(TForm)
    DataSource1: TDataSource;
    Query1: TQuery;
    BitBtn1: TBitBtn;
    DBGrid1: TDBGrid;
    plDBGridPrev1: TplDBGridPrev;
    procedure BitBtn1Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

//=============================================================================
//  フォームを表示する時の処理
//  クエリーをオープン
//
//  Query1のSQL文は以下の通り
//  select CustNo,Company,Zip,Addr1,Phone from customer
//=============================================================================
procedure TForm1.FormShow(Sender: TObject);
begin
  Query1.Open;
end;

//=============================================================================
//  フォームを閉じる時の処理
//  クエリーをクローズ
//=============================================================================
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Query1.Close;
end;
//=============================================================================
//  オブジェクト・インスペクタで設定した内容でプレビュー
//=============================================================================
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  if plDBGridPrev1.plSetPrinter.ShowSetupDialog then begin
    plDBGridPrev1.Preview;
  end;
end;

end.