2013-12-08 22_23_06-bu

Print Friendly

2013-12-08 22_23_06-bu

Selain mumpuni untuk menampilkan data dalam bentuk treeview di Delphi, DBGridEh juga mendukung filter data seperti gambar di atas.

Yang perlu diperhatikan dalam membuat filter data dbgrid seperti di atas adalah – sesuai dokumentasi EhLibrary – TDBGridEh harus dihubungkan dengan TMemTableEh sebagai sumber data. Kenapa bukan ke dataset langsung seperti ZQuery, ADOTable atau ADOQuery saja? Karena dengan TMemTableEh data dapat dicache ke memori sehingga akses data dan filtering dapat dilakukan dengan cepat dibandingkan filtering yang diterapkan ke dataset yang terhubung langsung ke database.

Membuat Akses Data Dari Database

Silahkan buat sebuah projek baru di Delphi.

Ingat, pastian Anda sudah menginstall EhLibrary di Delphi Anda. Sedangkan untuk akses database, saya menggunakan MyDac dan MySQL, tapi tentu Anda dapat menggunakan koneksi apapun yang Anda suka. Boleh Zeos, ADO, atau Interbase Express.

Lanjut, tambahkan sebuah komponen koneksi data dan sebuah komponen query ke form. Saya menggunakan TMyConnection dan TMyQuery. Silahkan sesuaikan. Lalu tambahkan pula sebuah TButton untuk me-refresh data, beri caption Refresh. Plus juga sebuah TDBgridEh ditambahkan ke form tapi jangan di-set dulu property Datasource-nya.

Atur property Connection dari komponen query ke komponen koneksi (saya menghubungkan MyQuery1.Connection ke MyConnection1), lalu atur property komponen koneksi agar terhubung ke database.

Sebagai perbandingan, lihat gambar hasil desain saya:

2013-12-08 22_56_50-

Setelah koneksi database berhasil, atur property komponen query, isikan property SQL untuk mengakses data kemudian set roperty Active ke True untuk memastikan bahwa data telah di-load dengan benar.

Sudah? Lanjut. Tambahkan sebuah komponen TMemTableEh dan sebuah TDataSource. Hubungkan Datasource ke MemTableEh tadi. Hubungkan juga DBGridEh dengan DataSource

Sekarang kita akan mengaktifkan MemTableEh sebagai dataset cache (penyimpanan data sementara) sekaligus penghubung antara komponen query (MyQuery) dan DBGridEh. Klik kanan pada komponen MemTableEh, klik Assign Local Data…

2013-12-08 23_03_16-Project2 - CodeGear Delphi for Microsoft Windows - Unit1

… dan pilih MyQuery1 (sesuaikan dengan komponen query/table yang Anda gunakan).

2013-12-08 23_04_33-Form1.MemTableEh1 Data

Sekarang data akan di-load dari query dan ditampung di MemTableEh, sehingga tampil di DBgridEh:

2013-12-08 23_06_25-

Anda dapat membuang kolom-kolom yang diperlukan dari DBGridEh dengan klik kanan pada DBGridEh dan klik Columns Editor…

Mengaktifkan Filter Data Di DbGridEh

Klik DBGridEh dan lihat property STFilter. Atur property Visible ke True, property Local ke True dan property InstantApply ke True.

Perhatikan gambar berikut:

Sharing is Sexy!
Benar! Sharing itu berusia 20 tahun, semester 4 di FK UI!
 

2013-12-08 23_10_01-Project2 - CodeGear Delphi for Microsoft Windows - Unit1

Dari property di atas, tampilan DBGridEh akan berubah menjadi:

2013-12-08 23_17_11-

Seperti terlihat di gambar, kolom-kolom untuk filter data sudah ada. Tapi belum berfungsi dengan baik.

Sekarang pindah ke Code Editor dengan menekan tombol F12. Di source code, bagian uses, tambahkan unit EhLibMTE seperti gambar berikut:

2013-12-08 23_19_53-Project2 - CodeGear Delphi for Microsoft Windows - Unit1

 

Mengaktifkan Button Refesh Data

Karena data berada di cache MemTableEh, me-refresh data dari database dengan MyQuery1.Refresh tidak akan me-refresh data yang tampil di DBGridEh, shingga data dalam cache-lah yang harus di-load ulang dari MyQuery1.

Klik ganda Button refresh dan isikan kode seperti berikut:

procedure TForm1.Button1Click(Sender: TObject);
begin
  MyQuery1.Refresh;
  MemTableEh1.LoadFromDataSet(MyQuery1, -1 {All records}, lmCopy {delete+insert}, false{no cahce});
end;

Sekarang Anda sudah dapat menjalankan projek dan menguji filter yang ada…

2013-12-08 23_24_22-Form1

2013-12-08 23_25_42-Form1

Demikian tutorial kali ini, semoga bermanfaat.

Selamat mencoba.

 

Comments

comments

Powered by Facebook Comments