Pemrograman Delphi DGN SQL Server
Pemrograman Delphi DGN SQL Server
Ukuran: 14x21 cm
Tebal: 360 hlm
Harga: Rp 49.800
Terbit pertama: Mei 2004
Sinopsis singkat:
Buku ini akan mengajarkan Anda bagaimana membuat aplikasi dengan bahasa pemrograman Delphi dan
database Microsoft SQL Server. Pembuatan program dalam buku ini dimulai dari tahap awal seperti
menentukan teknologi Data Access dan jenis database yang digunakan. Juga disinggung tahapan desain
aplikasi, dimulai dari pembuatan DFD (Data Flow Diagram) hingga DSD (Data Structure Diagram) sehingga
pembaca dapat mengetahui pentingnya desain sistem dalam perancangan aplikasi.
Dalam buku ini juga diberikan contoh kasus sehingga pembaca dapat langsung mencoba menerapkan apa
yang diajarkan. Tak kalah pentingnya, buku ini juga membahas pembuatan fasilitas help suatu aplikasi dan cara
membuat paket distribusi untuk aplikasi yang telah dibuat.
BAB 5
MEMBUAT REPORT
Dalam aplikasi database, report adalah hal yang sangat penting dan
berfungsi untuk memberikan laporan bagi user. Report adalah suatu
hasil akhir dari keseluruhan proses aplikasi database. Pada bab ini
Anda akan belajar untuk membuat report pada aplikasi
Perpustakaan.
232
Detail Band
Footer Band
Summary Band
5.1 Band pada Quick Report
234
QRBand
QBBand adalah band elemen dasar dari band-band yang ada dan
dengan mudah dapat diubah tipe band-nya hanya dengan mengatur
properti BandType sesuai tujuan band tersebut. Jika kita meletakkan
TQRBand pada QuickRep, lalu mengisi BandType dengan rbTitle,
fungsi band ini menjadi tipe Title Band.
QRChildBand
QRChildBand
digunakan
untuk
mencetak
laporan
yang
komponennya panjang dan menyebabkan band yang ada tidak
cukup sehingga komponen tersebut harus dipindahkan ke
QRChildBand pada saat proses.
QRGroup
Band ini memungkinkan Anda membagi band yang ada menjadi
bagian-bagian menurut grup. Anda dapat menentukan kapan band
ini dicetak dengan rumus. Jika perhitungan rumus pada record
sekarang dan sebelumnya tidak sama, band ini akan dicetak.
QRLabel
QR Label digunakan untuk mencetak teks pada laporan. Berguna
untuk memberi keterangan seperti label pada form, serta bersifat
statik. Untuk mengatur teks yang akan dicetak label, digunakan
properti caption.
QRDBText
QRDBText adalah versi data-aware TQRLabel. Band ini berfungsi
untuk mencetak nilai yang ada pada field suatu database. Di
dalamnya juga termasuk calculated field, text field, string field, atau
macam field numeric, field tanggal, field memo. Koneksikan pada
data field dengan mengatur properti DataSource dan DataField.
QRExpr
Band ini digunakan untuk mencetak field database, kalkulasi dan
static text. Pada properti Expression dapat dimasukkan ekspresi
untuk keperluan seperti menghitung subtotal, total, dan sebagainya.
235
QRSysData
QRSysData digunakan untuk mencetak informasi sistem seperti title
report, nomor halaman, jam, tanggal, dan sebagainya.
QRMemo
QRMemo digunakan untuk mencetak text berjumlah besar yang
bukan dari suatu field di database.
QRRichText
Band ini digunakan untuk memasukkan rich text pada report.
QRDBRichText
Band ini digunakan untuk mengakses field DBRichText pada report.
QRShape
QRShape digunakan untuk menggambar bentuk bangun seperti
kotak, lingkaran, dan garis pada report.
QRImage
QRImage digunakan untuk menampilkan gambar pada report.
Format image yang didukung disesuaikan dengan class TPicture.
QRDBImage
QRBDImage digunakan untuk mencetak image yang disimpan di
suatu field database (BLOB field).
QRPreview
Band ini digunakan untuk melihat preview report pada layer.
QRTextFilter
QRTextFilter digunakan untuk mengekspor isi dari report ke format
text.
QRHTMLFilter
Band ini digunakan untuk mengekspor isi dari report ke HTML.
236
QRChart
Band ini digunakan untuk mencetak chart di laporan. QRChart
mempunyai fungsi yang sama dengan TDBChart.
237
Other Box
Menentukan jenis font dasar yang akan digunakan, ukuran, dan
satuan unit dari font tersebut.
Page Frame Box
Menentukan frame (garis batas laporan) pada laporan yang terdiri
atas batas atas (top), bawah (bottom), kiri (left), kanan (right), warna
garis batas, dan tebal garis frame.
Band Box
Menentukan band yang digunakan beserta ukurannya pada kertas.
5.2.4 Preview
Report yang telah kita buat dapat kita lihat dengan cara melakukan
klik-kanan dan memilih Preview, atau jika Anda di dalam kotak
dialog Report Setting, Anda dapat mengklik tombol preview.
TQRBand
Properti yang sering digunakan:
Properti
Keterangan
BandType
Color
Enabled
Font
Expression
238
FooterBand
Frame
HasChild
HeaderBand
EventQRBand
QRBand hanya memiliki dua event, yaitu OnAfterPrint dan
OnBeforePrint, sedangkan QRSubDetail memiliki tiga event dengan
tambahan event OnNeedData.
Event
Keterangan
OnAfterPrint
OnBeforePrint
OnNeedData
239
240
FALSE
FormStyle
fsNormal
Band
QuickReport
Page
Header
Title
Header
Column
NoAngg
ota
Telp
Detail
menampung
record-record
hasil
243
Gambar 5.4 Query Analyzer dengan Hasil Query Anggota yang Masih
Aktif
properti
QRDBNoAnggota.DataField := ADOQuery1.Fields[0].DisplayName;
procedure TFrmLapAgtAktif.QRBandDetailBeforePrint(Sender:
TQRCustomBand;
var PrintBand: Boolean);
begin
if ADOQuery1.RecordCount = 0 then PrintBand := FALSE;
end;
Band
QuickReport
Page
Header
Title
Group
Header
245
Kode Buku
Kode_Buku
Judul
Judul
Penerbit
Penerbit
Detail
QRDBNoAnggota,
QRDBNama,
QRDBNoPinjam,
QRDBMasaBerlaku. Kemudian isi properti DataSet dengan
ADOQuery1.
5. Pada QuickReport, klik-ganda properti bands. Isi HasDetail
dengan nilai TRUE (atau klik-ganda QuickReport yang akan
menampilkan Report Settings dan beri tanda centang di bagian
Detail pada Group bands). Tambahkan tiga TQRDBText dan
beri nama masing-masing: QRDBKodeBuku, QRDBJudul,
QRDBPenerbit. Kemudian isi properti DataSet dengan
ADOQuery1.
Ketikkan statement SQL di bawah ini pada Query Analyzer atau pada
Enterprise Manager di bagian database Perpustakaan. Caranya,
buatlah view baru, setelah itu masukkan statement SQL di bawah ini:
Create VIEW ANGGOTA_YANG_PINJAM AS
Select distinct AGT.No_Anggota, AGT.Nama as [Nama Anggota],
(SELECT top 1 AKHIR FROM MASA_BERLAKU WHERE
NO_ANGGOTA = AGT.NO_ANGGOTA ORDER BY AKHIR DESC ) as
MASA_BERLAKU
, PJ.No_Pinjam, DP.Kode_Buku, B.Judul, P.Nama as [Penerbit] from
Anggota AGT,
Masa_Berlaku MB, Peminjaman PJ Inner Join Detail_Peminjaman DP
on
DP.No_pinjam = PJ.No_Pinjam, Buku B, Penerbit P Where
AGT.No_Anggota = PJ.No_Anggota and
MB.No_Anggota = AGT.No_Anggota and DP.Kode_Buku = B.Kode_Buku
and
B.Kode_Penerbit = P.Kode_Penerbit and DP.Tanggal_kembali is null
and DP.denda = 0
247
Gambar 5.7 Query Analizer dengan SQL untuk Anggota yang Pinjam
Buku
DM.ADOCommand.CommandType := cmdTable;
DM.ADOCommand.CommandText := 'ANGGOTA_YANG_PINJAM';
ANGGOTA_YANG_PINJAM adalah View Yang telah dibuat di SQL
Server, cara Akses sama seperti tabel , dapat dengan
ADOTable, ADOCommand, ADOQuery seperti Nama Tabel Umumnya
ADOQuery1.Recordset := DM.ADOCommand.Execute;
end;
DM.ADOConnection.CommitTrans;
except
DM.ADOConnection.RollbackTrans;
end;
DM.ADOConnection.CursorLocation := clUseServer;
with ADOQuery1 do
begin
QRDBNoAnggota.DataField := Fields[0].DisplayName;
QRDBNamaAnggota.DataField := Fields[1].DisplayName;
QRDBNoPinjam.DataField := Fields[3].DisplayName;
QRDBMasaBerlaku.DataField := Fields[2].DisplayName;
248
QRDBKodeBuku.DataField := Fields[4].DisplayName;
QRDBJudul.DataField := Fields[5].DisplayName;
QRDBPenerbit.DataField := Fields[6].DisplayName;
QRGroupHeader.Expression := Fields[3].DisplayName;
end;
end;
Kita
menggunakan
CursorLocation
=
clUseClient
pada
ADOConnection karena jika menggunakan clUseServer akan
menampilkan error. Seperti yang dibahas pada bagian
CursorLocation dan CursorType, tidak semua kombinasi dari
CursorLocation dan CursorType dapat terlaksana. Biasanya hal ini
disebabkan keterbatasan DBMS atau OLE DB Provider.
Error yang ditimbulkan adalah pada saat kompilasi:
Kita
masukkan
statement
SQL
ADOCommand.CommandType cmdText:
dan
mendefinisikan
with ADOQuery1 do
begin
QRDBNoAnggota.DataField := Fields[0].DisplayName;
. . .
QRGroupHeader.Expression := Fields[3].DisplayName;
end;
QuickReport
Band
Page
Header
Title
Group
Header
Judul
A.
Kode Buku
Kode_Buku
Judul
Judul
Penerbit
Penerbit
Category
Category
Persediaan
Jumlah
Judul
Judul
Penerbit
Penerbit
Category
Category
Persediaan
Jumlah
Detail
Group
Header
Detail
250
Judul
B.
Kode_Buku
Kode_Buku
Group
Footer
Summary
Sub
Total
Sub Total
Total
Total
252
DM.ADOConnection.CommitTrans;
except
DM.ADOConnection.RollbackTrans;
end;
QRGroupHeader.Expression := 'UPPER(Copy(ADOQuery1.JUDUL, 1,
1))';
QRExprTotalGroup.Expression := 'SUM(ADOQuery1.Jumlah)';
QRExprTotal.Expression := 'SUM(ADOQuery1.Jumlah)';
QRDBKodeBuku.DataField := ADOQuery1.Fields[0].DisplayName;
QRDBJudul.DataField := ADOQuery1.Fields[1].DisplayName;
QRDBPenerbit.DataField := ADOQuery1.Fields[2].DisplayName;
QRDBCategory.DataField := ADOQuery1.Fields[3].DisplayName;
QRDBJumlah.DataField := ADOQuery1.Fields[4].DisplayName;
end;
QuickReport
Band
Page
Header
Title
Group
Header
Detail Band
Judul
Telat
Denda Buku
Kode_Buku
Judul
Telat
Denda Buku
253
Sub Denda
Group
Footer
Group
Header
Judul
Telat
Denda Buku
Kode_Buku
Judul
Telat
Denda Buku
Detail Band
Group
Footer
Summary
254
255
256
257
258
DM.ADOConnection.BeginTrans;
with DM.ADOStoredProc do
begin
Active := FALSE;
Active := TRUE;
end;
DM.ADOConnection.CommitTrans;
except
DM.ADOConnection.RollbackTrans;
end;
259
end;
o Pemanggilan Report
Semua report yang ada pada contoh dipanggil melalui dua form,
yaitu frmLaporanAnggota dan frmLaporanBuku. Untuk memanggil
report, kita dapat menggunakan metode Preview Report yang
disiapkan oleh Quick Report.
Preview Report
Ada tiga metode atau prosedur untuk menampilkan report (preview)
ke layar:
Metode
Keterangan
Contoh
Preview
Membuat
report
dan
menampilkannya
ke
layar.
Setelah report muncul, user dapat
mencetaknya.
QuickRep1.Pre
view;
PreviewModa
l
QuickRep1.Pre
viewModal;
PreviewModel
ess
Sama
seperti
PreviewModal,
tetapi program akan terus
mengeksekusi baris program
setelah Metode PreviewModeLess
dipanggil, yaitu saat report
sedang dibuat dan ditampilkan.
QuickRep1.Pre
viewModeless;
260
Mencetak ke Printer
Untuk langsung mencetak report ke printer tanpa terlebih dahulu
menampilkannya ke layar (preview), prosedur Print dapat langsung
dipanggil.
QuickRep1.Print;
261
case RGGroupBy.ItemIndex of
0: begin
SpeedCetak.Enabled := FALSE;
if frmLapAgtAktif = nil then
Application.CreateForm(TfrmLapAgtAktif,
frmLapAgtAktif);
FrmLapAgtAktif.QuickRep1.PreviewModal;
if FrmLaporanAnggota = nil then exit;
SpeedCetak.Enabled := TRUE;
end;
1: begin
SpeedCetak.Enabled := FALSE;
if FrmLapAgtTidakAktif = nil then
Application.CreateForm(TFrmLapAgtTidakAktif,
FrmLapAgtTidakAktif);
FrmLapAgtTidakAktif.QuickRep1.PreviewModal;
if FrmLaporanAnggota = nil then exit;
SpeedCetak.Enabled := TRUE;
end;
2: begin
SpeedCetak.Enabled := FALSE;
if FrmLapSemuaAgt = nil then
Application.CreateForm(TFrmLapSemuaAgt,
FrmLapSemuaAgt);
FrmLapSemuaAgt.QuickRep1.PreviewModal;
if FrmLaporanAnggota = nil then exit;
SpeedCetak.Enabled := TRUE;
end;
end;
end;
1: begin
if CheckPinjam.Checked then
begin
SpeedCetak.Enabled := FALSE;
if FrmLapAgtListBuku = nil then
Application.CreateForm(TFrmLapAgtListBuku,
FrmLapAgtListBuku);
FrmLapAgtListBuku.QuickRep1.PreviewModal;
if FrmLaporanAnggota = nil then exit;
SpeedCetak.Enabled := TRUE;
end else if CheckTelat.Checked then
begin
SpeedCetak.Enabled := FALSE;
if FrmLapAgtTelatKembalikanBuku = nil then
Application.CreateForm(TfrmLapAgtTelat
KembalikanBuku,FrmLapAgtTelatKembalikanBuku);
FrmLapAgtTelatKembalikanBuku.QuickRep1.PreviewModal;
if FrmLaporanAnggota = nil then exit;
SpeedCetak.Enabled := TRUE;
end;
end;
end;
end;
Untuk menampilkan report inti pada kode program di atas, pertamatama kita buat form report tempat report yang akan ditampilkan
berada. Setelah itu baru memanggil dengan prosedur PreviewModal.
262
OnClick
SpeedCetak
263
264
Page
Pada gambar Rave Designer di atas, di bagian tengah terdapat page.
Page adalah tempat kita merancang report yang diinginkan. Suatu
page juga mempunyai properti yang dapat diatur pada Property
Panel. Di antaranya adalah properti PageHeight, PageWidth, dan
PaperSize untuk mengatur ukuran kertas, dan juga orientasi kertas
report yang akan dibuat.
265
Bila node aktif, tulisan node akan menjadi tebal dan berefek
bayangan berwarna hijau. Pada Project Tree Panel di bawah node
RaveProject terdapat tiga node utama, yaitu:
Report Library
Menampilkan nama-nama report pada proyek yang aktif. Pada
tiap report mungkin saja terdapat lebih dari satu page yang
berisi komponen-komponen.
Property Panel
Property Panel digunakan untuk mengatur properti-properti
komponen yang dipilih. Property Panel berfungsi seperti Object
Inspector pada Delphi.
266
Komponen Toolbar
Terdapat empat komponen toolbar standar, yaitu:
1. Drawing
2. Bar Code
3. Standard
4. Report
o Komponen Drawing
Digunakan untuk keperluan tampilan yang membutuhkan bentuk
seperti garis, kotak, lingkaran, elips, atau gabungan dari komponen
drawing tersebut.
Line
Hline
Vline
Rectangle
Square
Elipse
Circle
o Komponen Barcode
Terdapat enam komponen barcode, yaitu:
PostNetBarcode
2of5BarCode
Code39BarCode
128BarCode
UPCBarCode
EANBarCode
267
o Komponen Standard
Komponen-komponen ini adalah komponen-komponen yang cukup
sering digunakan, yaitu untuk keperluan menampilkan teks atau
image yang tidak terkait dengan data yang terkoneksi pada
database.
o Komponen Report
Terdapat 11 komponen report, yaitu:
DataText
Region
CalcOp
DataMemo
Band
CalcTotal
CalcText
DataBand
CalcController
DataMirrorSection
DataCycle
268
Ada dua tipe obyek pada Rave, yaitu komponen Output dan Report
Class.
o Komponen Output
Icon
Nama
TrvSystem
Keterangan
Merupakan komponen yang
menggabungkan fungsi tiga
komponen,
yaitu
TRvRenderPrinter,
TRvRenderPreview,
dan
TRvNDRWriter.
Melalui
komponen ini kita dapat
mengatur preview report, setting
printer, dan setting lainnya
secara terintegrasi dalam satu
komponen.
269
TRvRenderPreview
TRvRenderPDF
TRvRenderHTML
TRvRenderRTF
TRvRenderText
o Report Class
Icon
Nama
TRvProject
270
Keterangan
Menghubungkan
aplikasi
dengan report proyek yang
telah dibuat pada Rave
Designer.
Mempunyai
Menghubungkan
custom
data yang dihasilkan event
pada DirectDataViews dan
dibuat pada Rave Visual
Designer.
TRvDataSetConnection
TRvTableConnection
Menghubungkan komponen
TTable
dengan
DirectDataViews yang dibuat
pada Rave Visual Designer.
TRvQueryConnection
Menghubungkan komponen
TQuery
dengan
DirectDataViews yang dibuat
pada Rave Visual Designer.
271
Langkah-langkah
273
Selanjutnya
akan
tampil
koneksi
yang
aktif
(RvDataSetConnectionLapAgtAktif) pada aplikasi yang sedang
kita buat. Pilih Active Data Connection tersebut, lalu klik Finish.
274
275
Komponen
Property Name
Property BandType
Band
TitleBand
Body Header
Band
BodyHeaderBand
Body Header
DataBand
DetailBand
Detail
TitleBand
Digunakan untuk memberi judul pada laporan.
Properti TitleBand:
Properti
Nilai
BandStyle
Body Header
ControllerBand
DetailBand
Komponen
Property Text
Text
TitleText1
LAPORAN PERPUSTAKAAN
Text
TitleText2
Atur letak dan ukuran huruf (font) serta beri nama yang sesuai.
BodyHeaderBand
Berfungsi sebagai header nama-nama field (pada Quick Report
Column Header), band ini akan dicetak setiap kali dibuat
halaman baru.
276
Properti HeaderBand :
Properti
Nilai
BandStyle
Body Header
ControllerBand
DetailBand
Tambahkan enam
sebagai berikut:
Text,
Komponen
masing-masing
Name
dengan
properti
Text
Text
TextNoAnggota
No Anggota
Text
TextNama
Nama
Text
TextJK
JK
Text
TextAlamat
Alamat
Text
TextKota
Kota
Text
TextTelp
Telp
Nilai
BandStyle
Detail
DataView
DVAnggotaYgAktif
277
DataText
DataText
DataText
DataText
DataText
DataText
Name
DataTextN
oAnggota
DataTextN
ama
DataTextJ
K
DataTextAl
amat
DataTextK
ota
DataTextT
elp
Property
Nilai
DataView
DVAnggotaYgAktif
DataField
NO_ANGGOTA
DataView
DVAnggotaYgAktif
DataField
NO_ANGGOTA
DataView
DVAnggotaYgAktif
DataField
NO_ANGGOTA
DataView
DVAnggotaYgAktif
DataField
NO_ANGGOTA
DataView
DVAnggotaYgAktif
DataField
NO_ANGGOTA
DataView
DVAnggotaYgAktif
DataField
NO_ANGGOTA
278
Band
Page
Region
Body
Header
(Band)
Body
Header
(Band)
Detail
(Data
Band)
NoAnggot
a
Nama
JK
Alamat
Kota
Telp
[NoAnggo
ta]
.
.
.
[Nam
a]
.
.
.
[JK
]
...
[Alama
t]
.
.
.
[Kota
]
.
.
.
[Telp]
.
.
.
279
RepBuku.rav.
Beri
nama
Page
Band
Region
Body
Header
(Band)
Group
Header
(Band)
Judul:
Kode
Buku
[<Huruf Judul>]
Judul
Penerbi
t
Categor
y
Persedia
an
281
Detail
(Data
Band)
[KodeBuk
u]
.
.
.
[Judul
]
.
.
.
Group
Footer
(Band)
Body
Footer
(Band)
[Penerb
[Categor
it]
y]
.
.
.
.
.
.
Subtotal
Grandtotal
[Persedia
an]
.
.
.
SubTotal
GrandTotal
TitleBand
GroupHeader
Band
DetailDataBa
nd
282
Komponen
Properti
Nilai
BandTypes
ControllerBand
DetailDataBand
BandTypes
ControllerBand
DetailDataBand
GroupDataVie
w
DVLapJumlahBuku
GroupKey
<HURUF JUDUL>
BandTypes
Detail (D)
DataView
DVLapJumlahBuku
Band
Band
DataBand
GroupFooter
Band
BodyFooterB
and
Band
BandTypes
ControllerBand
DetailDataBand
GroupDataVie
w
DVLapJumlahBuku
GroupKey
<HURUF JUDUL>
BandTypes
ControllerBand
DetailDataBand
Band
DataTextKodeBuku
DataTextJudul
DataTextPenerbit
Komponen
Properti
Nilai
DataView
DVLapJumlahBuku
DataField
KODE_BUKU
DataView
DVLapJumlahBuku
DataField
JUDUL
DataView
DVLapJumlahBuku
DataField
PENERBIT
DataText
DataText
DataText
283
DataTextCategory
DataTextPersediaan
DataView
DVLapJumlahBuku
DataField
CATEGORY
DataView
DVLapJumlahBuku
DataField
JUMLAH
DataText
DataText
ControllerBand
DetailDataBand.
DataView
DVLapJumlahBuku.
DataField
JUMLAH
CalcType
ctSUM
Dengan demikian pada CalcText akan tercetak subtotal dari recordrecord yang dicetak pada Group yang berbeda-beda (group
berdasarkan huruf pertama dari judul) yang telah didefinisikan pada
GroupHeaderBand dan GroupFooterBand.
Pada BodyFooterBand juga terdapat komponen CalcText untuk
GrandTotal. Properti yang harus diatur sama dengan CalcText pada
GroupFooterBand, yaitu:
ControllerBand
DetailDataBand.
DataView
DVLapJumlahBuku.
DataField
JUMLAH
CalcType
ctSUM
284
yang sama, kita tidak perlu membuat tiga report yang berbeda. Hal
ini dikarenakan meskipun report ini menggunakan dataset
ADOStoredProc yang memanggil Stored Procedure pada database,
ketiga Stored Procedure tersebut mempunyai result set dengan fieldfield yang sama. Untuk membedakannya, pada subjudul akan
ditampilkan keterangan sesuai dengan stored procedure yang
dipanggil. Untuk keperluan ini dapat digunakan parameter pada
datatext, lalu nilai tersebut (string) dikirimkan.
Di bawah ini adalah gambaran desain RepLapDenda.
Page
Band
Region
Body
Header
(Band)
Group
Header
(Band)
LAPORAN PERPUSTAKAAN
PENDAPATAN DENDA
[Param.SubTitle]
No Pinjam
Tanggal Kembali
No Anggota
Nama
Kode Buku
[KodeBuku]
Detail
(Data
Band)
Group
Footer
(Band)
Body
Footer
(Band)
.
.
.
[NoPinjam]
[Tanggal_Kembali]
[NoAnggota]
[Nama_Anggota]
Judul
[Judul]
.
.
.
Telat
[Telat]
.
.
.
Sub Total
Grand Total
Denda
[<Denda
Buku>]
.
.
.
[<Sub Denda>]
GrandTotal
286
287
288
FullName:
Contoh lengkapnya:
With DM.ADOQueryLapAgtAktif do
Begin
Active := FALSE;
SQL.Text := 'SELECT AGT.NO_ANGGOTA, AGT.NAMA, ' +
'CASE AGT.JENIS_KELAMIN ' +
'WHEN ' + QuotedStr('1') + 'THEN ' +
QuotedStr('PRIA') + ' ELSE ' +
QuotedStr('WANITA') + 'END AS JK ' +
', AGT.ALAMAT1, ' +
'AGT.KOTA, AGT.TELP FROM ANGGOTA AGT ' +
'WHERE AGT.AKTIF=' + QuotedStr('1') +
ORDER BY AGT.NO_ANGGOTA';
Active := TRUE;
End;
if RvProjectAgt.SelectReport('RepAnggotaYgAktif', FALSE)
then
RvProjectAgt.Execute;
291
FormatDateTime('mmmm',DTPBulan.DateTime));
Active := TRUE;
if RvProjectBuku.SelectReport('RepLapDenda', FALSE) then
RvProjectBuku.Execute;
end;
end;
2: begin
with DM.ADOStoredProcLapDenda do
begin
Active := FALSE;
Parameters.Clear;
ProcedureName := 'LAP_PEND_DENDA_PERPERIODE';
Parameters.CreateParameter(
'@TanggalFrom', ftDateTime, pdInput, 50,
DTPFrom.DateTime);
Parameters.CreateParameter(
'@TanggalTo', ftDateTime, pdInput, 50,
DTPTo.DateTime);
RvProjectBuku.SetParam('SubTitle', 'Pendapatan Denda Periode ' +
FormatDateTime('dd MMMM yyyy',DTPFrom.DateTime)
+ ' S/D ' +
FormatDateTime('dd MMMM
yyyy',DTPTo.DateTime));
Active := TRUE;
if RvProjectBuku.SelectReport('RepLapDenda', FALSE) then
RvProjectBuku.Execute;
end;
end;
end;
292
Penggunaannya cukup dengan menambahkan komponenkomponen tersebut pada form dimana komponen RvProject berada.
Setelah itu atur properti Active menjadi TRUE sehingga report yang
mempunyai kemampuan untuk menyimpan dalam format tersebut.
Sebagai contoh, pada FrmLaporanAnggota ditambahkan empat
komponen rave, yaitu RvRenderPDF, RvRenderHTML, RvRenderRTF,
dan RvRenderText. Akibatnya jika program dijalankan Anda dapat
menyimpan report dalam salah satu format file di atas dengan
memilih File pada dialog Output Options, bagian Report Destination.
Tentukan nama dan direktori file yang akan disimpan, lalu pilih
format file yang diinginkan pada Format, kemudian klik OK.
Anda dapat juga melihat Preview Report terlebih dahulu jika pada
Report Destination dipilih Preview. Kemudian pilih Save As dari menu
File untuk menyimpan report tersebut.
293