Wednesday, May 18, 2011

Database Penjualan dengan Delphi 7


Database Penjualan dengan Delphi 7



Dalam membuat Database Delphi hal pertama yang harus kita lakukan dan akjan dibahas pada bagian 1 ini adalah mendesain Form Utama SISTEM INFORMASI PENJUALAN dan cara MENGKONEKSIKAN DATABASE DENGAN DELPHI 7.

Sebelumnya siapkan sebuah Folder yang di dalamnya berisi folder IMG yang berisi gambar – gambar untuk aplikasi kita nantinya dan file Database PENJUALAN.





Langsung saja, kita buka langsung Boorland Delphi 7 dengan cara Klik Start-All Programs-Borland Delphi 7-Delphi 7.

Jika sudah tampilan awal Boorland Delphi adalah sebagai berikut.



Silahkan anda pelajari tentang tampilan yang ada pada Delphi 7 dan komponen – komponennya, karena kita tidak akan membahas secara detail lagi masalah ini.

Pada tampilan di atas, jelas bahwa sudah ada Form1 yang disediakan oleh kompiler tempat kita mendesain Form.

Sekarang saatnya kita mendesain Form Utama……. Ayo semangat!!!!!!!!!!

Ikuti langkah2 dibawah ini.

1.       Pada Object Inspector Delphi, aturlah Properties Form1 menjadi



2.       Pada Tab Win32 ambillah 2 Komponen CoolBar dan tempatkan di Form dan aturlah Propertienya masing – masing menjadi demikian





3.       Masih pada Tab Win32 ambillah 1 buah Toolbar dan tempatkan di Coolbar yang berada di atas, dan 1 lagi Toolbar dan tempatkan di Coolbar yang berada di bawah. Tambahkan pula 1 buah ImageList dan tambahkan Gambar yang ada di Folder aplikasi kita( lihat gambar).



4.       Aturlah Properties pada Toolbar yang ada di Coolbar di bagian atas dan yang dibawah, masing – masing



5.       Pada Tab Standard tambahkan 4 buah Komponen PopupMenu.

6.       Klik 2 kali PopupMenu dan isilah submenu dengan merubah Captionnya menjadi demikian









Untuk tanda Garis, anda cukup mengganti captionnya dengan tanda kurang(-).



7.       Jika sudah, kita kembali ke Toolbar yang ada di atas dan yang di bawah

Yang di atas

Klik Kanan pada Toolbar yang ada di atas dan pilih New Button. Secara otomatis akan muncul sebuah Tombol pada Toolbar. Gantilah propertiesnya menjadi



Klik Kanan lagi pada Toolbar dan Pilih New Separator, selanjutnya New Button 3 Kali, New Separator 1 kali, dan New Button 1 kali

Untuk separator jangan rubah 1 pun propertiesnya.

Khusus yang button selanjutnya selain yang ada pada bagian a, masing – masing atur propertiesnya menjadi demikian.













Toolbar yang ada di bawah

Pada toolbar yang ada di bawah buatlah 7 buah Button dengan cara yang sama seperti di atas. Yang masing – masing captionnya adalah :

(kosong)

Hari / Tanggal : (ganti Properties Enabled menjadi False)

(kosong) (ganti properties Name menjadi DataHari)

Jam : (ganti properties Enabled menjadi false)

(kosong) (ganti properties Name menjadi DataJam)

Operator : (Ganti Properties Enablenya menjadi False)

Tidak Ada Pemakai (Ganti properties Name menjadi dataUser)



8.       Pada tab Standard tambahkan 1 buah komponen Panel dang anti properties Align menjadi alLeft, kosongkan Captionnya, dang anti warnanya sesuai keinginan anda.

9.       Pada Tab Additional tambahkan 1 buah komponen Bevel dang anti align menjadi alClient. Untuk penempatan Bevel ini, tempatkan dia di bagian yang kosong pada Form.

10.   Masih pada tab Additional tambahkan 1 buat Image dang anti properties  Stretch menjadi True, Align menjadi alClient, dan Picture sesuai keinginan anda.

11.   Pada Tab Win32, tambahkan Komponen DateTimePicker dang anti properties Format menjadi dddd dd MMMM yyyy dan Visible menjadi false

12.   Pada Tab System tambahkan komponen Timer 1 buah. Pada Tab ADO tambahkan 2 buah ADOConnection, 1 buah ADOCommand, 2 buah ADOQuery, dan 1 buah ADOTable.

13.   Aturlah Properties Connection ADOQuery1, ADOCommand1, dan ADOTable1 menjadi ADOConnection1.

14.   Kemudian aturlah Properties Connection Connection ADOQuery2 menjadi ADOConnection2.





KONEKSI DATABASE ACCESS DENGAN DELPHI 7



Untuk mengkoneksikan Database ACCESS dengan Dephi 7 cukup mudah.

Di Form kita telah menempatkan 2 buat ADOConnection, 1 buah ADOCommand, 2 buah ADOQuery, dan 1 buah ADOTable.

ADOConnection ini akan kita gunakan untuk mengkoneksikan Delphi dengan Database Access nantinya. Cara mengkoneksinya ikuti langkah berikut.

a.       Masuk ke bagian Codes Delphi dengan cara menekan tombol F12.

b.      Pada bagian Public buatlah sebuah procedure dengan nama Koneksi. Caranya adalah dengan mengetikkan

Procedure Koneksi;

c.       Kemudian pada bagian ($R *.dfm} ketikkan listening berikut.



procedure TfUtama.Koneksi;

begin

try futama.ADOConnection1.Close;except end;

futama.ADOConnection1.Provider := 'Microsoft.Jet.OLEDB.4.0';

futama.ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ pchar(ExtractFilePath(Application.ExeName) + ExtractFileName ('penjualan.mdb')) +';Persist Security Info=False';

futama.ADOConnection1.LoginPrompt := false;

futama.ADOConnection1.Open;

end;



d.      Sekarang kita tinggal memanggil Procedure Koneksi pada saat Form Pertama Kali muncul



Begitulah cara mendesain Form Utama.

Untuk Mengetikkan Kode pada Form anda tinggal mengklik Object yang akan di berikan Kode dan pada Object Inspector pada tab Events cari Event yang akan di berikan Kode.

Di bawah ini Source lengkap Form Utama SISTEM INFORMASI PENJUALAN.





unit UnUtama;



interface



uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, ComCtrls, ImgList, ExtCtrls, ToolWin, jpeg, ADODB, DB, Menus,

  sSkinManager, sSkinProvider;



type

  TfUtama = class(TForm)

    CoolBar1: TCoolBar;

    areaForm: TBevel;

    ToolBar1: TToolBar;

    ImageList1: TImageList;

    btSistem: TToolButton;

    ToolButton2: TToolButton;

    btSetting: TToolButton;

    btMaster: TToolButton;

    btCetak: TToolButton;

    ToolButton6: TToolButton;

    btKeluar: TToolButton;

    Panel1: TPanel;

    CoolBar2: TCoolBar;

    ToolBar2: TToolBar;

    ToolButton8: TToolButton;

    ToolButton9: TToolButton;

    dataHari: TToolButton;

    ToolButton10: TToolButton;

    dataJam: TToolButton;

    ToolButton11: TToolButton;

    dataUser: TToolButton;

    Image1: TImage;

    Timer1: TTimer;

    ADOConnection2: TADOConnection;

    ADOQuery1: TADOQuery;

    ADOQuery2: TADOQuery;

    ADOCommand1: TADOCommand;

    ADOTable1: TADOTable;

    DateTimePicker1: TDateTimePicker;

    PopupMenu1: TPopupMenu;

    PopupMenu2: TPopupMenu;

    PopupMenu3: TPopupMenu;

    PopupMenu4: TPopupMenu;

    mnLogin: TMenuItem;

    mnLogOut: TMenuItem;

    N1: TMenuItem;

    mnKeluar: TMenuItem;

    mnNamaPerusahaan: TMenuItem;

    N2: TMenuItem;

    mnDaftarUser: TMenuItem;

    N3: TMenuItem;

    mnGantiPass: TMenuItem;

    N4: TMenuItem;

    mnPenentuGolonganBarang: TMenuItem;

    N5: TMenuItem;

    mnPenentuHargaJual: TMenuItem;

    N6: TMenuItem;

    mnBackup: TMenuItem;

    mnDataSupplier: TMenuItem;

    N7: TMenuItem;

    mnDataBarang: TMenuItem;

    N8: TMenuItem;

    mnTransaksi: TMenuItem;

    mnEntryBarang: TMenuItem;

    N9: TMenuItem;

    mnTambahStokBarang: TMenuItem;

    mnLaporanStockBarang: TMenuItem;

    N10: TMenuItem;

    mnRekapTransaksiPenjualan: TMenuItem;

    ADOConnection1: TADOConnection;

    sSkinManager1: TsSkinManager;

    sSkinManager2: TsSkinManager;

    sSkinManager3: TsSkinManager;

    sSkinManager4: TsSkinManager;

    procedure FormCreate(Sender: TObject);

    procedure btKeluarClick(Sender: TObject);

    procedure Timer1Timer(Sender: TObject);

    procedure mnKeluarClick(Sender: TObject);

    procedure mnLoginClick(Sender: TObject);

    procedure mnGantiPassClick(Sender: TObject);

    procedure mnLogOutClick(Sender: TObject);

    procedure mnDaftarUserClick(Sender: TObject);

    procedure mnBackupClick(Sender: TObject);

    procedure mnNamaPerusahaanClick(Sender: TObject);

    procedure mnPenentuHargaJualClick(Sender: TObject);

    procedure mnPenentuGolonganBarangClick(Sender: TObject);

    procedure mnRekapTransaksiPenjualanClick(Sender: TObject);

    procedure mnEntryBarangClick(Sender: TObject);

    procedure mnTransaksiClick(Sender: TObject);

    procedure mnLaporanStockBarangClick(Sender: TObject);

    procedure mnTambahStokBarangClick(Sender: TObject);

    procedure BrowseDataSupplier1Click(Sender: TObject);

    procedure mnDataSupplierClick(Sender: TObject);

  private

  procedure GantiHari;

  procedure MatikanX;

    { Private declarations }

  public

  procedure Koneksi;

    { Public declarations }

  end;



var

  fUtama: TfUtama;

  hari : string;

  bulan : string;



implementation



uses UnLogin, UnGantiPass, UnUser, UnBackup, UnPerusahaan, UnHargaJual,

  UnSupplier, UnGolongan, UnCetakLaporan, UnEntryBarang,

  UnJual, UnReportStock, UnTambahStok, UnListSupplier;



{$R *.dfm}



procedure TfUtama.Koneksi;

begin

try futama.ADOConnection1.Close;except end;

futama.ADOConnection1.Provider := 'Microsoft.Jet.OLEDB.4.0';

futama.ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ pchar(ExtractFilePath(Application.ExeName) + ExtractFileName ('penjualan.mdb')) +';Persist Security Info=False';

futama.ADOConnection1.LoginPrompt := false;

futama.ADOConnection1.Open;

end;



procedure TfUtama.MatikanX;

var

   hMenuHandle : HMENU;

begin

   hMenuHandle := GetSystemMenu(futama.Handle, FALSE);

   if (hMenuHandle <> 0) then DeleteMenu(hMenuHandle,SC_CLOSE, MF_BYCOMMAND);

end;



procedure TfUtama.GantiHari;

var

x, y : string;

begin

x := FormatDateTime('dddd',DateTimePicker1.Date );

y := FormatDateTime('MMMM',DateTimePicker1.Date );



if x = 'Sunday' then

hari := 'Minggu'

else if x ='Monday' then

hari := 'Senin'

else if x = 'Tuesday' then

hari := 'Selasa'

else if x = 'Wednesday' then

hari := 'Rabu'

else if x = 'Thursday' then

hari := 'Kamis'

else if x = 'Friday' then

hari := 'Jumat'

else if x = 'Saturday' then

hari := 'Sabtu';



if y = 'January' then

bulan := 'Januari'

else if y = 'February' then

bulan :=' Februari'

else if y = 'March' then

bulan :='Maret'

else if y = 'April' then

bulan :='April'

else if y = 'May' then

bulan :='Mei'

else if y = 'June' then

bulan :='Juni'

else if y = 'July' then

bulan :='Juli'

else if y = 'August' then

bulan :='Agustus'

else if y = 'September' then

bulan :='September'

else if y = 'October' then

bulan :='Oktober'

else if y = 'November' then

bulan :='November'

else if y = 'December' then

bulan :='Desember';

end;





procedure TfUtama.FormCreate(Sender: TObject);

begin

MatikanX;

GantiHari;

timer1.Enabled := True;

timer1.Interval := 100;

Koneksi;

end;



procedure TfUtama.btKeluarClick(Sender: TObject);

begin

if MessageBox(handle, 'Apakah Anda Yakin Akan Keluar Dari Aplikasi Ini??','CLOSE',MB_YESNO +MB_ICONQUESTION ) = ID_YES then

begin

close;

Application.Terminate;

end;

end;



procedure TfUtama.Timer1Timer(Sender: TObject);

begin

dataHari.Caption := hari + ', ' +FormatDateTime('dd',Now ) + ' ' + bulan +' ' + FormatDateTime('yyyy',Now);

dataJam.Caption :=TimeToStr(Now);

end;



procedure TfUtama.mnKeluarClick(Sender: TObject);

begin

btKeluarClick(self);

end;



procedure TfUtama.mnLoginClick(Sender: TObject);

var

  i: integer;

  tampil: boolean;

  fLogin: TfLogin;

begin

  tampil := False;

  for i := 0 to MDIChildCount - 1 do

    if MDIChildren[i] is TfLogin then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fLogin := TfLogin.Create(Self);

      if areaForm.Height - 4 < 507 then

        fLogin.ClientHeight := 480

      else

        fLogin.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fLogin.ClientWidth := 712

      else

        fLogin.Width := areaForm.Width - 4;

      fLogin.Show;

    end

  else

    MDIChildren[i].Show;

    mnLogin.Enabled := false;

end;



procedure TfUtama.mnGantiPassClick(Sender: TObject);

var

  i: integer;

  tampil: boolean;

  fGantiPassword: TfGantiPassword;

begin

  tampil := False;

  for i := 0 to MDIChildCount - 1 do

    if MDIChildren[i] is TfGantiPassword then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fGantiPassword := TfGantiPassword.Create(Self);

      if areaForm.Height - 4 < 507 then

        fGantiPassword.ClientHeight := 480

      else

        fGantiPassword.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fGantiPassword.ClientWidth := 712

      else

        fGantiPassword.Width := areaForm.Width - 4;

      fGantiPassword.Show;

    end

  else

    MDIChildren[i].Show;

end;



procedure TfUtama.mnLogOutClick(Sender: TObject);

var

  i: integer;

begin

  if MessageBox(Handle,'LogOut dari program ?','LogOut Sistem',MB_YESNO + MB_ICONQUESTION) = ID_YES then

    begin

      for i := 0 to MDIChildCount - 1 do

      MDIChildren[i].Close;

      mnLogin.Enabled:=true;

      mnLogOut.Enabled:=false;

      btSetting.Enabled:=false;

      btMaster.Enabled:=false;

      btCetak.Enabled:=False;

      dataUser.Caption := 'Tidak Ada Pemakai';

      end;



end;



procedure TfUtama.mnDaftarUserClick(Sender: TObject);

var

  i: integer;

  tampil: boolean;

  fUser: TfUser;

begin

  tampil := False;

  for i := 0 to MDIChildCount - 1 do

    if MDIChildren[i] is TfUser then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fUser := TfUser.Create(Self);

      if areaForm.Height - 4 < 507 then

        fUser.ClientHeight := 480

      else

        fUser.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fUser.ClientWidth := 712

      else

        fUser.Width := areaForm.Width - 4;

      fUser.Show;

    end

  else

    MDIChildren[i].Show;

end;



procedure TfUtama.mnBackupClick(Sender: TObject);

begin

fBackup.ShowModal;

end;



procedure TfUtama.mnNamaPerusahaanClick(Sender: TObject);

var

  i: integer;

  tampil: boolean;

  fPerusahaan: TfPerusahaan;

begin

  tampil := False;

  for i := 0 to MDIChildCount - 1 do

    if MDIChildren[i] is TfPerusahaan then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fPerusahaan := TfPerusahaan.Create(Self);

      if areaForm.Height - 4 < 507 then

        fPerusahaan.ClientHeight := 480

      else

        fPerusahaan.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fPerusahaan.ClientWidth := 712

      else

        fPerusahaan.Width := areaForm.Width - 4;

      fPerusahaan.Show;

    end

  else

    MDIChildren[i].Show;

end;



procedure TfUtama.mnPenentuHargaJualClick(Sender: TObject);

var

  h: integer;

  tampil: boolean;

  fHargaJual: TfHargaJual;

begin

  tampil := False;

  for h := 0 to MDIChildCount - 1 do

    if MDIChildren[h] is TfHargaJual then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fHargaJual := TfHargaJual.Create(Self);

      if areaForm.Height - 4 < 507 then

        fHargaJual.ClientHeight := 480

      else

        fHargaJual.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fHargaJual.ClientWidth := 712

      else

        fHargaJual.Width := areaForm.Width - 4;

      fHargaJual.Show;

    end

  else

    MDIChildren[h].Show;

end;



procedure TfUtama.mnPenentuGolonganBarangClick(Sender: TObject);

var

  h: integer;

  tampil: boolean;

  fGolongan: TfGolongan;

begin

  tampil := False;

  for h := 0 to MDIChildCount - 1 do

    if MDIChildren[h] is TfGolongan then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fGolongan := TfGolongan.Create(Self);

      if areaForm.Height - 4 < 507 then

        fGolongan.ClientHeight := 480

      else

        fGolongan.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fGolongan.ClientWidth := 712

      else

        fGolongan.Width := areaForm.Width - 4;

      fGolongan.Show;

    end

  else

    MDIChildren[h].Show;

end;



procedure TfUtama.mnRekapTransaksiPenjualanClick(Sender: TObject);

begin

fCEtakLaporan.ShowModal;

end;



procedure TfUtama.mnEntryBarangClick(Sender: TObject);

var

  i: integer;

  tampil: boolean;

  fEntryBarang: TfEntryBarang;

begin

  tampil := False;

  for i := 0 to MDIChildCount - 1 do

    if MDIChildren[i] is TfEntryBarang then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fEntryBarang := TfEntryBarang.Create(Self);

      if areaForm.Height - 4 < 507 then

        fEntryBarang.ClientHeight := 480

      else

        fEntryBarang.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fEntryBarang.ClientWidth := 712

      else

        fEntryBarang.Width := areaForm.Width - 4;

      fEntryBarang.Show;

    end

  else

    MDIChildren[i].Show;

end;



procedure TfUtama.mnTransaksiClick(Sender: TObject);

var

  i: integer;

  tampil: boolean;

  fJual: TfJual;

begin

  tampil := False;

  for i := 0 to MDIChildCount - 1 do

    if MDIChildren[i] is TfJual then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fJual := TfJual.Create(Self);

      if areaForm.Height - 4 < 507 then

        fJual.ClientHeight := 480

      else

        fJual.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fJual.ClientWidth := 712

      else

        fJual.Width := areaForm.Width - 4;

      fJual.Show;

    end

  else

    MDIChildren[i].Show;

end;



procedure TfUtama.mnLaporanStockBarangClick(Sender: TObject);

begin

Try fUtama.ADOQuery1.Close Except end;

fUtama.ADOQuery1.SQL.CommaText:='SELECT * FROM tStockBarang ORDER BY golongan asc';

fUtama.ADOQuery1.Open;

fReportStock.QRLabel2.Caption:='Periode  : '+FormatDateTime(' dd MMMM yyyy',Now)+'';

fReportStock.QuickRep1.Preview;

end;



procedure TfUtama.mnTambahStokBarangClick(Sender: TObject);

var

  i: integer;

  tampil: boolean;

  fTambahStok: TfTambahStock;

begin

  tampil := False;

  for i := 0 to MDIChildCount - 1 do

    if MDIChildren[i] is TfTambahStock then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fTambahStok := TfTambahStock.Create(Self);

      if areaForm.Height - 4 < 507 then

        fTambahStok.ClientHeight := 480

      else

        fTambahStok.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fTambahStok.ClientWidth := 712

      else

        fTambahStok.Width := areaForm.Width - 4;

      fTambahStok.Show;

    end

  else

    MDIChildren[i].Show;

end;



procedure TfUtama.BrowseDataSupplier1Click(Sender: TObject);

begin

FListSupplier.ShowModal;

end;



procedure TfUtama.mnDataSupplierClick(Sender: TObject);

var

  h: integer;

  tampil: boolean;

  fSupplier: TfSupplier;

begin

  tampil := False;

  for h := 0 to MDIChildCount - 1 do

    if MDIChildren[h] is TfSupplier then

      begin

        tampil := True;

        Break;

      end;

  if not tampil then

    begin

      fSupplier := TfSupplier.Create(Self);

      if areaForm.Height - 4 < 507 then

        fSupplier.ClientHeight := 480

      else

        fSupplier.Height := areaForm.Height - 4;

      if areaForm.Width - 4 < 720 then

        fSupplier.ClientWidth := 712

      else

        fSupplier.Width := areaForm.Width - 4;

      fSupplier.Show;

    end

  else

    MDIChildren[h].Show;

end;



end.


Posted by Rifal ARKEN at 7:05 PM
Labels: Delphi 7