Laporan
kristal ini tutorial menunjukkan cara menggunakan Crystal Reports 4.6,
yang merupakan versi Crystal Reports yang dikirimkan dengan Visual
Studio / Visual Basic 6.0. Crystal Reports menyediakan cara yang relatif mudah untuk memasukkan laporan ke dalam aplikasi Anda. Dasar laporan adalah query database.
Crystal Report Tutorial Versi
Perlu
menunjukkan bahwa versi Crystal Reports cukup lama, dan bahwa versi ini
dan versi terakhir dari Crystal Reports yang telah dikirimkan dengan VB
umumnya "disiram turun" versi yang tidak memiliki semua lonceng dan
peluit mandiri yang produk yang dijual oleh Seagate Software. Selain
itu, CR 4.6 tidak akan bekerja dengan MS-Access database lebih tinggi
dari Access 97. Yang mengatakan, apa yang Anda pelajari tentang
merancang laporan dengan CR 4.6 akan membantu ketika bekerja dengan
versi. Mengenai masalah MS-Access, versi Access (2000, 2002, dll) dapat membaca dan menyimpan dalam Access 97 Format.
Instalasi VB6 Crystal Reports 4.6
Crystal Reports 4.6 dibundel dengan Visual Studio / Visual Basic 6.0, tetapi tidak terinstal secara otomatis. Untuk menginstalnya secara manual, cari folder CRYSREPT pada CD instalasi Anda â € "untuk Visual Studio 6.0, jalan UMUM \ ALAT \ VB \ CRYSREPT pada CD ketiga. Dalam folder itu, klik dua kali file CRYSTL32.EXE. Anda akan ditanya apakah Anda ingin menginstal Crystal Reports. Menanggapi Ya. Ini kemudian akan memberitahu Anda di mana itu akan menginstal CR; Anda dapat mengganti lokasi jika diinginkan. Setelah
itu, CR akan dipasang, dan beberapa saat kemudian Anda harus
mendapatkan pesan yang menunjukkan bahwa instalasi berhasil.
Contoh database
Sampel
database yang digunakan untuk tutorial ini (serta yang lain untuk
mengikuti) adalah Access 97 Database Format bernama EMPLOYEE.MDB.
EMPLOYEE.MDB berisi tiga tabel: EmpMast, DeptMast, dan JobMast. Tabel disusun sebagai berikut:
EmpMast table:
Nama Field
|
DataType
|
Komentar
|
EmpNbr
|
AutoNumber
|
Kunci Utama. Unik mengidentifikasi setiap karyawan dalam database.
|
EmpFirst
|
Teks (50)
|
Nama pertama karyawan
|
EmpLast
|
Teks (50)
|
Nama terakhir karyawan
|
DeptNbr
|
Jumlah (Long Integer)
|
Kunci asing untuk PK dari tabel DeptMast. Mengidentifikasi departemen mana karyawan bekerja di.
|
JobNbr
|
Jumlah (Long Integer)
|
Kunci asing untuk PK dari tabel JobMast. Mengidentifikasi pekerjaan karyawan.
|
HireDate
|
Tanggal / Waktu
|
Tanggal karyawan dipekerjakan
|
HrlyRate
|
Nomor (Single)
|
Tarif per jam karyawan
|
SchedHrs
|
Nomor (Single)
|
Jumlah jam per minggu karyawan dijadwalkan untuk bekerja.
|
DeptMast table:
Nama Field
|
DataType
|
Komentar
|
DeptNbr
|
Jumlah (Long Integer)
|
Kunci Utama; unik mengidentifikasi setiap departemen dalam database.
|
DEPTNAME
|
Teks (50)
|
Nama departemen.
|
Tempat
|
Teks (50)
|
Lokasi departemen (bisa menjadi bangunan, nomor suite, lantai, dll)
|
JobMast table:
Nama Field
|
DataType
|
Komentar
|
JobNbr
|
AutoNumber
|
Kunci Utama; unik mengidentifikasi setiap pekerjaan dalam database.
|
Judul pekerjaan
|
Teks (50)
|
Jabatan (deskripsi).
|
MinRate
|
Nomor (Single)
|
Tingkat minimum per jam bahwa seseorang yang bekerja di posisi ini biasanya dibayar.
|
AvgRate
|
Nomor (Single)
|
Tingkat rata-rata per jam bahwa seseorang yang bekerja di posisi ini biasanya dibayar.
|
MaxRate
|
Nomor (Single)
|
Tingkat maksimum per jam bahwa seseorang yang bekerja di posisi ini biasanya dibayar.
|
Merancang Laporan
Dua laporan akan dikembangkan dari basis data ini: "Beban Gaji Tahunan Departemen" dan "Beban Gaji Tahunan oleh Job".
Untuk
Beban Gaji Tahunan laporan Departemen, Anda ingin menunjukkan berbagai
bidang dari tabel database karyawan dikelompokkan dan subtotal oleh
departemen. Anda juga ingin menunjukkan grand total di akhir laporan. Sebuah sketsa desain mungkin terlihat seperti berikut:
Beban Gaji tahunan oleh Departemen
JOB wkly Hrly
EMP # NAMA # EMP JOB TITLE SEWA TANGGAL JAM RATE ANN GAJI
----- -------- --- --------- --------- ----- ---- ------- ---
DEPT XXXX XXXXXXXXXXXXXXXX
XXX XXX XXXXXXXXXXXXXXX XXXXXXXXXX XX / XX / XX XX.XX XX.XX $ XXX, xxx.xx
XXX XXX XXXXXXXXXXXXXXX XXXXXXXXXX XX / XX / XX XX.XX XX.XX $ XXX, xxx.xx
DEPT XXXX XXXXXXXXXXXXXXXXXXXXXXXX TOTAL: $ XXX, xxx.xx
.
.
.
GRAND TOTAL: $ XXX, xxx.xx
Desain
Beban Gaji Tahunan laporan kerja sama, kecuali bahwa Anda ingin
menunjukkan berbagai bidang dari tabel database karyawan dikelompokkan
dan subtotal dengan pekerjaan. Anda mungkin sketsa desain sebagai berikut:
Beban Gaji tahunan Job
DEPT wkly Hrly
EMP # NAMA # EMP DEPT NAMA SEWA TANGGAL JAM RATE ANN GAJI
----- -------- --- --------- --------- ----- ---- ------- ---
JOB XXX XXXXXXXXXXXXXXXX
XXX XXXXXXXXXXXXXXX XXXX XXXXXXXXXX XX / XX / XX XX.XX XX.XX $ XXX, xxx.xx
XXX XXXXXXXXXXXXXXX XXXX XXXXXXXXXX XX / XX / XX XX.XX XX.XX $ XXX, xxx.xx
JOB XXX XXXXXXXXXXXXXXXXXXXXXXXX TOTAL: $ XXX, xxx.xx
.
.
.
GRAND TOTAL: $ XXX, xxx.xx
Tutorial
ini akan memulai dengan menunjukkan langkah-demi-langkah proses untuk
merancang laporan pertama, "Beban Gaji tahunan oleh Departemen". Setelah
selesai, itu akan menjadi masalah sederhana untuk menyalin laporan itu
dan memodifikasi untuk menciptakan Beban Gaji Tahunan Laporan Kerja.
Dengan desain laporan dalam pikiran, terbuka Crystal Reports (Laporan Designer) dari menu VB Add-Ins:
Sebuah formulir pendaftaran akan muncul. Klik tombol Batal.
Dari Crystal Reports menu File, pilih New:
Buat Laporan Baru kotak dialog akan muncul. Klik tombol Standar.
Buat Laporan Ahli kotak dialog muncul dengan Langkah 1: Tabel tab yang terbuka. Klik tombol Data File:
Pilih File Database kotak dialog akan muncul. Arahkan ke direktori dimana file database Anda berada, kemudian klik nama file database sehingga muncul di bawah "File Name:". Klik tombol Add, lalu klik tombol Done.
2: tab Link kemudian muncul, menunjukkan Anda diagram mirip dengan Access 'Hubungan diagram.
Pindah dengan mengklik 3: tab Fields.
The "3: Fields" tab awalnya terlihat seperti ini:
Menggunakan
"Tambah ->" tombol, pilih field yang diinginkan dari "Database
Fields" listbox sehingga mereka muncul dalam "Laporan Fields" listbox. Pilih bidang yang didasarkan pada desain awal. Untuk
bidang yang terlibat dalam kunci utama â € "hubungan kunci asing, hanya
memilih salah satu bidang baik dari tabel (misalnya, pilih bidang
DeptNbr baik dari meja DeptMast ATAU meja EmpMast, tetapi tidak
keduanya).
Pilih Fields database berikut:
Pilih DeptNbr dan DEPTNAME dari tabel DeptMast.
Pilih EmpNbr Dari tabel EmpMast.
Loncat ke meja JobMast dan pilih JobNbr dan JobTitle.
Langsung kembali ke meja EmpMast dan pilih HireDate, HrlyRate, dan SchedHrs.
Layar Anda akan terlihat seperti ini:
Masih
menempel dengan Tab 3, Anda dapat menentukan judul kolom dengan memilih
masing-masing Laporan Fields pada gilirannya, dan memberi mereka sebuah
heading dengan mengetikkan teks yang diinginkan dalam "Heading Kolom:"
teks (secara default, kolom pos adalah sama dengan nama field).
Tentukan judul kolom sebagai berikut:
Laporan Lapangan
|
Kolom Heading
|
DeptMast.DeptNbr
|
Dept #
|
DeptMast.DeptName
|
Nama dept
|
EmpMast.EmpNbr
|
Emp #
|
JobMast.JobNbr
|
Proyek #
|
JobMast.JobTitle
|
Judul Pekerjaan
|
EmpMast.HireDate
|
Sewa Tanggal
|
EmpMast.HrlyRate
|
Hrly Tingkat
|
EmpMast.SchedHrs
|
Jam wkly
|
Kami
masih tidak dilakukan dengan Tab 3. Kita perlu dua kolom dihitung, satu
untuk nama karyawan (yang akan menjadi gabungan dari bidang EmpLast dan
EmpFirst) dan satu untuk gaji tahunan (yang akan menjadi tarif per jam
karyawan dikalikan dengan jam mingguan mereka dikalikan dengan 52).
Klik tombol Formula. The "Formula baru" kotak dialog muncul. Ketik EmpName dalam kotak teks dan klik OK
"Edit Formula" kotak dialog muncul. Dalam "Formula teks" area, ketik:
TrimRight ({} EmpMast.EmpLast) + "," + TrimRight ({} EmpMast.EmpFirst)
Layar Anda akan terlihat seperti ini:
Catatan: Crystal Reports memiliki sintaks rumus sendiri, yang berbeda dari sintaks VB dan Access ekspresi. Anda dapat menggulir "Fields", "Fungsi", dan "Operator" listboxes atas Formula area entri teks untuk melihat apa yang tersedia. Juga,
bukan mengetik semuanya langsung ke area entri teks, Anda dapat
mengklik dua kali pada pilihan listbox dan teks seleksi yang akan muncul
dalam kotak teks Formula.
Klik tombol Periksa. Jika Anda memasukkan formula dengan benar, pesan "Tidak ada kesalahan yang ditemukan" akan muncul. Melewati itu, klik tombol Terima.
Rumus akan muncul dalam Database Fields listbox (sebagai "EmpName"). DenganEmpName disorot, klik "Tambah->" tombol untuk menambahkannya ke daftar Laporan Fields. Dalam Laporan Fields daftar, drag dan drop "EmpName" sehingga muncul di bawah "EmpMast.EmpNbr". BerikanEmpName judul kolom "Nama Karyawan".
Sekarang kita harus membuat formula gaji tahunan. Untuk melakukannya, ikuti langkah berikut:
 ·
Pastikan apa pun selainEmpName dipilih dalam database Fields listbox.
 ·
Klik tombol Formula.
 ·
Dalam "New Formula" kotak dialog, ketik "AnnSal" dan klik OK.
 ·
Dalam "Edit Formula" kotak dialog, jenis
{} * {EmpMast.HrlyRate EmpMast.SchedHrs} * 52
klik Periksa, lalu Terima.
 ·
Gunakan "Tambah->" tombol untuk membawaAnnSal lebih dari database daftar Fields ke daftar Laporan Fields.
 ·
Dalam Laporan Fields listbox, drag dan drop formulaAnnSal sehingga field terakhir dalam daftar.
 ·
BerikanAnnSal judul kolom "Ann Gaji".
Klik 4: tab Sort. Pilih DeptMast.DeptNbr dari "Laporan Fields" daftar dan klik "Tambah->" tombol. DeptMast.DeptNbr kemudian muncul di "Grup Fields" daftar. Ulangi proses ini untukEmpName. Layar Anda akan terlihat seperti ini:
Klik 5: Total tab. Dalam total tab ini, dialog tab batin muncul, dengan satu tab untuk setiap bidang yang dipilih dalam semacam itu. Pada
"DeptMast.DeptNbr" tab, menghapus semua item kecuali "AnnSal" dari
daftar Jumlah Fields, seperti yang ditunjukkan di bawah ini. Apa
yang kami katakan adalah bahwa kita ingin mencetak subtotal untuk gaji
tahunan setiap kali ada perubahan, atau istirahat, dalam jumlah
departemen.
Masih dalam "5: Total" tab, klik "EmpName" tab dan menghapus semua item dari daftar Jumlah Fields, seperti yang ditunjukkan di bawah ini. (Kami tidak ingin mencetak subtotal setelah setiap nama karyawan.)
Kita tidak perlu melakukan apa-apa di tab 6, jadi klik 7: tab Style. Untuk judul, ketik "Tahunan Beban Gaji oleh Departemen".
Klik tombol Preview Report. Pada
saat ini, "Buat Laporan Expert" selesai dan Anda tidak bisa kembali ke
sana, tetapi Anda dapat membuat perubahan yang diinginkan dalam
antarmuka Crystal Reports. Berikut ini adalah layar yang awalnya ditampilkan setelah Anda mengklik tombol Preview Laporan Langkah 7 Ahli:
Di
Crystal Reports toolbar, klik tombol Zoom, sehingga Anda dapat melihat
apa yang Ahli lakukan untuk Anda (memberikan Anda awal, tapi perlu
beberapa pekerjaan):
Klik tab Desain:
Lakukan langkah-langkah berikut untuk memperbaiki laporan itu:
 ·
Buka menu File, pilih Printer Setup, dan mengubah Orientasi ke Landscape.
 ·
Di area header halaman, klik judul ("Beban Gaji Tahunan Departemen") untuk memilihnya. Mengubah ukuran judul sehingga bentang lebar seluruh laporan. Pergi ke format bar dan klik tombol pusat ke pusat judul.
 ·
Dari menu Insert, pilih Text Field. Pada kotak dialog yang muncul, ketik Jalankan Tanggal: dan klik tombol Terima. Pada saat itu, pointer mouse Anda juga akan memiliki kotak yang mewakili bidang teks saja Anda masukkan. Tarik kotak ini untuk garis di mana tanggal tersebut. Gunakan mouse Anda untuk mengatur item sehingga mereka terlihat seperti ini:
 ·
Masih di wilayah Page Header, menghapus judul kolom untuk Dept # dan Dept Nama. (Lakukan ini dengan memilih setiap item dengan mouse dan menekan tombol Delete.)
 ·
Di daerah pertama berlabel # 1: DeptNbr â € "A (yang di atas Detail), pilih item di sana dan menghapusnya.
 ·
Di Rincian area, pilih bidang DeptNbr dan DEPTNAME, dan menyeret mereka dengan mouse untuk pertama # 1: DeptNbr -A daerah.
 ·
Setelah di daerah baru, memilih dua bidang ini dan klik tombol Bold. Masukkan
kolom teks di daerah ini (menggunakan teknik yang sama seperti yang
Anda lakukan dengan "Tanggal Run:") dengan teks "Departemen:". Membuat kolom teks ini tebal juga. Atur
bidang sehingga mereka terlihat seperti berikut (Anda dapat mengubah
ukuran lapangan dengan memilih dan menyeret pada pegangan, seperti
mengubah ukuran kontrol pada formulir VB):
 ·
Perhatikan bahwa format default untuk nomor departemen mengandung koma. Kami tidak menginginkan hal itu. Klik kanan nomor departemen, dan pilih Ubah Format â € | dari menu konteks. Dialog Format Nomor muncul, seperti yang ditunjukkan di bawah ini. Kosongkan "Ribuan Separator" kotak centang dan klik OK. (Catatan:
Anda juga dapat menambah atau menghapus format koma dengan memilih
lapangan dan mengklik tombol koma pada toolbar format.)
 ·
Lepaskan koma dari format untuk nomor karyawan dan jumlah pekerjaan. Mengubah
ukuran kolom pada baris detail dan mengubah ukuran judul kolom yang
sesuai mereka sehingga judul kolom dapat sepenuhnya membaca dan data
lapangan berbaris di bawah mereka. Menggunakan layar shot di bawah sebagai panduan:
 ·
Di daerah kedua berlabel # 1: DeptNbr â € "A (satu di bawah Rincian), Anda akan melihat item text (dilambangkan dengan X) di ujung kiri baris. Hapus item text. Di daerah yang sama, ke arah sisi kanan garis, Anda akan melihat item numerik (dilambangkan dengan "55,56"). Ini adalah subtotal departemen. Resize
item ini untuk membuatnya lebih besar, dan memindahkannya ke kanan
sehingga garis dengan bidang gaji tahunan rinci, seperti yang
ditunjukkan di bawah ini:
 ·
Masukkan bidang teks
dengan teks "Subtotal untuk Departemen" di sebelah kiri subtotal (bukan
ke kiri langsung, karena kita akan memasukkan bidang lain antara
kedua). Klik tombol Bold untuk membuatnya berani.
 ·
Pada menu Insert, pilih Database Lapangan â € | The "Insert database Field" kotak dialog muncul (ditampilkan di bawah). Dari itu, pilih DeptNbr dan tarik bidang DeptNbr ke garis subtotal, antara teks "Subtotal untuk Departemen" dan subtotal numerik.
 ·
Wilayah kedua berlabel # 1: DeptNbr â € "A sekarang harus terlihat seperti ini:
 ·
Di daerah dari laporan berlabel Grand Total, menghapus semua bidang kecuali yang pertama (item teks dengan teks "Grand Total") dan yang terakhir (item numerik yang merupakan grand total gaji tahunan). Mengubah ukuran dan berbaris sisa dua item sehingga laporan terlihat seperti berikut:
 ·
 ·
Di daerah Halaman Footer laporan, ada lapangan untuk nomor halaman. Dengan mouse, memindahkan bidang ini ke sisi kanan area halaman judul. Menambahkan
kolom teks yang mengatakan "Halaman:" dan menempatkannya berdekatan
dengan nomor halaman, seperti berikut screen-shot:
Itu hanya tentang hal itu. Klik tab Preview untuk memeriksa produk jadi.
Karena
kenyataan ini didirikan untuk mencetak dalam orientasi landscape,
sebuah screen shot beberapa disajikan untuk menunjukkan laporan akhir. Di bawah ini adalah sisi kiri laporan:
Menggulir ke kanan, kita lihat berikut:
Ke bawah, kita lihat berikut:
Pada titik ini, jika Anda ingin melakukan tweaking lebih lanjut, Anda dapat mengklik tab Desain dan melakukannya. Anda juga dapat mencetak laporan saat ini. Sebelum keluar Crystal Reports, menyimpan laporan dalam direktori yang sama dengan proyek VB Anda, dengan nama SALDEPT.RPT (Crystal Reports otomatis menambahkan ekstensi .rpt).
Tujuan sebenarnya adalah untuk dapat mencetak laporan dari program VB. The how-to untuk itu akan datang segera, tapi pertama-tama, ada laporan lain untuk membuat. Laporan
kedua adalah mirip dengan yang satu ini, kecuali bahwa itu akan
diurutkan dan subtotal dengan pekerjaan, bukan departemen. Untungnya, laporan kedua ini tidak harus dibangun dari awal. Kita dapat memodifikasi laporan pertama untuk membuat laporan kedua.
Untuk membuat laporan kedua, ikuti langkah berikut:
1. Salin file SALDEPT.RPT dan nama file SALJOB.RPT baru.
Klik dua kali SALJOB.RPT untuk membukanya di Crystal Reports 2..
3. Hilangkan layar pendaftaran dengan mengklik Batal.
4. Klik tab Design.
5. Dari Laporan menu, pilih Laporan Judul ... Kotak dialog Edit Laporan Judul muncul. Mengubah judul untuk Beban Gaji Tahunan oleh Ayub dan klik tombol Terima.
6. Dari Laporan menu, pilih Ubah Grup Ahli. Edit Grup Kotak Bagian dialog muncul. Seharusnya hanya ada satu item dalam listbox, membaca Grup # 1:. DeptMast.DeptNbr â € "A Pilih item itu dan klik OK. Lain kotak dialog Edit Bagian Grup muncul. Combo box pertama harus memiliki "DeptMast.DeptNbr" dipilih. Klik drop down dan pilih JobMast.JobNbr dan klik OK.
7. Di area header Page, klik kanan judul, pilih Edit Text Field, mengubah kata "Departemen" untuk "Job" dan klik Accept.
8. Tujuan berikutnya adalah untuk beralih bidang departemen dalam pertama # 1: JobNbr â € "Sebuah daerah dengan lapangan kerja di daerah Rincian. Untuk melakukan hal ini, lakukan langkah-langkah berikut:
a. Pindahkan nomor pekerjaan dan jabatan bidang dari garis Rincian untuk area terbuka # 1: JobNbr â € "A line.
b
Pindahkan jumlah departemen dan nama departemen bidang dari pertama #
1: JobNbr â € "A line untuk ruang sebelumnya ditempati oleh bidang
pekerjaan di garis Rincian. Mengubah ukuran kolom nama departemen sehingga cocok.
c. Pada pertama # 1: JobNbr â € "garis A, mengedit teks" Departemen: "text field sehingga mengatakan" Job: ". Pindahkan nomor pekerjaan dan jabatan bidang dekat dengan "Job:" text field dan membuat dua item berani.
d. Dalam Rincian garis, menghapus format tebal dari jumlah dan departemen departemen bidang nama.
e. Kembali di area header halaman, mengubah teks dari "Proyek #" dan "Jabatan" judul kolom "Dept #" dan "Nama Dept", masing-masing.
f. Membuat penyesuaian kosmetik yang diperlukan.
9. Pada kedua # 1: JobNbr â € "daerah A, menghapus field nomor departemen. Gantilah dengan bidang nomor pekerjaan. Untuk melakukan hal ini, buka menu Insert, pilih bidang database, dan pilih JobNbr. Resize bidang JobNbr sehingga yang cukup kecil untuk masuk di mana jumlah departemen dulu. Lepaskan koma dari format dan membuatnya berani. Mengedit bidang teks "Subtotal untuk Departemen", mengubah kata "Departemen" untuk "Job". Membuat penyesuaian kosmetik yang diperlukan.
10. Itu hanya tentang hal itu. Klik tab Preview untuk melihat hasil kerja Anda. Jika Anda ingin, kembali dan membuat penyesuaian yang Anda anggap perlu dan mencetak laporan. Setelah selesai, simpan laporan dan keluar Crystal Reports.
Cara Mencetak Crystal Report dari Program VB
Pertama, Anda harus menambahkan Crystal Report kontrol untuk toolbox VB Anda. Untuk melakukannya, pergi ke Proyek Komponen à dan periksa Crystal Report Pengendalian 4.6 dari kotak dialog Components, seperti yang ditunjukkan di bawah ini:
Crystal Reports kontrol kemudian akan muncul di toolbox VB (itu dilingkari screen shot di bawah ini):
Bentuk yang digunakan dalam aplikasi demo yang terkait dengan topik ini, bernama frmCRDemo, ditunjukkan di bawah ini. Bentuknya berisi dua set tombol pilihan array kontrol (masing-masing berisi dua tombol pilihan diindeks 0 dan 1). Opsi pertama tombol kontrol array, bernama optReport, muncul dalam bingkai berlabel "Pilih Report"; pilihan kedua tombol kontrol array, bernama optDestination, muncul dalam bingkai berlabel "Pilih Destination". The Crystal Report kontrol berganti nama rptAnnSalExp. Tidak ada properti lain dari Crystal Report kontrol ditetapkan pada desain-waktu; semua sifat yang diperlukan diatur dalam kode pada saat run-time. Hanya satu Crystal Report kontrol diperlukan untuk mencetak sejumlah laporan dari formulir. The Crystal Report control tidak terlihat pada saat run-time. Akhirnya, ada dua tombol perintah pada bentuk; tombol OK dan tombol Keluar. Tombol OK menjalankan laporan berdasarkan opsi yang dipilih oleh pengguna dalam frame di atas; tombol Keluar berakhir aplikasi.
Berikut adalah kode untuk kedua bentuk frmCRDemo dan modul standar yang disebut modCommon. Kode Crystal Reports terkait akan dijelaskan berikut daftar kode.
Kode untuk frmDemo:
Option Explicit
'------------------------------------------------- -----------------------
Private Sub Form_Load ()
'------------------------------------------------- -----------------------
CenterForm Me
End Sub
'------------------------------------------------- -----------------------
Private Sub cmdOK_Click ()
'------------------------------------------------- -----------------------
On Error GoTo cmdOK_Click_Error
Dim strReportName As String
Dim intReportDestination As Integer
Jika optReport (0) .Nilai = True Lalu
strReportName = "SALDEPT.RPT"
Lain
strReportName = "SALJOB.RPT"
End If
Jika optDestination (0) .Nilai = True Lalu
intReportDestination = crptToWindow
Lain
intReportDestination = crptToPrinter
End If
Dengan rptAnnSalExp
.ReportFileName = GetAppPath () & strReportName
.DataFiles (0) = GetAppPath () & "EMPLOYEE.MDB"
.Destination = IntReportDestination
.Action = 1 '1 = "Jalankan Laporan"
End Dengan
Exit Sub
cmdOK_Click_Error:
MsgBox "Kesalahan berikut telah terjadi:" & vbNewLine _
& Err.Number & "-" & Err.Description, _
vbCritical, _
"CmdOK_Click"
End Sub
'------------------------------------------------- -----------------------
Private Sub cmdExit_Click ()
'------------------------------------------------- -----------------------
Unload Me
End Sub
Kode untuk modCommon:
Option Explicit
'------------------------------------------------- -----------------------
Sub CenterForm publik (pobjForm As Form)
'------------------------------------------------- -----------------------
Dengan pobjForm
.Top = (Screen.Height - .Height) / 2
.Left = (Screen.Width - .Width) / 2
End Dengan
End Sub
'------------------------------------------------- -----------------------
Fungsi public GetAppPath () As String
'------------------------------------------------- -----------------------
GetAppPath = IIF (Kanan $ (App.Path, 1) = "\", App.Path, App.Path & "\")
End Function
Perhatikan bahwa dalam prosedur acara cmdOK_Click, yang strReportName variabel diatur ke "SALDEPT.RPT" atau "SALJOB.RPT", tergantung pada tombol optReport diklik. Variabel intDestination diatur baik crptToWindow atau crptToPrinter, baik built-in Crystal Reports konstanta, tergantung pada tombol optDestination
diklik (jika Anda memilih untuk mengirim laporan ke jendela, sebuah
"print preview" tipe layar muncul yang memungkinkan pengguna untuk
melihat laporan di layar, jika Anda memilih untuk mengirim laporan ke
printer, maka akan dikirim langsung ke printer default tanpa preview).
Sampel app referensi properti berikut dari Crystal Report control:
 ·
ReportFileName mengacu pada nama definisi laporan yang Anda simpan di Crystal Reports. Atau, properti ini juga dapat diatur pada desain-waktu.
 ·
Datafiles adalah Crystal Reports properti array yang menentukan file database (s) yang akan digunakan sebagai dasar untuk laporan. File yang Anda tetapkan di sini akan menimpa file database yang digunakan ketika laporan itu dibuat di Crystal Reports. Meskipun
file MDB yang berbeda dapat digunakan (di Crystal Reports desain-waktu
vs VB run-time), mereka masih harus berisi meja yang sama dan / atau
nama query, dengan struktur yang sama, yang digunakan untuk membangun
laporan.
 ·
Tujuan mengacu pada di mana Anda ingin mengarahkan output laporan. Dalam kode, Anda dapat menggunakan sebuah konstanta yang telah ditetapkan (seperti crptToPrinter) atau setara numerik seperti yang digunakan dalam kode contoh. Properti ini juga dapat diatur pada desain-waktu. Sampel aplikasi menggunakan baik crptToWindow (nilai numerik dari 0) atau crptToPrinter (nilai numerik dari 1).
 ·
Tindakan adalah properti yang memicu menjalankan laporan. Ini harus diatur ke 1 untuk menjalankan.
Download file proyek untuk sampel aplikasi di sini