Mencetak Laporan dan Hubungan Antar Tabel
Mencetak Laporan dan Hubungan Antar Tabel
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
Saat membuat suatu aplikasi database tentunya Anda tidak hanya berhenti pada interface untuk input data dan pengolahan saja, tetapi juga harus melengkapinya dengan suatu report atau laporan. Delphi telah menyertakan komponen QuickReport yang dapat digunakan untuk membuat report sesuai dengan yang Anda inginkan.
7.1 Komponen QuickReportKomponen QuickReport terdiri dari 22 komponen yang dapat
dikelompokkan menjadi beberapa macam, yaitu komponen band (band component), komponen yang dapat dicetak (printable component), preview dan composite reports, dan filters.Beberapa komponen pada page QuickReport
QuickRepMerupakan merepresentasikan kertas yang akan digunakan untuk melakukan pencetakan. Pada komponen ini Anda dapat mengatur berbagai hal, seperti mengatur ukuran kertas, margin, orientasi (portrait atau landscape), dan sebagainya.
QRSubDetailDigunakan sebagai detail band dari tabel dengan hubungan Master Detail. Juga dapat digunakan sebagi master dari detail band lain.
QRStringsBandDigunakan untuk membuat report tanpa harus menggunakan TdataSet. Sebagai gantinya adalah dengan memakai Tstrings.
QRBandMerupakan tipe band umum yang akan “beraksi” sesuai dengan property BandType. Tanpa menggunakan komponen ini pun Anda dapat menambahkan band pada report, yaitu dengan mengatur property Band dari komponen QuickRep.
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
QRChildBandDigunakan untuk membuat band yang terletak pada bagian bawah dari
band lain.
QRGroupMerupakan suatu band yang digunakan untuk mengelompokkan record.
QRLabelDigunakan utnuk menampilkan teks statis pada report.
QRDBTeksDigunakan untuk menampilkan isi atu nilai dari suatu field pada suatu tabel
QRExprDigunakan untuk menampilkan “ekspresi”. Sebagai contoh, jika Anda mempunyai field “Title”, “FirstName”, dan “LastName” dan Anda ingin menggabungkan isi (nilai) dari ketiga field tersebut, Anda dapat melakukannya dengan mengisikan pada property Expression:Title + “ “ FirstName + “ “ + LastName
QRSysDataDigunakan untuk menampilkan “sistem data” seperti nomor halaman pada report, tanggal dan atau jam waktu pencetakan
QRMemoDigunakan untuk menampilkan beberapa teks.
7.2 Mengenal BandBand merupakan bagian yang sangat penting pada pembuatan report,
karena pada band-lah Anda harus meletakkan berbagai komponen report lainnya. Band dapat dibedakan menjadi enam macam, yaitu:
PageHeaderIsi band ini akan akan ditampilkan pada setiap halaman report. Untuk menentukan apakah isi band akan ditampilkan pada halaman pertama
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
atau tidak, Anda dapat mengaturnya pada property Options.FisrtPageHeader.TitleBiasa digunakan untuk menampilkan judul report dan akan ditampilkan sekali pada halaman pertama saja.
ColoumnHeaderDigunakan untuk menampilkan judul kolom.
DetailDigunakan untuk menampilkan data (dari suatu dataset) yang akan dicetak. Anda dapat meletakkan data aware control seperti QRDBText pada band ini.
SummaryBiasa digunakan untuk menampilkan jumlah total dari suatu field pertipe numerik.
PageFooterIsi band ini akan ditampilkan pada setiap halaman report. Untuk menentukan apakah isi band akan ditampilkan pada halaman terakhir atau tidak. Anda dapat menggunakannya pada property Options.LastpageFooter. Biasa digunakan untuk menampilkan halam report.
Jika Anda menambahkan band baru pada report, band tersebut akan diurutkan secara otomatis berdasarkan tipe band-nya.
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
Salah satu cara untuk menambahkan band adalah dengan mengatur property QuickRep.Band.
7.3 Mencetak Report DetailReport yang paling sederhana adalah detail. Data yang ditampilkan
(dicetak) hanya ada pada satu tabel saja. Perhatikan contoh berikut.
STMIK LombokContoh 7-1 : Mencetak Laporan Detail
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
1. Buat sebuah project baru dan tambahkan dua buah komponen Button. Ubah Caption menjadi “Preview” dan “Print”. Ubah juga Name menjadi “btnPreview” dan “btnPrint”
2. Gunakan database Mahasiswa yang sudah dibuat sebelumnya. Tambahkan komponen Table dan ubah property:Name = tbMahasiswa DatabaseName = sesuaikan pada tempat penyimpanannyaActive = True.
3. Dari menu File, pilih New | Other. Pindah ke tab New, pilih Report.
4. Pada Object Inspector, klik tanda + pada property Bands. Ubah property HasColumn, HasPageFooter, dan HasTitle menjadi True.
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
5. Dari menu File, pilih UseUnit. Pilih nama unit dari Form1 (pada contoh ini namanya adalah Unit1).
6. Ubah property DataSet menjadi Form1.tbMahasiswa. tbMahasiswa merupakan nama tabel yang akan dibuat laporannya. Sedangkan Form1 merupakan nama form tempat komponen Table1 diletakkan.
7. Tambahkan beberapa komponen ke dalam QuickReport dan ubah beberapa property-nya. Gunakan Komponen QRLabel dan atur property Caption-nya (Data
Mahasiswa, NPM, Nama Mahasiswa, Program Studi, Jurusan, Jenjang dan Alamat).
Gunakan komponen QRDBText dan atur property DataSet menjadi Form1.tbMahasiswa dan DataField disesuaikan (No_Mhs, Nama, Prodi, Jurusan, Studi, Alamat).
Komponen QRLabel diletakkan pada band Title dan ColumnHeader, sedangkan komponen QRDBText diletakkan pada band Detail. Susun komponen-komponen di atas menjadi seperti gambar berikut ini:
8. Ketikkan prosedur event OnClick dari btnPreview dan btnPrintprocedure TfrmCetak.btnPreviewClick(Sender: TObject);begin QuickReport2.Preview;end;
procedure TfrmCetak.btnPrintClick(Sender: TObject);begin QuickReport2.Print; //untuk mencetak ke printerend;
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
Hasil Running
7.4 Laporan Berdasarkan Kriteria TertentuSebelum laporan berdasarkan kriteria dibuat, pastikan bahwa field yang
akan dijadikan kunci kriteria sudah diindex.
1. Buka project baru dan desainlah form seperti pada gambar.
2. Lakukan langkah no. 2 sampai no. 7 seperti contoh 7-1 di atas.
STMIK Lombok
Contoh 7-2 : Mencetak Laporan Berdasarkan Kriteria
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
3. Ketikkan prosedur event OnClick btnPreview dan btnPrintbtnPreviewprocedure TForm1.btnPreviewClick(Sender: TObject);begin with table1 do begin table1.IndexFieldNames:='Nama'; setrangestart; FieldByName('Nama').AsString:=edit1.Text; setrangeend; FieldByName('Nama').AsString:=edit1.Text; applyrange;
end; QuickReport2.preview; end;
btnPrintprocedure TForm1.btnPrintClick(Sender: TObject);begin with table1 do begin
table1.IndexFieldNames:='Nama';setrangestart;FieldByName('Nama').AsString:=edit1.Text;setrangeend;FieldByName('Nama').AsString:=edit1.Text;applyrange;
end; QuickReport2.Print; end;
Hasil Running
Mencetak nama mahasiswa “Kipli”
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
7.5 Hubungan Antar TabelPada sub bab kali ini, kita akan coba untuk membuat aplikasi sederhana
tentang pengolahan Data Gaji Pegawai. Dimana untuk membuat aplikasi sederhana ini diperlukan beberapa tabel yang saling berhubungan. Contoh di bawah ini adalah rancangan tabel yang saling berelasi.
Tabel Pegawai digunakan untuk mencatat data pegawai, tabel Gaji digunakan untuk menyimpan pengolahan data gaji dari masing-masing pegawai. Sedangkan tabel Golongan digunakan untuk menyimpan data golongan, gaji pokok dan tunjangan.
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
Untuk lebih memahami konsep hubungan antar tabel ini, Anda dapat mencoba contoh aplikasi berikut ini.
1. Buat tiga tabel untuk pengolahan data gaji. a. Tabel Pegawai
Simpan tabel pegawai dengan nama tbPegawaiStruktur tabel-nya adalah seperti telihat pada gambar di bawah dan tambahkan Secondary Index, yang diindex adalah Nama, lalu simpan dengan nama idxNama.
b. Tabel GolonganSimpan tabel pegawai dengan nama tbGolonganStruktur tabel-nya adalah seperti telihat pada gambar di bawah ini
STMIK Lombok
Contoh 7-3 : Hubungan Antar Tabel
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
c. Tabel GajiSimpan tabel pegawai dengan nama tbGajiStruktur tabel-nya adalah seperti telihat pada gambar di bawah ini
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
2. Setelah selesai membuat ketiga tabel di atas, kemudian, buat sebuah project baru, dan tambahkan beberapa komponen dan atur property dari masing-masing komponen. Tanyakan kepada Instruktur/Asissten, jika Anda kesulitan mencari komponen.
3. Desain Form Pegawaia. Tambahkan komponen Table dan atur property Name : tbPegawai dan
DataSource property Caption Name : dsPegawai.b. Tambahkan PageControl yang ada di tab Win32 ke formc. Klik kanan pada PageControl kemudian pilih New Page, maka akan
telihat TabSheet1, lakukan sekali lagi untuk membuat TabSheet2.d. Gunakan jendela Object Treeview untuk memilih TabSheet1 dan
TabSheet2.e. Pada TabSheet1, atur property Caption : Pendataan Pegawai.f. Tambahkan komponen GroupBox, Label, DBEdit, DBComboBox, dan
Button atau BitBtn. Atur property dan tata letaknya seperti terlihat pada gambar di bawah ini.
g. Atur DataSource dan DataField masing-masing DBEdit dan DBComboBox.
h. Ketikkan Prosedur pada komponen Button Entry, Batal, Simpan, Edit, dan Hapus seperti pada Contoh 6-4.
i. Untuk BitBtn Close diletakkan diluar (di bawah) PageContorl
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
j. Pada TabSheet2, atur property Caption : Daftar Pegawai.Tambahkan DBGrid, GroupBox, Lebel, Edit dan Button. Atur property dan tatak letaknya seperti pada gambar di bawah.
k. Tambahkan prosedur Cari berdasarkan Nama. Prosedurnya lihat pada Bab 6.
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
4. Desain Form Golongana. Buat form baru dengan cara New | Form.b. Dengan langkah-langkah seperti pada Desain Form Pegawai, buatlah
form Golongan.c. Tambahkan komponen Table dan atur property Name : tbGolongan
dan DataSource property Caption Name : dsGolongan.
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
TabSheet1 : Pendataan Golongan
TabSheet2 : Daftar Golongan
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
5. Desain Form Gajia. Buat form baru dengan cara New | Form.b. Tambahkan 3 komponen Table dan DataSource. Atur property Caption
: Name untuk masing-masing tabel, yaitu : tbPegawai, tbGolongan dan tbGaji, sedangkan untuk DataSource property Caption : Name untuk masing-masing DataSource, yaitu : dsPegawai, dsGologan, dan dsGaji.
c. Desain Form pada TabSheet1 : Pengolahan Gaji
d. Gunakan komponen DBLookupComboBox untuk Nomor Induk Pegawai dan Golongan. Atur propertiesnya sesuai dengan kebutuhan.
e. Ketikkan prosedur DBLookupComboBox No. Induk Pegawai
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
procedure TFPglhnGj.DBLNipClick(Sender: TObject);
begin
if DBLNip.Text=tbPegawai.FieldByName('NIP').AsString then
dbedit1.Text:=tbPegawai.FieldByName('Nama').AsString;
end;
DBLookupComboBox Golongan
procedure TFPglhnGj.DBLGolonganClick(Sender: TObject);beginif DBLGolongan.Text=tbGolongan.FieldByName('Golongan').AsString then dbedit2.Text :=tbGolongan.FieldByName('Gapok').AsString; dbedit3.Text :=tbGolongan.FieldByName('Tunjangan').AsString;
dbedit4.Text :=inttostr(strtoint(dbedit2.Text)+strtoint (dbedit3.Text));
end;
f. Desain Form pada TabSheet2 : Pengolahan Gaji
STMIK Lombok
Sekolah Tinggi Menejemen Informatika Dan Komputer (STMIK Lombok) [email protected]
6. Desain Form Cetak Gaji Pegawai
7. Desain Form Cetak Slip Gaji
Selamat mencoba……!!
STMIK Lombok