MEMBUAT LAPORAN TRANSAKSI PERSEWAAN VCD 1. Tambahkan sebuah form baru ke dalam project Rental VCD 2. Ubah properties nya menjadi FrmCetakSewa, dan simpan dengan nama UcetakSewa.pas 3. Dari komponen palette masukkan dua buah komponen Table dan sebuah komponen Query dari BDE ke ke dalam form. 4. Ubah properti ketiganya : Komponen Properties Keterangan Database RentalVCD Table1 Table VCD.db tvcd Database RentalVCD Table2 Table Pelanggan.db tpelanggan Database RentalVCD Query SQL Select * from Persewaan.db QrSewa 5. Tambahkan ke dalam Form komponen QuickRep 6. Ubah Properties komponen QuickRep menjadi QrSewaPeriode dan properties dataset menjadi QrSewa 7. Aktifkan Bands HasColumnHeader, HasDetail, HasPageHeader dan HasSummary 8. Desain report seperti di bawah ini :
9. Setelah selesai mengatur propertinya, selanjutnya buat kode program untuk memunculkan keterangan pada Judul Film dan Nama Pelanggan. Klick Band Detail pada QuickRep, kemudian pada objek inspector klik Tab Events dan cari Events BeforePrint, kemudian double klik dan ketikan kode program berikut : procedure TFrmCetakSewa.DetailBand1BeforePrint(Sender: TQRCustomBand; var PrintBand: Boolean); tvcd.findkey([qrsewa['kodevcd']]); tpelanggan.findkey([qrsewa['kodeplg']]); MEMBUAT FILTER 1. Tambahkan sebuah form baru pada project. Ubah properties nya mejadi FrmFilterCetakSewa, BorderStyle menjadi bstoolwindow, FormStyle menjadi fsmdichild dan Position menjadi posscreencenter 2. Kemudian desain form seperti di bawah ini :
3. Ubahlah Properties Komponen-komonen diatas sbb : Komponen Properties Keterangan Database RentalVCD Table Table Persewaan.db TPersewaan RgJenis Jenis Cetak RadioGroup Items Pertanggal Periode Tertentu ItemIndex 0 Button1 BtCetak &Cetak Button2 BtTutup &Tutup DateTimePicker1 DtpAwal DtpAkhir DateTimePicker2 Color clbtnface Enable False 4. Masukan Kode Program untuk RadioGroup pada event onclick : procedure TFrmFilterCetakSewa.RgJenisClick(Sender: TObject); case RgJenis.ItemIndex of 0: //aktifkan batas awal DtpAwal.Enabled:=; DtpAwal.Color:=clwhite; DtpAwal.Date:=Date; DtpAwal.SetFocus; //nonaktifkan batas akhir DtpAkhir.Enabled:=False; DtpAkhir.Color:=clBtnFace; 1 : //aktifkan batas akhir DtpAkhir.Enabled:=; DtpAkhir.Color:=clWhite; DtpAkhir.Date:=Date;
5. Double Klick Tombol Tutup, ketikan program berikut : procedure TFrmFilterCetakSewa.BtTutupClick(Sender: TObject); close; 6. Klick Form, pada event onclose ketikan program berikut : procedure TFrmFilterCetakSewa.FormClose(Sender: TObject; var Action: TCloseAction); Action:=caFree; 7. Masukan Form Desain Laporan Sewa (FrmCetakSewa) ke Form ini, dengan cara klick menu File > Use Unit, pilih UcetakSewa 8. Double Klick Tombol Cetak, ketikan program berikut : procedure TFrmFilterCetakSewa.BtCetakClick(Sender: TObject); var Ketemu:Boolean; tawal, takhir :tdatetime; tawal:=dtpawal.date; takhir:=dtpakhir.date; //cek dulu batas Cetak tpersewaan.index:='idxtglsewa'; Ketemu:=tPersewaan.FindKey([tAwal]); if Ketemu=False then Application.MessageBox('Tanggal tidak ada'+#13#10+'dalam data sewa...', 'Cek Batas Cetak',MB_IconInformation); exit; end else //cek input periode if RgJenis.ItemIndex=1 then if (DtpAwal.Date > DtpAkhir.Date) then application.messagebox('batas periode salah','cek Batas Periode',MB_IconStop); Exit;
//mulai mencetak report with FrmCetakSewa do //hapus string sql QrSewa.SQL.Clear; //buat baru QrSewa.SQL.Add('Select * from '+QuotedStr('Persewaan.db')); if RgJenis.ItemIndex=0 then QrSewa.SQL.Add('Where TglSewa=:Tawal'); QrSewa.ParamBy('Tawal').AsDate:=tAwal; end else QrSewa.SQL.Add('Where TglSewa>=:Tawal'); QrSewa.SQL.Add('And TglSewa<=:Takhir'); //buat parameter QrSewa.ParamBy('Tawal').AsDate:=tAwal; QrSewa.ParamBy('Takhir').AsDate:=tAkhir; //mulai cetak QrSewa.Prepare; QrSewa.Open; //cetak keterangan case RgJenis.ItemIndex of 0: QlPeriode.:='Per Tanggal : '+ DateToStr(tAwal); 1: QlPeriode.:='Periode : '+ DateToStr(tAwal)+'-'+DateToStr(tAkhir); //Tampilkan report QrSewaPeriode.Preview;