Kamis, 24 Desember 2009

database excel

unit Unit1;

interface

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

type
TForm1 = class(TForm)
Label1: TLabel;
DBGrid1: TDBGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
DataSource1: TDataSource;
Table1: TTable;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Xls : variant;

implementation
uses comObj;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
Xls := CreateOleObject('Excel.Application');
Xls.Visible:=true;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if not VarIsEmpty(Xls) then
Xls.quit;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
close;
end;

procedure TForm1.Button2Click(Sender: TObject);
var Sheet : Variant;
Baris : integer;
begin
Xls.caption := 'Report Barang';

Xls.workbooks.add;
Xls.workbooks[1].sheets.add;
Xls.workbooks[1].worksheets[1].name := 'Report 01';
Sheet := Xls.workbooks[1].worksheets['Report 01'];

// menulis judul laporan
Xls.workbooks[1].worksheets['Report 01'].rows[1].Font.size := 12;
Xls.workbooks[1].worksheets['Report 01'].rows[1].Font.Color := clBlue;
Xls.workbooks[1].worksheets['Report 01'].rows[1].Font.Bold := true;

// menulis judul tabel barang
Xls.workbooks[1].worksheets['Report 01'].rows[3].Font.Bold := true;

sheet.cells[3, 1] := 'Kode';
sheet.cells[3, 2] := 'Nama Barang';
sheet.cells[3, 3] := 'Harga';
sheet.cells[3, 4] := 'Jumlah';
sheet.cells[3, 5] := 'Diskon';
sheet.cells[3, 6] := 'Pemasok';

// cetak isi tabel
Baris := 3;
Table1.First;
while not Table1.EOF do
begin
inc(Baris);
sheet.cells[Baris, 1] := Table1.FieldByName('Kode').AsString;
sheet.cells[Baris, 2] := Table1.FieldByName('Nama Barang').AsString;
sheet.cells[Baris, 3] := Table1.FieldByName('Harga').AsFloat;
sheet.cells[Baris, 4] := Table1.FieldByName('Jumlah').AsInteger;
sheet.cells[Baris, 5] := Table1.FieldByName('Diskon').AsInteger;
sheet.cells[Baris, 6] := Table1.FieldByName('Pemasok').AsString;

Table1.Next;
end;

// mengatur lebar kolom
Xls.worksheet[1].worksheet['Report 01'].columns[1].columnswidth := 8;
Xls.worksheet[1].worksheet['Report 01'].columns[2].columnswidth := 30;
Xls.worksheet[1].worksheet['Report 01'].columns[3].columnswidth := 10;
Xls.worksheet[1].worksheet['Report 01'].columns[4].columnswidth := 7;
Xls.worksheet[1].worksheet['Report 01'].columns[5].columnswidth := 6;
Xls.worksheet[1].worksheet['Report 01'].columns[6].columnswidth := 8;

// membuat rangkuman (summary)
Inc(baris,2);
Sheet.cella[Baris,2] := 'Jumlah record dalam tabel adalah' + IntToStr(Table1.RecNo);

end;

end.

0 komentar:

Posting Komentar