Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-1
BASIS DATA dan KOMPONEN BASIS DATA Delphi mendukung banyak jenis basis data. Basis data default yang digunakan adalah Paradox
dan dBase, tetapi delphi tidak membatasi pengguna dalam pemilihan basis data bagi aplikasi
yang akan dibuatnya. Modul ini menggunakan Ms. Access sebagai basis datanya. Basis data ini
dipilih karena Anda – Anda sekalian sudah familiar dengan basis data produk Microsoft ini.
Untuk menangani tabel-tabel Paradox dan dBase, Delphi menggunakan mesin yang dinamakan
BDE (Borland Database Engine). BDE juga dapat berhubungan dengan SQL Server seperti
Oracle dan Interbase untuk mengakses data source lain melalui ODBC(Open DataBase
Connectivity). Dikarenakan ODBC bekerja dengan sangat lambat, maka Microsoft menciptakan
ADO(ActiveX Data Object). ADO adalah sekumpulan objek COM 1) yang mengakses data
melalui provider OLE DB (Object Linking Embeded Data Base), cara yang sama akan
digunakan utk. mengakses basis data (Ms. Access) Anda.
1) COM is the Component Object Model, a Windows-based distributed object architecture designed to
provide object interoperability using predefined routines called interfaces. COM applications use objects that are implemented by a different process
Berikut ini komponen-komponen Delphi berikut yang akan digunakan dalam modul ini untuk
operasi basis data menggunakan basis data Ms. Access (khususnya).
KOMPONEN DATA ACCESS Komponen Data Access adalah komponen non-visual. Merupakan komponen yang secara
langsung berhubungan dengan database (file secara fisik). Komponen data access hanya
melakukan akses dengan database, seperti membuka tabel, membaca record, mengubah
record dan sebagainya tanpa memperhatikan apa yang ditampilkan pada pengguna.
Keterangan:
No Komponen Kegunaan
1 Data Source Bertindak sebagi penghubung antara data access component
dengan komponen-komponen visual.
2 Table Bertindak sebagai DataSource yang mengakses record dari
tabel.
3 Query Bertindak sebagai DataSource yang mengakses record dari tabel
berdasarkan perintah SQL query.
4 StoredProc Bertindak sebagai DataSource yang mengakses record dari tabel
berdasarkan perintah Stored Procedure (perintah SQL Query
yang telah dibuat sebelumnya) untuk database server.
5 Database Menciptakan client/server connection dengan sebuah database
dalam session.
6 Session Menciptakan sebuah session dalam sebuah aplikasi multi-
threaded database.
7 BatchMove Digunakan jika kita ingin memindahkan record/field dari sebuah
tabel ke tabel lainnya secara cepat (seluruhnya).
8 UpdateSQL Menjalankan perinah SQL seperti INSERT, UPDATE dan DELETE.
9 NestedTable Bertindak sebagai DataSource yang mengakses record dari tabel
yang bersarang.
1 5 3 4 7 6 9 8 2
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-2
KOMPONEN DATA CONTROLS
Komponen Data Control adalah komponen visual yang juga merupakan komponen data-aware
atau disebut juga visual-controls. Komponen ini melakukan interaksi antara pengguna dengan
datasource (data source adalah salah satu komponen data data access components). Dengan
komponen ini kita dapat menyusun tampilan untuk pemakai. Misalnya menampilkan record
dan menampilkan image.
Keterangan:
No Komponen Kegunaan
1 DBGrid Komponen visual untuk grid dinamis yang digunakan untuk
menampilkan dan meng-edit data dalam bentuk tabular
menyerupai tampilan spreadsheet excel.
2 DBNavigator Komponen visual yang terdiri dari sejumlah tombol-tombol
navigasi dan tombol operasi basis data seperti: insert, delete,
edit dan post.
3 DBText Komponen visual berbentuk label, digunakan untuk
menampilkan isi dari sebuah field pada record yang sedang
aktif.
4 DBEdit Komponen visual berbentuk kotak edit, digunakan untuk
menampilkan isi dari sebuah field pada record yang sedang
aktif.
5 DBMemo Komponen visual memo, digunakan untuk menampilkan isi
dari sebuah field pada record yang sedang aktif.
6 DBImage Komponen visual berbentuk kotak gambar, digunakan untuk
menampilkan, memotong atau menempelkan citra bitmapped
BLOB (Binary Large OBject) ke dan dari record yang sedang
aktif.
7 DBListBox Komponen visual berbentuk list box, box yang dapat
digulung. Digunakan untuk menampilkan nilai-nilai sebuah
kolom dari sebuah tabel.
8 DBComboBox Komponen visual berbentuk list, box yang dapat digulung.
Digunakan untuk menampilkan nilai-nilai sebuah kolom dari
sebuah tabel, nilai dari kolom tersebut dapat di-edit.
9 DBCheckBox Komponen visual berbentuk check box, digunakan untuk
menampilkan atau mengubah sebuah data field bertipe
boolean pada record yang sedang aktif.
10 DBRadioGroup Komponen visual untuk menampilkan sejumlah pilihan
berbentuk radio button.
11 DBLookupListBox DBLookupListBox adalah sebuah komponen visual berbentuk
list box dimana item-item yang ditampilkan dapat diambil dari
sebuah dataset, secondary data source, data field atau key.
12 DBLookupCombobox DBLookupListBox adalah sebuah komponen visual berbentuk
combo box dimana item-item yang ditampilkan dapat diambil
dari sebuah dataset, secondary data source, data field atau
key.
13 DBRichEdit DBRichEdit adalah sebuah multiline edit control yang dapat
digunakan untuk menampilkan dan meng-ubah sebuah rich
10
1 3 5 7 9 11 13 15
2 4 6 8 12 14
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-3
edit memo field dalam sebuah dataset.
14 DBCtrlGrid DBCtrlGrid adalah sebuah control yang dapat menampilkan
banyak field dari banyak record dalam sebuah format tabular
grid. Tiap cell dalam sebuah grid menampilkan banyak fields
dari sebuah record.
15 DBChart Untuk menampilkan data dalam bentuk grafik.
KOMPONEN ADO
The components on the ADO page of the Component palette let you connect to database
information using ActiveX Data Objects (ADO)
Keterangan:
No Komponen Keterangan
1 ADOConnection Digunakan untuk membangun koneksi dan
menyediakan berbagai layanan dengan basis data
melalui ADO.
2 ADOCommand Menjalankan perintah SQL pada basis data ADO.
3 ADODataSet Menampilkan data dari satu atau lebih tabel dalam
sebuah basis data ADO dan mengijinkan komponen-
komponen visual untuk memanipulasi data yang ada
dengan cara menghubungkan komponen-komponen
visual tersebut dengan dengan komponen data
source.Komponen ini dapat digunakan untuk
menggantikan komponen ADOTable, ADOQuery atau
ADOStoredProc.
4 ADOTable Menyajikan data dari sebuah tabel pada sebuah
basis data melalui ADO dan mengijinkan komponen-
komponen visual untuk memanipulasi data yang ada
dengan cara menghubungkan komponen-komponen
visual tersebut dengan dengan komponen data
source.
5 ADOQuery Menggunakan perintah-perintah SQL untuk
menampilkan data dari sebuah tabel fisik pada basis
data melalui ADO dan mengijinkan komponen-
komponen visual untuk memanipulasi data yang ada
dengan cara menghubungkan komponen-komponen
visual tersebut dengan dengan komponen data
source.
6 ADOStoreProc Digunakan untuk mengakses stored Procedure
(perintah tersimpan) pada server melalui ADO.
7 RDSConnection Digunakan untuk mengelola sejumlah data ketika
sebuah Objek recordset berpindah dari satu proses
atau mesin ke proses atau mesin lainnya.
Gunakanlah TRDSConnection ketika membangun
multi-tier applications yang menggunakan bussiness
Object (Applications Servers).
1 2 3 4 5 6 7
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-4
MEMBANGUN BASIS DATA
Pertama-tama buatlah basis data Anda pada Access (Aktifkan Ms.Access), simpan dengan
nama Barang.mdb. Berikut ini struktur tabelnya:
Tabel Supplier
Field Type Size
Kode_Supplier * Text 7
Nama_Supplier Text 50
Alamat Text 100
Kota Text 30
Kode_pos Number Long Int.
Telepon Number Long Int.
Contact_Person Text 40
Tabel Stok
Field Type Size
Kode_Barang* Text 6
Desk_Barang Text 100
Kode_Supplier Text 7
Stok_tersedia Number Long Int.
Stok_minimum Number Long Int.
Harga Number [Format = “Rp. ”#] Long Int.
MENCIPTAKAN ANTARMUKA Basis data digunakan untuk menyimpan data, untuk memanipulasi data yang disimpan pada
basis data kita terlebih dahulu harus mengetahui bagaimana mengakses basis data yang telah
dibuat. Perhatikan langkah-langkah menghubungkan Basis data Ms. Access pada Delphi
menggunakan ADO. Tempatkan komponen-komponen berikut, sehingga tampilannya
menyerupai gambar di bawah ini:
DBNavigator
1
n
ADOConnection
ADOTable
DataSource
DBGrid
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-5
Klik ganda ikon ADOConnection1, setelah muncul kotak dialog (gambar 1) berikut klik pilihan
Use Connection String lalu klik tombol Build...
Pada pilihan OLE DB Provider(s); (gambar 2),
pilih
Microsoft Jet 4.0 OLE DB Provider
Lalu klik Next >>
Selanjutnya akan Tab Connection (gambar 3)
akan aktif. Pada Tab ini klik tombol builder
(Tombol dengan tiga buah titik)Di sebelah
kolom isian Select or Enter a database name.
Cari dan pilihlah basis data yang akan Anda
Gunakan (gambar 4), setelah dipilih klik
Tombol Test Connection untuk menguji apakah
Anda sudah terkoneksi dengan basis data(gambar 5).
1 2
3
4
5
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-6
Selanjutnya ubah properti dari komponen berikut:
Object/Komponen Properti/Event
ADOConnection1 LoginPrompt = false
ADOTable1 Connection = ADOConnection1
TableName = Supplier
Active = True
DataSource1 DataSet = ADOTable1
DBGrid1 DataSource = DataSource1
ReadOnly = True
DBNavigator1 DataSource = DataSource1
ShowHints = True
DBEdit1 DataSource = DataSource1
DataField = Kode_Supplier
DBEdit2 DataSource = DataSource1
DataField = Nama_Supplier
DBEdit3 DataSource = DataSource1
DataField = Alamat
DBEdit4 DataSource = DataSource1
DataField = Kota
DBEdit5 DataSource = DataSource1
DataField = Kode_Pos
DBEdit6 DataSource = DataSource1
DataField = Telepon
DBEdit7 DataSource = DataSource1
DataField = Contact_person
Untuk Label1 s/d Label8 ubah properti Caption menjadi seperti gambar di bawah ini,
Untuk Font sesuaikan dengan selera Anda.
Berikut ini nama-nama
tombol pada DBNavigator:
No Nama Tombol
1 First
2 Prior(Previous)
3 Next
4 Last
5 Insert
6 Delete
7 Edit
8 Post(Save)
9 Cancel
10 Refresh
Bagaimana memilih Tombol
DBNavigator yang akan ditampilkan?
Bagaimana memindahkan fungsi
DBNavigator ke dalam komponen
Button?
1 10 9 8 7 6 5 4 3 2
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-7
Berikut ini gambar pembantu untuk mengubah Connection dan memilih TableName.
Simpanlah semua project Anda (Save Unit dan Project). Setelah disimpan jalankan Program
Anda(F9).
MENGGUNAKAN KOMPONEN ADOTABLE
Berikut ini kita coba untuk membuat aplikasi untuk mengisi tabel Stok, pada kasus ini kita
menggunakan dua buah komponen tabel dan DataSource. Data Kode_suplier yang akan
disimpan pada tabel Stok didapat dari field kode_supplier pada tabel supplier untuk
menampilkan data Kode_supplier pada tabel Supplier kita menggunakan komponen
DblookupCombobox. Sisanya meng-akses tabel Stok. Siapkan antarmuka-nya, misalkan
seperti gambar dibawah ini:
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-8
Ubah properti dan lengkapi event dari komponen-komponen di atas.
Object/Komponen Properti/Event
Form1 Tambahkan Variabel Tambah, ubah : boolean;
ADOConnection1 Set koneksi ke basis data Anda.
LoginPrompt = False
ADOTable1 Connection = ADOConnection1
TableName = Supplier
Active = True
DataSource1 DataSet = ADOTable1
ADOTable2 Connection = ADOConnection1
TableName = Stok
Active = True
DataSource2 DataSet = ADOTable2
DBLookupCombobox1 ListSource = DataSource1
ListField = Kode_supplier
KeyField = Kode_Supplier
DBGrid1 DataSource = DataSource2
ReadOnly = True;
EVENT OnCellClick
// tampilkan data yang ada ke kolom isian edit1.Text := dbgrid1.Fields[0].AsString; edit2.Text := dbgrid1.Fields[1].AsString; DBLookupCombobox1.Text := dbgrid1.Fields[2].AsString; edit3.Text := dbgrid1.Fields[3].AsString; edit4.Text := dbgrid1.Fields[4].AsString; edit5.Text := dbgrid1.Fields[5].AsString;
Edit1 s/d Edit5 Text = ‘’(dikosongkan)
Contoh penempatan variabel lihat gambar halaman 19
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-9
Button1 Caption = &Tambah
EVENT OnClick
// kosongkan kolom isian
edit1.Text := ''; edit2.Text := ''; edit3.Text := ''; edit4.Text := ''; edit5.Text := ''; Button2.Enabled := false; // tombol Ubah dinon-aktifkan Button3.Enabled := false; // tombol Hapus dinon-aktifkan Button4.Enabled := true; // tombol Simpan diaktifkan Tambah := true; // mode tambah diaktifkan
Button2 Caption = &Ubah
EVENT OnClick
Button1.Enabled := false; // tombol Tambah dinon-aktifkan
Button2.Enabled := false; // tombol Ubah dinon-aktifkan Button3.Enabled := false; // tombol Hapus dinon-aktifkan Button4.Enabled := true; // tombol Simpan diaktifkan Ubah := true; // mode ubah diaktifkan
Button3 Caption = &Hapus
EVENT OnClick
if edit1.Text = '' then
begin Showmessage('Pilih record yang akan dihapus!'); exit; //keluar dari procedure ini end else begin
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-10
if (messagedlg('Anda yakin untuk menghapus record dengan kode barang '+ dbgrid1.Fields[0].AsString +'?',mtConfirmation,[mbYes, mbNo],0))= mrYes Then begin // jika tombol Yes ditekan maka ADOTable2.Delete; // hapus record terpilih dbgrid1cellclick(dbgrid1.Columns[0]);//panggilprocedureDBGrid1CellClick(Column:TColumn) end; end;
Button4 Caption = &Simpan
EVENT OnClick
if Tambah = true then begin ADOTable2.InsertRecord([edit1.text, edit2.text, dblookupcombobox1.text, edit3.text, edit4.text, edit5.text]); Button2.Enabled := true; // tombol Ubah diaktifkan Button3.Enabled := true; // tombol Hapus diaktifkan Button4.Enabled := false; // tombol Simpan dinon-aktifkan Tambah := false; // mode tambah di non-aktifkan end; if ubah = true then begin ADOTable2.Edit; ADOTable2.FieldByName('kode_barang').AsVariant := edit1.Text; ADOTable2.FieldByName('desk_barang').AsVariant := edit2.Text; ADOTable2.FieldByName('kode_supplier').AsVariant := dblookupcombobox1.Text; ADOTable2.FieldByName('stok_tersedia').AsVariant := edit3.Text; ADOTable2.FieldByName('stok_minimum').AsVariant := edit4.Text; ADOTable2.FieldByName('harga').AsVariant := edit5.Text; ADOTable2.Post; Button1.Enabled := true; // tombol Tambah diaktifkan Button2.Enabled := true; // tombol Ubah diaktifkan Button3.Enabled := true; // tombol Hapus diaktifkan
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-11
Button4.Enabled := false; // tombol Simpan dinon-aktifkan ubah := false; // mode tambah di non-aktifkan end;
Button5 Caption = &First
EVENT OnClick ADOTAble2.First; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)
Button6 Caption = &Prior
EVENT OnClick ADOTAble2.Prior; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)
Button7 Caption = &Next
EVENT OnClick ADOTAble2.Next; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)
Button8 Caption = &Last
EVENT OnClick ADOTAble2.Last; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)
Untuk Label1 s/d Label7 ubah Caption-nya menjadi seperti tampilan berikut ini.
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-12
Setelah properti dari komponen-komponen yang ada telah diubah maka tampilan program
Anda akan seperti gambar di atas. SAVE ALL lalu Run...
MENGENAL SQL
SQL Singkatan dari Structured Query Language dan kadang-kdang dibaca dengan ’sequel’.
SQL adalah bahasa database yang ampuh dan dapat dipakai untuk menyelesaikan masalah-
masalah yang besar. Pada saat ini SQL menjadi standar untuk bekerja dengan database
Client/Server. SQl mempunyai fungsi-fungsi berikut:
- Data Definiton. Anda dapat mendefinisikan struktur tabel, tipe data dari setiap field di
dalam tabel dan hubungan referensial dari field-field tertentu ke field-field pada tabel
lain.
- Data Retrieval. Aplikasi client memakai SQL, untuk meminta data dari server. SQL
juga mengijinkan client mendefinisikan data yang akan dibaca dan bagaimana data
tersebut di-retrieve.
- Data Integrity. Anda dapat menjaga integritas data dengan berbagai konstrain
integritas sebagai bagian dari tabel atau terpisah dari tabel.
- Data Processing. SQL mengijinkan client mengubah, menambah, menghapus data
dari server.
- Security. Anda dapat memproteksi data dengan mendefinisikan hak akses, view dan
batasan pengaksesan pada objek-objek database.
- Concurent access. SQl mengatur pengaksessan secara simultan sehingga satu
pengaksessan tidak mengganggu pengaksesan lainnya.
SQL dapat diakses dari delphi dan Delphi dapat memakai perintah SQL untuk manipulasi tabel.
Untuk bahasa SQL dari Delphi menggunakan ADO Anda memerlukan komponen ADOQuery.
Perintah-perintah SQL selengkapnya dapat dilihat pada Local SQl help (Start >> Program >>
Borland delphi 5 >> Help >> Borland Database Engine >> Local SQL Guide).
Menggunakan ADOQUERY
Hal penting dari Komponen ADOQuery adalah property SQL. Property tersebut dapat diakses
dari Object Inspector pada saat mendesain form atau dari program(dituliskan melalui coding).
Property SQL bertipe TString artinya berisi daftar string. Jika Anda menggunakan property SQl
pada saat mendesain form, Anda memasukan SQL statis. Sebaliknya SQL dinamik
mengubah pernyataan-pernyataan SQL pada saat program dijalankan berdasarkan berbagai
kondisi. Program berikut ini menggunakan konsep SQL dinamik.
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-13
Siapkan antarmuka seperti dibawah ini:
Ubah properti dan komponennya sehingga menyerupai gambar berikut ini:
Daftar properti dan event yang di ubah dapat dilihat pada halaman berikut.
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-14
Object/Komponen Properti/Event
Form1 Ketikkan procedure TampilkanSemuaDataStok; (sebelum kalimat Private)
Lalu ketik coding berikut (setelah kalimat implementation dan {$R. *DFM})
procedure TForm1.TampilkanSemuaDataStok;
begin //tampilkan semu data pada tabel Stok ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('SELECT * FROM stok'); ADOQuery1.ExecSQL; ADOQuery1.Open;
end;
Tambahkan Variabel Tambah, ubah : boolean; Kodebarang : string;
EVENT OnActive
procedure TForm1.FormActivate(Sender: TObject); var akhir : string; // tempat simpan record terakhir
begin // ambil data kode supplier dari tabel suplier ADOQuery1.Close; // tutup Query ADOQuery1.SQL.Clear; // bersihkan perintah SQl sebelumnya ADOQuery1.SQL.Add('SELECT kode_suplier FROM suplier'); ADOQuery1.ExecSQL; // jalankan perintah SQL ADOQuery1.Open; // Aktifkan Query // bersihkan kolom pilihan kode supplier Combobox1.Text := ''; Combobox1.Items.Clear; // tempatkan pointer data ke record paling akhir ADOQuery1.Last; // simpan data ke variabel akhir akhir := ADOQuery1.Fields[0].AsString;
Lihat gambar halaman 19
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-15
ADOQuery1.First; // tempatkan pointer ke record awal Combobox1.Items.Add(ADOQuery1.Fields[0].AsString); repeat ADOQuery1.Next; Combobox1.Items.Add(ADOQuery1.Fields[0].AsString); until ADOQuery1.Fields[0].AsString = akhir; //panggil procedure TampilkanSemuaDataStok TampilkanSemuaDataStok;
end;
ADOConnection1 Set koneksi ke basis data Anda (Barang.mdb).
LoginPrompt = False
ADOQuery1 Connection = ADOConnection1
DataSource1 DataSet = ADOQuery1
Combobox1 Text = ‘’ (dikosongkan)
DBGrid1 DataSource = DataSource1
ReadOnly = True;
EVENT OnCellClick
// tampilkan data yang ada ke kolom isian edit1.Text := dbgrid1.Fields[0].AsString; edit2.Text := dbgrid1.Fields[1].AsString; combobox1.Text := dbgrid1.Fields[2].AsString; edit3.Text := dbgrid1.Fields[3].AsString; edit4.Text := dbgrid1.Fields[4].AsString; edit5.Text := dbgrid1.Fields[5].AsString;
Edit1 s/d Edit5 Text = ‘’(dikosongkan)
Button1 Caption = &Tambah
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-16
EVENT OnClick
// kosongkan kolom isian Combobox1.Text := ''; edit1.Text := ''; edit2.Text := ''; edit3.Text := ''; edit4.Text := ''; edit5.Text := ''; Button2.Enabled := false; // tombol Ubah dinon-aktifkan Button3.Enabled := false; // tombol Hapus dinon-aktifkan Button4.Enabled := true; // tombol Simpan diaktifkan Tambah := true; // mode tambah diaktifkan
Button2 Caption = &Ubah
EVENT OnClick
Button1.Enabled := false; // tombol Tambah dinon-aktifkan Button2.Enabled := false; // tombol Ubah dinon-aktifkan Button3.Enabled := false; // tombol Hapus dinon-aktifkan Button4.Enabled := true; // tombol Simpan diaktifkan Ubah := true; // mode ubah diaktifkan kodebarang := edit1.Text; //simpan kode barang yang akan diubah datanya
Button3 Caption = &Hapus
EVENT OnClick
if edit1.Text = '' then begin Showmessage('Pilih record yang akan dihapus!'); exit; //keluar dari procedure ini end else begin if (messagedlg('Anda yakin untuk menghapus record dengan kode barang '+
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-17
dbgrid1.Fields[0].AsString +'?',mtConfirmation,[mbYes, mbNo],0))= mrYes Then begin // jika tombol Yes ditekan maka ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('DELETE * FROM stok WHERE kode_barang = :v1'); ADOQuery1.Parameters[0].Value := edit1.Text; ADOQuery1.ExecSQL; TampilkanSemuaDataStok; dbgrid1cellclick(dbgrid1.Columns[0]);//panggil procedureDBGrid1CellClick(Column :
TColumn) end; end;
Button4 Caption = &Simpan
EVENT OnClick
if Tambah = true then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('INSERT INTO stok (kode_barang, desk_barang, kode_supplier, stok_tersedia, stok_minimum, harga) VALUES (:v0, :v1, :v2, :v3, :v4, :v5)'); ADOQuery1.Parameters[0].Value := edit1.Text; ADOQuery1.Parameters[1].Value := edit2.Text; ADOQuery1.Parameters[2].Value := combobox1.Text; ADOQuery1.Parameters[3].Value := edit3.Text; ADOQuery1.Parameters[4].Value := edit4.Text; ADOQuery1.Parameters[5].Value := edit5.Text; ADOQuery1.ExecSQL; TampilkanSemuaDataStok; Button2.Enabled := true; // tombol Ubah diaktifkan Button3.Enabled := true; // tombol Hapus diaktifkan Button4.Enabled := false; // tombol Simpan dinon-aktifkan Tambah := false; // mode tambah di non-aktifkan
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-18
end; if ubah = true then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('UPDATE stok SET kode_barang = :v0, desk_barang = :v1, kode_supplier= :v2, stok_tersedia = :v3, stok_minimum = :v4, harga = :v5 WHERE kode_barang = :v6'); ADOQuery1.Parameters[0].Value := edit1.Text; ADOQuery1.Parameters[1].Value := edit2.Text; ADOQuery1.Parameters[2].Value := combobox1.Text; ADOQuery1.Parameters[3].Value := edit3.Text; ADOQuery1.Parameters[4].Value := edit4.Text; ADOQuery1.Parameters[5].Value := edit5.Text; ADOQuery1.Parameters[6].Value := kodebarang; ADOQuery1.ExecSQL; TampilkanSemuaDataStok; Button1.Enabled := true; // tombol Tambah diaktifkan Button2.Enabled := true; // tombol Ubah diaktifkan Button3.Enabled := true; // tombol Hapus diaktifkan Button4.Enabled := false; // tombol Simpan dinon-aktifkan ubah := false; // mode tambah di non-aktifkan end;
Button5 Caption = &First
EVENT OnClick ADOQuery1.First; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)
Button6 Caption = &Prior
EVENT OnClick ADOQuery1.Prior; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)
Button7 Caption = &Next
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-19
EVENT OnClick ADOQuery1.Next; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)
Button8 Caption = &Last
EVENT OnClick ADOQuery1.Last; dbgrid1cellclick(dbgrid1.Columns[0]); //panggil procedureDBGrid1CellClick(Column : TColumn)
Untuk Label1 s/d Label7 ubah Caption-nya menjadi seperti tampilan pada halaman 13.
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-20
Tuliskan Procedure/function yang Anda buat disini.
Tuliskan Variabel1) dan Tipe datanya yang
Anda buat disini. (setelah variable Form1 :
TForm1;)
1) Variabel yang diletakan di sini dapat diakses
oleh semua procedure yang terdapat pada
Form ini dan tidak dapat diakses oleh Form lain.
Tuliskan Procedure lengkap yang telah Anda deklarasikan disini.
Agar variabel pada form ini dapat diakses oleh form
lain, tuliskan variabel dan tipe datanya di sini. Kalimat {Public Declaration} boleh Anda hapus.
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-21
Dinamic Connections Using ADOConnection
Connection string adalah property pada ADOConnection, property ini berguna sebagai
parameter penghubung dengan basis data melalui ADO. Pada contoh-contoh sebelumnya kita
menggunakan cara koneksi statis, maksudnya koneksi ke basisdata dilakukan pada saat
merancang program. Berikut ini cara mengkoneksikan basis data secara dinamis. Dengan cara
ini Anda tidak perlu membongkar program untuk menghubungkan antarmuka dengan basis
data.
Gambar kiri merupakan rancangan antarmuka dan gambar kanan hasil dari rancangan..
Berikut ini daftar properti dan event yang diubah pada rancangan antarmuka.
Object/Komponen Property/Event
ADOConnection1 -
Memo1 Lines = klik tombol Ambil untuk menyeting lokasi
basis data Anda..
ReadOnly = true
Image1
[Page Additional]
Picture = {pilih gambar Anda..}
OpenPictureDialog
[Page Dialogs]
-
Button1 Caption = &Ambil
EVENT OnClick
Tambahkan sebuah variabel ConnString : String;
Sehingga procedure lengkap-nya akan terlihat sebagaimana berikut
procedure TForm1.Button1Click(Sender: TObject); var connString : string;
begin if opendialog1.Execute then ConnString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ opendialog1.FileName +';Persist Security Info=False'; ADOConnection1.ConnectionString := ConnString; ADOConnection1.LoginPrompt := false; // ubah property LoginPrompt menjadi false ADOConnection1.Connected := true; //aktifkan koneksi dengan basis data Showmessage(‘Koneksi Database diaktifkan’);
end;
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-22
Membuat Menu
Berikut ini cara membuat menu utama pada delphi, tempatkan komponen MainMenu [Page
Standard]. Untuk mengisikan menu, klik kanan komponen MainMenu1 pilih MenuDesigner.
Lihat gambar dibawah ini, selain dengan klik kanan, MenuDesigner dapat ditampilkan dengan
cara Klik Ganda pada komponen MainMenu.
Selanjutnya Delphi akan menampilkan dialog Menu designer, seperti yang terlihat pada
gambar dibawah ini. Untuk Membuat menu Anda Klik lokasi menu yang akan ditampilkan (klik
bagian kotak dengan garis putus-putus di sisi kanan atau bawah), setelah ditandai lokasi menu
akan berwarna biru, isi properti Caption dengan menu yang Anda inginkan.
Membuat Sub Menu
Untuk membuat sub menu, tunjuk menu yang akan dibuatkan sub menu-nya lalu klik kanan,
pilih Create Submenu. Untuk lebih jelasnya lihat gambar pada halaman selanjutnya...
Tanda separator dibuat
dengan mengisikan Caption dengan tanda minus (-)
ShortCut Dapat Anda pilih pada Properti ShortCut
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-23
perlakuan untuk menambah sub menu sama dengan menambahkan menu.
Buatlah menu berikut:
File Setting Help
Input > Data Supplier PathDB
Data Stok
--------
Exit
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-24
Menggabungkan Project
Apabila Anda bekerja secara team, dimana setiap orang memiliki tugas yang berbeda dan
pada akhirnya aplikasi yang Anda buat harus digabungkan menjadi sebuah aplikasi utama. Ada
beberapa persyaratan yang harus dipenuhi dalam pengabungan project, diantaranya:
1. Setiap nama Form pada project anak sebaiknya berbeda dengan nama Form pada
project utama.
2. Nama Form dan Unit yang digunakan pada setiap project anak harus berbeda satu
sama lainnya.
3. Apabila program aplikasi menggunakan basis data gunakan Database yang sama, baik
nama basis data, nama table-tabel dalam basis data dan struktur dari tabel-tabel yang
digunakan.
Berikut ini langkah-langkah mengabungkan Project. Klik Tombol AddFileToProject (lihat
gambar).
Selanjutnya akan muncul dialog Add to Project. Melalui dialog ini pilih file (*.Pas) yang akan
digabungkan, setelah dipilih tekan tombol Open (pada gambar di bawah ini tombol Buka).
Apabila muncul Error seperti yang terlihat pada halaman berikut, berarti Pada project utama
telah memiliki nama Form atau Unit yang sama dengan file project yang akan digabung.
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-25
Jika yang sama adalah nama Form, maka Anda tinggal mengubah nama dari salah satu Form
(yang diubah dapat nama dari form pada Project utama atau nama dari Project anak). Untuk
mengganti nama dari From adalah dengan mengubah property Name (lihat gambar), klik form
yang akan diganti namanya, setelah nama diganti lalu save.
Nama yang sama
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-26
Menghubungkan Unit/Form
Setelah semua file project anak sudah tergabung pada Project Utama selanjutnya, kita harus
menghubungkan unit/form induk dengan unit/form anak. Fungsi dari menghubungkan
unit/Form ialah untuk memudahkan dalam pemanggilan Form. Caranya pada menu utama pilih
File >> Use Unit (shortcut-nya = Alt+F11). Setelah muncul dialog UseUnit pilihlah unit yang
akan digabungkan, lalu tekan OK.
Selanjutnya Delphi akan menambahkan klausa
Uses NamaUnit; pada Code editor.
PS : Pada contoh ini MenuUtama (Unit1) akan
menggunakan/terhubung dengan Form1
(SetConn). Dengan demikian Form MenuUtama
dapat memanggil Form1 tetapi Form1 Tidak
dapat memanggil MenuUtama.
Agar Form2 dapat terhubung dengan
MenuUtama. Aktifkan Form2 lalu UseUnit
MenuUtama.
Apabila sebuah Form sebut saja Form1 terhubung dengan Form2, maka dari Form1
Programmer dapat memakai procedure yang ada di dalam Form2 dan mengubah property
Form dan Komponen yang ditempatkan pada Form2. Sekarang Gabungkan semua Form yang telah Anda buat sebelumnya (DataSupplier,
DataStok dan Setting DB).
PR: Buatlah dua buah Form, Form1 menggunakan Komponen MainMenu.
1. Form1 memanggil Form2.
2. Form1 mengubah Properti Form2
3. Form1 mengubah property yang ada pada Form2.
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-27
Mutiple Document Interface (MDI)
Hasil pada kasus sebelumnya (halaman 25), Form yang dipanggil akan menutupi form
pemanggil. Tipe aplikasi seperti ini disebut Single Document Interface (SDI), tipe lain dari
penyusunan Dokumen adalah Multiple Document Interface (MDI). Form dalam MDI dibedakan
menjadi 2 macam, yaitu : Form MDI Induk(MDIForm) dan Form MDI Anak(MDIChild).
MDIChild akan akan selalu ditempatkan berada di dalam MDIForm, MDIForm dapat memuat
banyak MDIChild. Salah satu contoh Aplikasi dari MDI adalah Adobe Photoshop.
Sekarang buka kembali project sebelumnya (project yang ada menu-nya dan semua form
yang ada telah terhubung). Ikuti langkah-langkah menyusun Aplkasi berbasis tampilan MDI:
1. Tentukanlah Form yang akan dijadikan MDIForm-nya (pilih Form dengan menu), ubah
properti FormStyle menjadi fsMDIForm (lihat gambar 1).
2. Setelah MDIForm atau Form Induk telah ditentukan selanjutnya menggubah Opsi
Project(lihat gambar 2).
3. Setelah dialog Project Options muncul, pindahkan Form yang ada kecuali Form Utama
dari kolom Auto-create forms ke kolom Available forms, caranya anda pilih (klik) form
yang akan dipilih lalu tekan tombol dengan tanda > (lihat gambar pada halaman 28).
4. Pengubahan Opsi Project sudah.., pada langkah ini tampilkan form yang ada dengan
cara meng-klik tombol view form (jika Anda lupa lihat Modul bagian 1 hal. 19) pada
toolbar. Selanjutnya ubah properti FormStyle dari form-form (INGAT !! jgn ubah
FormStyle dari Form Induk) tersebut menjadi fsMDIChild.
1 2
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-28
Perhatikan gambar Menu Utama di bawah ini.
Untuk menambahkan kode program pada menu, apabila menu designer masih tampil maka
tutuplah. Selanjutnya Anda cukup memilih menu yang akan ditambahkan programnya. Contoh
apabila saya ingin menambahkan coding untuk menu input stok barang, maka saya klik File
>> input >> stok barang...(lihat gambar)
Selanjutnya kita menuliskan programnya, untuk lebih jelas tentang MDI lihat tabel berikut:
Klik tombol ini untuk memindahkan
form dari kolom Auto-create forms ke kolom Available forms
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-29
Object/Komponen Property/Event
Form MenuUtama
-------------
Menu Input Data Supplier
(File >> input >> Data
Supplier)
EVENT Onclick
TdataSupplier.Create(Self);
Catatan : Untuk Data Supplier, Formnya saya beri nama DataSupplier. Untuk mengubah nama form
lihat hal. 25, Coding lengkapnya akan terlihat seperti ini:
procedure TMenuUtama.DataSupplier1Click(Sender: TObject);
begin TdataSupplier.Create(Self);
end;
Form MenuUtama
-------------
Menu Input Data Stok (File
>> input >> Data Stok)
EVENT Onclick
TdataSupplier.Create(Self);
Catatan : Untuk Data Stok, Formnya saya beri nama DataStok. Untuk mengubah nama Form lihat hal.
25, Coding lengkapnya akan terlihat seperti ini:
procedure TMenuUtama.DataStok1Click(Sender: TObject);
begin TdataStok.Create(Self);
end;
Form MenuUtama
-------------
Menu Setting Path DB (File
>> Setting >> PathDB)
EVENT Onclick
TdataSupplier.Create(Self);
Catatan : Untuk setting connection, Formnya saya beri nama PathDB. Untuk mengubah nama form
lihat hal. 25, Coding lengkapnya akan terlihat seperti ini:
procedure TMenuUtama.PathDB1Click(Sender: TObject);
begin TPathDB.Create(Self);
end;
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-30
Form MenuUtama
-------------
Menu Exit (File >> Exit )
EVENT Onclick
Coding lengkapnya akan terlihat seperti ini:
procedure TMenuUtama.Exit1Click(Sender: TObject);
begin Application.Terminate; //perintah ini juga dapat digunakan untuk menutup aplikasi SDI.
end;
Form DataSupplier Tambahkan Sebuah EVENT OnClose
Pada event tersebut tuliskan program berikut
Action := cafree;
Form DataStok Tambahkan Sebuah EVENT OnClose
Pada event tersebut tuliskan program berikut
Action := cafree;
Form PathDB Tambahkan Sebuah EVENT OnClose
Pada event tersebut tuliskan program berikut
Action := cafree;
PS : nilai sebuah aplikasi diantaranya dinilai dari
+ Tata letak objek seperti: tombol, tabel dan gambar.
+ Kombinasi warna yang digunakan.
+ Ketersedian fungsi singkat (Shortcut), shortcut disini dapat berbentuk kombinasi tombol keyboard atau tombol dengan simbol-simbol
khusus untuk fungsi khusus.
+ Pemilihan komponen yang digunakan untuk mengolah data.
+ Jumlah Komponen yang digunakan.
+ Algoritma pemrograman.
+ Metode tampilan yang digunakan, semisal aplikasi dengan jumlah form yang sama, untuk aplikasi berjenis MDI akan lebih kecil ukurannya
dibandingkan dengan SDI .
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-31
Membuat laporan
Untuk membuat laporan, tambahkan sebuah Form baru (klik tombol New Form pada toolbar),
lalu aktifkan page Qreport pada Component pallete.
Pada nomor-nomor yang tertera gambar page QReport di atas adalah komponen-komponen
yang paling sering digunakan. Keterangan lengkapnya lihat tabel di bawah ini:
No Komponen Keterangan
1 QuickRep Komponen ini adalah komponen dasar dari penyusunan
laporan, komponen ini dapat diumpamakan sebagai lembar
laporan.
2 QRSubDetail Digunakan untuk menampilkan detil dari data, umumnya
digunakan pada master-detail report.
3 QRBand Digunakan sebagai kolom pembagi laporan, QRBand ini
dapat diubah menjadi Title, Coloumn Header, Summary,
PageFooter, PageHeader dll.
4 QRLabel Umumnya digunakan sebagai teks keterangan, sifatnya
statis (tidak dapat berubah-ubah seperti halnya QRDBText).
5 QRDBText Untuk menampilkan data teks yang terdapat dalam basis
data (teks yang ditampilkan dapat berubah-ubah sesuai
dengan teks yang dirujuk pada basis data).
6 QRSysData Digunakan untuk menampilkan data sistem seperti: tanggal,
jam, Page number, jumlah record dsb. Pilihlah data sistem
yang akan ditampilkan pada laporan dengan cara mengubah
property Data pada komponen ini.
7 QRMemo Digunakan penampil data multiteks.
8 QRImage Digunakan untuk menampilkan citra/gambar.
9 QRDBImage Digunakan untuk menampilkan data citra yang terdapat
dalam basis data.
Pada Form baru tadi tambahkan komponen QuickRep, untuk melakukan seting terhadap
laporan semisal ukuran kertas yang akan digunakan, klik ganda pada QuickRep-nya.
Selanjutnya dialog setting reports akan muncul (lihat gambar pada hal. 32). Ubahlah seting
ukuran kertas, lebar margin kiri, margin kanan, atas dan bawah. Jenis Font yang akan
digunakan dan lain sebagainya, sesuaikan laporan dengan kebutuhan atau keinginan Anda.
Untuk menerapkan setingan Anda tekan tombol Apply, Untuk menerapkan dann sekaligus
menutup kotak dialog ini tekan OK.
Setelah ukuran kertas laporan disesuaikan, tambahkan QRBand pada QuickRep sebanyak 4
buah...
1 9 2 4 5 8 3 6 7
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-32
Ubah property dari 3 QRBand..
Object/Komponen Property/Event
QRBand1 - {secara default band yang ditambahkan ke report akan
bertipe Title (rbTitle)}
QRBand2 BandType = rbDetail
QRBand3 BandType = rbSummary
QRBand4 BandType = rbPageFooter
Frame:
- DrawTop = True
Pada QRBand1, QRBand2, QRBand3 masing-masing tempatkan sebuah QRLabel, Pada
QRBand4 tempatkan sebuah QRSysData. Ubah Property dari komponen-komponen berikut;
Object/Komponen Property/Event
QRLabel1 (simpan pada
QRBand1 [Title])
Caption = INI JUDUL LAPORAN
Font = ARIAL
- Size = 14
- Bold = True
QRLabel2 (simpan pada
QRBand2 [Detail])
Caption = ini label pada kolom detail
QRLabel3 (simpan pada
QRBand4 [Summary])
Caption = ini label pada kolom Summary / kesimpulan
QRSysData (simpan pada
QRBand4 [Page Footer])
- {Propety Data defaultny adalah qrstime, Anda dapat
ubah sesuai dengan pilihan yang disediakan}
Setelah selesai, lihatlah hasil yang dicetak oleh printer, caranya klik kanan pada QuickRep lalu
pilih menu Preview. Untuk lebih jelasnya lihatlah pada halaman 33.
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-33
Selanjutnya kita akan membuat laporan yang sesungguhnya… berpindahlah ke halaman
berikutnya.
Tekan tombol ini
untuk menutup Preview
Tekan tombol ini untuk Print
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-34
Laporan Data Supplier
Buatlah komponen-komponen laporan seperti yang terlihat pada gambar berikut:
selanjutnya ubah property dari komponen-komponen berikut:
Object/Komponen Property/Event
ADOConnection1 Set koneksi ke basis data barang.MDB
LoginPrompt = False
ADOTable1 Connection = ADOConnection1
TableName = Supplier
Active = True
QuickRep1 Dataset = ADOTable1
QRImage1 Picture = {pilih gambar yang ada sebagai pengganti logo
perusahaan}
QRBand1 Bandtype = rbTitle
QRBand2 Bandtype = rbColoumnHeader
Color = clGrey
QRBand3 Bandtype = rbDetail
QRBand4 Bandtype = rbSummary
Color = clSilver
QRBand5 Bandtype = rbPageFooter
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-35
QRLabel1 Caption = AMIK JAYA ABADI
Font = {sesuaikan dengan kebutuhan/keinginan Anda}
QRLabel2 {pada Gambar
terletak di kolom Summary}
Caption = Jumlah Record :
Color = clSilver
QRExpr1 {= QRExpression,
pada gambar tertulis (none)
di kolom Summary}
Expression = pada kolom ini klik tombol Builder (tombol
dng. 3 titik), setelah muncul dialog expression, klik
tombol function. Setelah muncul dialog Expression
Wizzard, pilih COUNT pada kolom Available Function. Klik
tombol Continue >> OK.
Color = clSilver
QRLabel3 Caption = Kode Supplier
Color = clGrey
QRLabel4 Caption = Nama Supplier
Color = clGrey
QRLabel5 Caption = Alamat
Color = clGrey
QRLabel6 Caption = Kota
Color = clGrey
QRLabel7 Caption = Kode Pos
Color = clGrey
QRLabel8 Caption = Telepon
Color = clGrey
QRLabel9 Caption = Contact Person
Color = clGrey
QRDBText1 DataSet = ADOTable1
DataField = Kode_Supplier
QRDBText2 DataSet = ADOTable1
DataField = Nama_Supplier
QRDBText3 DataSet = ADOTable1
DataField = Alamat
QRDBText4 DataSet = ADOTable1
DataField = Kota
QRDBText5 DataSet = ADOTable1
DataField = Kode_Pos
QRDBText6 DataSet = ADOTable1
DataField = Telepon
QRDBText7 DataSet = ADOTable1
DataField = Contact_Person
Dengan Asumsi bahwa table Supplier telah terisi, lihat hasilnya setelah di preview akan terlihat
seperti berikut.
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-36
Laporan Data Stok (Master-Detail Report)
Selanjutnya kita akan mencoba untuk membuat laporan berbentuk master-detail, untuk
membuat laporan ini, tambahkan komponen berikut pada rancangan laporan di atas. Sehingga
rancangan laporannya akan seperti gambar ini.
Komponen tambahan
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-37
Property dari komponen tambahan yang diubah:
Object/Komponen Property/Event
DataSource1 DataSet = ADOTable1
ADOTable2 Connection = ADOConnection1
TableName = Stok
MasterSource = DataSource1
MasterField = klik tombol builder yang terdapat pada
kolom ini, setelah muncul dialog Field Link Designer.
Pada kolom Detail Fields klik Kode_Suplier, lalu pada
kolom Master Fields klik Kode_Supplier lalu tekan tombol
Add (tombol yang ada diantara kedua kolom Detail Fields
dan Master Fields). OK.
Active = True
Dari Page Qreport Ambil
Komponen QRSubDetail
Dataset = ADOTable2
QRDBText8 DataSet = ADOTable2
DataField = Kode_Barang
QRDBText9 DataSet = ADOTable2
DataField = Desk_Barang
QRDBText10 DataSet = ADOTable2
DataField = Stok_Minimum
QRDBText11 DataSet = ADOTable2
DataField = Stok_Tersedia
QRDBText12 DataSet = ADOTable2
DataField = Harga
Ganti nama Form untuk laporan ini menjadi FLaporan lalu SAVE ALL, Preview untuk melihat
hasilnya (contoh hasil preview dapat dilihat pada halaman 38).
PS : Penulisan Coding untuk menampilkan Preview dan untuk melalukan Print Laporan tanpa
Preview.
Contoh coding untuk menampilkan preview laporan yang dijalankan pada saat tombol Button1
di klik
Procedure FMenuUtama.Button1Click(sender : TObject); Begin FLaporan.QuickRep1.Preview; End;
Sedang untuk langsung print Coding lengkapnya adalah:
Procedure FMenuUtama.Button1Click(sender : TObject); Begin FLaporan.QuickRep1.Print; End;
Pemrograman Delphi : Bagian II – Agung Wibowo - 2005
II-38
Selamat Mencoba dan Berkarya…
Top Related