Memakai TADOQuery untuk Master Detil

Penampilan master detil dibutuhkan untuk data-data yang disimpan dalam lebih dari satu tabel dan mereka mempunyai hubungan satu sama lain. Contoh master detil adalah "faktur dan isi faktur" atau "nomor tunggu pasien" dan "data pasien". Ada beberapa cara menampilkan data master detil. Salah satunya dengan TAdoQuery.

Langkah-langkah Pemrograman

Beri form VCL-VCL berikut: 2 TAdoQuery, 1 TDataSource, 2 TDBGrid



 
Dalam artikel ini, saya akan menjadikan AdoQuery1 sebagai master dan AdoQuery2 sebagai detil. Kita tidak dapat secara langsung menghubungkan AdoQuery2 ke AdoQuery1. Agar dapat terhubung, kita membutuhkan perantaraan DataSource1. Hubungkan DataSource1 ke AdoQuery1 dan Datasource2 pada AdoQuery2

DataSource1.DataSet :=  AdoQuery1;
DataSource2.DataSet :=  AdoQuery2;



Kemudian barulah kita dapat menghubungkan AdoQuery2 ke AdoQuery1 dengan menghubungkan AdoQuery2 ke DataSource1

AdoQuery2.DataSource := DataSource1;

Pasangkan DBGrid1 pada AdoQuery1 melalui Datasource1 dan DbGrid2 pada Datasource2

DbGrid1.DataSource := DataSource1;
DbGrid2.DataSource := DataSource2;


Sekarang kita akan memberitahu tempat database yang akan diakses oleh AdoQuery1 dan AdoQuery2 dengan mengisi property ConnectionString.

AdoQuery1.ConnectionString := 
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Dataku.mdb;Persist Security Info=False';

AdoQuery2.ConnectionString := 
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\Dataku.mdb;Persist Security Info=False';

 
Komponen-komponen database sudah siap berperang. Sekarang kita tinggal memberikan daftar field yang akan diambil dan bagaimana cara mengambilnya. Sebelum membuat query, saya akan menampilkan tabel-tabel dan hubungan antar tabelnya sebagai berikut:







FakturMaster dan FakturDetil dihubungkan dengan field NoFaktur. Sedangkan FakturDetil berhubungan dengan Barang dengan field KodeBarang.

Saya bermaksud mengambil semua data pada tabel FakturMaster sebagai Master sebagai berikut:

AdoQuery1.SQL.Add('from FakturMaster');

Sedangkan saya mengambil detil dengan hanya menambilkan nama barang, unit, harga dan perkalian antara harga dan unit dengan nama title field total

AdoQuery2.SQL.Add('select B.NamaBarang As Barang, F.Unit, F.Harga, (F.Unit * F.Harga) As Total');
AdoQuery2.SQL.Add('from FakturDetil As F Left Join Barang As B');
AdoQuery2.SQL.Add('On B.KodeBarang = F.KodeBarang');
AdoQuery2.SQL.Add('where F.NoFaktur = :NOFAKTUR');


Sekarang jalankan aplikasi. Anda akan mendapatkan penampilan mirip-mirip seperti ini:





Kode program selengkapnya:

Memakai TADOQuery untuk Master Detil Rating: 4.5 Diposkan Oleh: Good Dreamer

0 comments:

Posting Komentar

Diberdayakan oleh Blogger.