Anda di halaman 1dari 26

DbGidEh : Print Langsung Data di DbGrid dengan

GridEh dan PrintDbGridEh



Delphi : Delphi 7
Database : Ms Access
Koneksi : ADO Connection
Komponen : DbGridEh + PrintDbGridEh (wajib)

*note : untuk spesifikasi perlalatan tempur tidak sama dengan diatas harap
menyesuaikan
Kali ini saya akan membahas bagaimana cara mencetak langsung data yang tampil
pada DbGrid tanpa harus menggunakan report dan tanpa harus mendesainnya
terlebih dahulu, sekali lagi ehlib sudah menyediakan komponen yang sangat bagus
untuk hali ini yaitu TPrintDbGridEh, komponen yang terletak di pallete ehlib
(install dulu kalau belum punya), berikut komponenya

Perlu dicatat, bahwa komponen ini hanya bekerja pada DbGridEh, jadi
komponen grid yang lain tidak disupport oleh komponen ini, masukan sebuah
komponen PrintDbGridEh pada form yang kita buat, kemudian atur properties
DbGridEh nya arahkan ke DbGridEh yang akan di print datanya :

Setelah itu, kurang lebih saya mempunyai desain form seperti gambar dibawah
ini, yang datanya ingin langsung saya print, setelah melakukan setting pada
komponen diatas, langkah selanjutnya kita akan memberikan koding pada tombol
print

Berikut koding yang saya buat :
1
2
3
4
5
6
procedure Tfmain.btn1Click(Sender: TObject);
begin
PrintEh.Title:=eTitle.Lines;
PrintEh.PageFooter.CenterText:=efooter.Lines;
PrintEh.Preview;
end;
Penjelasan:
PrintEh.Title:=eTitle.Lines; adalah untuk mengambil Title pada report
lewat eTitle (Komponen : Memo). tidak harus lewat memo kita isikan
langsung lewat properties Title pun bisa jika memang judulnya statis.
PrintEh.PageFooter.CenterText:=efooter.Lines; mengambil string dari
eFooter (Komponen : Memo). misa digunakan untuk kolom tanda tangan,
keterangan atau sebagainya, memiliki 3 posisi yang bisa digunakan yaitu
: CenterText, RightText, dan LeftText, silahkan dieksplorasi lebih
lanjut sama dengan atas ini bisa langsung di isikan lewat properties.
PrintEh.Preview; untuk melihat hasil dari data yang akan di print yaitu
menggunakan Preview, jika ingin mencetak langsung bisa menggunakan
perintah .Print, maka tidak akan melakukan preview akan langsung
mencetak;
Berikut contoh hasil dari koding diatas :



Catatan :
Saya belum bisa merubah ukuran kertas maupun orientasi tampilan
(Landscape/Portrait) secara langsung dari komponen ini, tetapi bisa
dilakukan lewat printer setup sebelum print tampilkan dengan preview,
kita bisa merubahnya lewat sana.
Agar lebar kolom Grid masuk sesuai di kertas (Area Print) ubah propeties
Options> FitGridToPageWidth menjadi True
Setelah mencoba bertanya di forumnya ehlib, ternyata untuk merubah page
orientation bisa, tapi emng belum support untuk merubah ukuran kertasnya, ini
jawaban dari admin nya :
Memberi Warna Pada Kolom Record Tertentu
DBGridEH Delphi

Ini teknik saya dapatkan dari KPPDI juga, lebih tepatnya dari salah satu Master
yaitu Bang Buyut Joko Rivai, karena dari beliulah saya juga kenal dan mulai suka
menggunakan komponen dari EhLib ini, salah satu komponen Grid yang simple
nan kaya fasilitas..
Teknik ini saya gunakan untuk memberi warna pada record yang sudah mendekati
jatuh tempo, atau record yang sudah jatuh tempo, jadi saya menggunakan filter
pada date, dan bisa diterapkan untuk kasus-kasus lain..
Saya mempunyai Tabel : Pesan, dengan berbagai field yang dibutuhkan, dan
didalamnya terdapat filed tgl_jatuhtempo
Sisipkan code berikut pada event OnAdvDrawDataCell pada DBGridEh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure Tfvieworder.DBGridEh1AdvDrawDataCell(Sender:
TCustomDBGridEh; Cell,
AreaCell: TGridCoord; Column: TColumnEh; const ARect: TRect;
var Params: TColCellParamsEh; var Processed: Boolean);
var
t: String;
begin
//sesuaikan dengan nama field yang ingin dibuat kondisi
t :=
Column.Field.DataSet.FieldByName('tgl_jatuhtempo').AsString;

if (qorder.RecordCount<>0) then //cegah error jika tidak ada
record
begin
if (StrToDate(t)-now<=3) then //kondisi : jika tanggal jatuh
tempo kurang dari 3 hari
begin
//font style
Params.Font.Style := [fsBold];
//warna font
Params.Font.Color := clWindow;
19
20
21
22
23
//warna cell di grid, untuk mendapat kode warna ambil
komponen sembarang klik bagian color
Params.Background := $004080FF;
end;
end;

end;
Kondisi dapat disesuaikan dengan kasus yang dihadapi, jika kode tepat saat
program di run maka akan tampakseperti dalam program yang saya buat sebagai
berikut

Maka kolom record yang jatuh temponya kurang dari 3 hari akan berwarna sesuai
yang kita tentukan
Bagi yang belum punya di paket dari EhLib silahkan download disini
Membuat Warna Belang Baris DbGridEh Delphi

Untuk membuat warna kolom pada DbGridEh agar belang atau selang seling
sangatlah mudah tanpa melakuakan koding apapun karena sudah ada properties
yang mendukung fungsi tersebut
Caranya langsung saja menuju Properties pada DbGridEh
Untuk Baris record Genap, ubah warna pada properites EvenRowColor

Sedangkan untuk baris record Ganjil, ubah warna pada properities
OddRowColor

Hasil langsung bisa terlihat saat design time

Selamat mencoba :)
Menampilkan Footer SUM di DbGridEH Delphi

Cara mudah untuk mengetahui jumlah suatu field numeric di database yang
ditampilkan pada sebuah DbGrid yaitu memanfaatkan fungsi SUM yang berada di
footer DbGridEh, untuk komponen silahkan download disini, langsung saja
sample yang saya buat menggunakan Delphi 7 + Database MySQL + Zeos..
Tetapi database apapun itu, saya rasa bisa karena ini cuman merupakan fungsi
yang berada dalam DbGridEh, Langsung saja setelah melakukan Query Open
untuk menampilkan data di Grid, seperti tampak pada gambar dibawah . . .

Saya pernah gagal menampilkan karena kurang settingan ini, thanks to
Bang Buyut Joko Rivai karena telah memberikan revisi sample yang pernah aku
buat sehingga tahu letak kesalahan. . .
Langkah pertama yang harus dilakukan (*Penting) masuk ke properties :
dbGridEh > FooterRowCount > isikan Value : 1
dbGridEh > SumList> Ubah menjadi Active


Kemudian pada GridEh
dbGridEh > Klik Kanan > Columns Editor > Add All Fields / Tampilkan Fileds
sesuai yang dibutuhkn saja


Setelah Melakukan settingan seperti tersebut diatas maka tampak Grid memiliki
row footer pada bagian bawah, tampak seperti gambar di bawah ini . . .

Langkah selanjutnya, masuk ke Object TreeView, pilih dan expand (+) pada object
DbGridEh > Columns, kemudian pilih bagian kolom filed apa yang ingin di
tampilkan atau yang ingin dijumlah, Lalu lakukan setting tampak seperti gambar
dibawah ini . . .
Pada bagian Field kasir untuk menampilkan static text Total : , sorot field kasir
kemudian masuk ke properties Footer, setelah itu rubah setting tampak seperti
gambar di bawah . . .


Sama dengan cara diatas, sorot pada filed yang ingin di tampilkan jumlahnya
(numeric filed) , masuk ke properties Footer kemudian rubah setting seperti
tampak pada gambar dibawah ini. . .


Jika mengikuti langkah dari awal dan settingan benar, maka SUM dari field yang
ingin ditampilkan akan muncul pada bagian footer dari DbgridEh . . .

Semoga Bermanfaat :)
DbGridEh : Percent ProgressBar DbGridEh

Delphi : Delphi 7
Database : Access 2003
Koneksi : Ado
Tambahan : GridEh

*note : untuk spesifikasi perlalatan tempur tidak sama dengan diatas harap
menyesuaikan
Saya akan coba share lagi kemampuan dari DbgridEh dari ehlib yang menjadi
andalanku hahaha, kali ini adalah trik menampilkan persentase dan progress
didalam grid, soal pengunaan terserah kita-kita yah, bisa buat presentase
pendapatan suara, presentase jumlah hutang/piutang, luas wilayah , populasi
penduduk dan perbandingan lain-lainya, sebenarnya ada demonya nih tapi ga
papa, buat mempermudah belajar aja bagi yang males oprek, bagi yang masih
bingung mau bikin apa sih ni?? lihat gambar paling bawah dulu aja (soale saya
juga bingung mo kasih judul apaan) :D
Oke saya mulai, saya sudah persiapkan sebuah database dan saya akan coba
membuat presentase dari sebuah wilayah di suatu kecamatan, saya menggunakan
ADOTable > klik kanan > add all field (lihat gambar) , ini ga terbatas komponen
adotabel loh ya, yang penting bisa nampilin data ke Grid aja soalnya nanti yg di
koding gridnya jadi yang wajib pakek ya gridEh nya

Setelah menambahkan semua field ke dataset langkah selanjutnya adalah,
tambahkan semua kolom di GridEhnya, yaitu dengan cara klik kanan grid
> Columns Editor > add all field (lihat pada gambar), beri caption pada titlenya
suka-suka kita, maka semua kolom sudah ditambahkan ke Grid

Langkah berikutnya kita tambahkan kolom jadi-jadian di grid, kita lakukan seperti
langkah diatas, klik kanan grid > columns editor>add new , kemudian kita
tambahkan caption pada titlenya lewat object properties (lihat gambar dibawah)

Jika langkah diatas di ikuti dengan benar maka kita akan tampak memiliki grid
seperti tampak pada gambar dibawah ini, semua field dari dataset muncul, dan
kolo jadi-jadian yang kita bikin terakhir akan kosong

setelah itu pahami konsep presentase yaitu : nilai/total_nilai * 100, kita harus
dapatkan nilai total dari tabel diatas, untuk memudahnya saya menggunakan
footer SUM nya dbgrideh silahkan buka link ini bagi yang mau mempelajari.
Kalau yang mau bikin prosedur atau fungsi sendiri buat hitung totalnya silahkan
sah-sah dan bisa saja :D, jika menggunakan footer SUM maka kondisi terakhir
form yang kita buat akan namapak seperti gambar dibawah ini

Nah setelah mendapatkan value totalnya, sekarang langkah terakhir adalah
memberi koding pada kolom bayangan yang tadi kita buat, caranya sorot (klik)
title (kalau contoh saya presentase) maka akan ada indikator aktif pada title
tersebut, kemudian ke object properties > event >OnAdvDrawDataCell
(perhatikan gambar)

Kemudian masukan coding berikut pada even tersebut :
1
2
3
4
5
6
7
8
9
10
11
procedure Tfutama.dbgrdh1Columns3AdvDrawDataCell(Sender:
TCustomDBGridEh;
Cell, AreaCell: TGridCoord; Column: TColumnEh; const ARect:
TRect;
var Params: TColCellParamsEh; var Processed: Boolean);
begin
if (tbl1.RecordCount=0) or (tbl1.Active=False)then Abort;

Sender.DefaultDrawColumnDataCell(Cell, AreaCell, Column,
ARect, Params);
DrawProgressBarEh(tbl1.FieldByName('luas').AsFloat, 0,
DBGridEh1.Columns[2].Footer.SumValue,
Sender.Canvas, ARect, clSkyBlue, cl3DDkShadow, clNone);
Processed := True;
end;
Penjelasan :
di line pertama if (tbl1.RecordCount=0) or (tbl1.Active=False)then Abort;
maksutnya adalah antisipasi error jika tidak ada data maka koding dibawahnya
tidak diajalankan.
selanjutnya, tbl1.FieldByName(luas).AsFloat, 0,
DBGridEh1.Columns[2].Footer.SumValue, tbl1 adalah name dari dataset yang
saya gunakan, kemudian (luas) adalah field yang akan di ambil presentase-nya, 0
(nol) adalah nilai minimal dari range yang kita buat,
DBGridEh1.Columns[2].Footer.SumValue adalah nilai total yang saya ambilkan
dari footer sum, bisa diganti dengan variabel hasil dari fungsi atau prosedur yang
dibuat untuk menghitung total, bisa juga langsung diketik nilainya, clSkyBlue
warna progressbar yang akan ditampilkan bisa diubah-ubah sesuai selera.
Jika langkah tersebut dilakukan dengan benar dan pengambilan nilai yang benar
maka, RUN aplikasi yang kita buat dan progressbar serta presentase akan muncul
pada grid, dan penggunanya pun tentu bermacam-macam, karena ini hanyalah
sebuah contoh

Selanjutnya kreasikan trik ini dengan aplikasi anda untuk membuat aplikasi yang
lebih informatif dan goodlooking, semoga tutorial ini bisa menjadi manfaat bagi
yang membutuhkan
Bagi yang ingin mendowonload contoh ini silahkan komentar dan tinggalkan
email, akan saya kirim linknya, terimkasih atas waktunya, salam delphier :)
Multi Delete Dengan DbGridEH

Oke kali ini saya akan membahas lagi tentang penggunaan fasilitas yang ada
didalam dbgridEh nan sakti mandraguna, sebelum saya sendiri lupa mari tulisakan
disini, kali ini saya akan menulis tentang penggunaan multi-select untuk
mendelete data yang tampil pada DbGridEh, kayak apa sih wujudnya saya sendiri
juga bingung mau kasi judul apaan, seperti biasa supaya gambar yang
menjelaskan saja, nah kurang lebih akan tampak seperti ini..

Oke kurang lebih seperti pada gambar diatas bro sis, lumayan keren kan yak??
kita bisa melakukan beberapa select di beberapa record dengan menggunakan
checkbox (jangan-jangan susah nih munculin checkbox nya) haha itu sama sekali
tanpa kesusahan mas bro dan mbak sis, karena itu sudah ada dalam fasilitas
DbGridEh, jadi bener-bener zero coding buat munculin checkboxnya, oke
langsung kita mulai pertama-tama pada dbgridEh set properties Options >
DgMultiSelect > True dan yang satunya set properties I ndicatorOptions >
gioShowRowselCheckboxesEh >True, untuk lebih jelasnya lihat pada gambar
dibawah ini

Note:
Sample dibuat dengan menggunakan Delphi 7, database Ms Access, dan
DbGridEh (EhLib 6.2) jika terjadi ketidaksaman pelaku harap menyesuaikan,
serta database bukan dalam kondisi ReadOnly jika ada pesan error seperti
tersebut harap menyesuaikan juga :D.
Setelah melakukan setting sama dengan langkah diatas maka akan didapati pada
dbGrid kita akan muncul kolom checkbox pada bagian kiri dan sudah bisa kita
main-mainkan untuk di contreng-contreng haha. maka hasil yang sudah kita
lakukan akan tampak seperti project sederhana yang sudah saya buat ini

Untuk melakukan delete pada data yang kita tandai cukup menambahkan kode
seperti ini..
1
2
3
4
5
. . .
procedure Tflatihan.beditClick(Sender: TObject);
begin
if DBgridEh1.SelectedRows.Count=0 then
begin
6
7
8
9
10
MessageDlg('Tidak ada data yang
ditandai...',mtWarning,[mbOK],0);
Exit;
end;
DBgridEh1.SelectedRows.Delete;
end;
Oke tuntas sudah trick sederhana ini, selenjutnya tinggal kemampuan anda untuk
berkreasi, bagi yang ingin mendownload contoh project ini silahkan sedoooott
disini.
Terimkasi atas waktunya untuk membaca artikel sederhana ini, kritik, saran atau
sekedar komentar akan sangat saya nantikan, semoga bermanfaat, terimkasih
Salam Delphier
Multi Title Grid Dengan DbGridEH

Langsung dokumentasi, trick fresh from the oven yang baru saja saya dapat dari
bang Buyut Joko Rivai, yang baik hati, tidak sombong, dan gemar menabung :D.
Kali ini adalah bagaimana cara membuat multi title (judul bertingkat) pada
DbGridEh, grid yang minimalis powerfull kaya fitur dan menjadi andalanku,
seperti apakah itu wujudnya, silahkan lihat sample gambar dibawah ini . . .

Nah dah tahukan? ada Title Pelajaran diatas Title nama pelajaran dibawahnya,
bagaimana membuatnya? kita tidak perlu koprol dan bilang WOW, caranya
ternyata sangat mudah (kalo sudah tau) dan simple karena tidak butuh koding,
pertama-tama yang harus dilakukan tentu saja pasang komponen EhLib :D
hukumnya Fardhu Ain agar bisa pakai trick ini . . .
Pertama-tama Klik komponen DbGridEh yang sudah terpasang pada sebuah form,
dan masuk ke Properties>UseMultiTitle, dan ubah value disana menjadi
True, maka kita sudah menuju jalan yang benar :D

Next, yang kita lakukan klik pada sebuah judul yang ingin dibuat tingkat nantinya,
lihat gambar, saya klik tepat pada judul ING yang nantinya akan ada head
Titlenya PELAJARAN

Langkah selanjutnya dengan meng-click header diatas tadi, segera menuju ke
Properties>Title>Caption.
Nah ini yang sangat penting pada caption ketikan Head dan subHead dibatasi
dengan tanda garis tegak | , bukan huruf i loh ya, perhatikan gambar, saya
menuliskan pada caption PELAJARAN | ING maka akan langsung bisa dilihat
hasilnya pada design time . .

Ulangi langkah diatas pada Header yang lain sesuai kebutuhan, maka Kita sukses
deh membuat Multi Title, nah sekarang baru saatnya koprol sambil guling-guling
:D
Untuk Contoh Sample project diatas silahkan download disini
Semoga bermanfaat kawan, dan menjadi ilmu jariyah aamiin, jangan lupa caci-
maki , keripik pedas, dan komeng nya ya..
Master-Detail Data di Grid dengan DbGridEh
(Expand Grid)

Bingung mau kasi judul apa, langsung aja lewat screen shoot yang saya maksud
adalah seperti ini . . .

Nah jadi kita bisa langsug liat detail tabel yang tentusaja terelasi dalam database,
jadi syarat mutlaknya adalah databasenya sudah benar pada contoh ini saya
menggunkan contoh sederhana master transaksi dan detail transaksi, cara
membuatnya sangat simpel, kita akan membutuhkan 2 GridEh dalam praktik ini,
saya akan sebut Grid1 dan Grid2.
Pertama-tama lakukan Query untuk menampilkan Master pada Grid1, sehingga
Master data tampil pada Grid1 Seperti gambar dibawah . . .

Setelah itu, lakukan setting Properties>RowDetailPanel>Active>True , pada
Grid1 tersebut, maka Grid akan tampak memiliki ruangan baru di bawah
recordnya seperti tampak pada gambar dibawah ini . . .

Langkah selanjutnya ambil komponen Grid2 dam masukan kedalam Kotak
Expand dari Grid1 yang pertama tadi, jagan kawatir posisinya, agar Terlihat rapi
dan menempel pada ruang Expand, set Properties>Align>alClient pada Grid2.
maka akan terlihat seperti gambar . . .

Setelah selesai Lakukan Query untuk menampilkan data Detail dan arahkan
Source ke Grid2, Jika sudah maka langkah reakhir adalah menyisipkan kode
berikut pada di dalam Event DbGridEh1 (Grid11) OnCellClick.
1
2
TbJualDetail.Active:=False;
TbJualDetail.CommandText:='select * From jualdetail where
3
faktur='+QuotedStr(tbJual['faktur']);
TbJualDetail.Active:=True;
Contoh menggunakan Delphi 7 + ADOConnection + ADODataSet + Access
Untuk Contoh project diatas silahkan Download Disini
Silahkan menyesuaikan dengan komponen lain, caranya sama saja, semoga
bermanfaat kawan, salam Delphier . . .

Anda mungkin juga menyukai