Upload
tri-andriyanto
View
516
Download
8
Embed Size (px)
Citation preview
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 1
Mengenal Crystal Report 8.0
Crystal report merupakan salah satu product report designer yang banyak digunakan oleh
para developer. Crystal report merupakan produk dari perusahaan Seagate. Crystal report
tersedia langsung pada Visual Basic 4.0 dan 5.0, tetapi pada Visual Basic 6.0 telah
diganti dengan Data Report yang dibuat oleh Microsoft.
Pada Visual Basic 6.0, pada dasarnya Crystal report dapat diinstall secara terpisah dari
folder \Misc yang merupakan versi 5.0.
Menjalankan Crystal Report
1. Dari Start, pilih Programs, pilih Seagate Crystal Report.
2. Akan muncul suatu Dialog box Welcome
3. Anda dapat memilih Using Report Expert untuk pembuatan report secara step by
step.
4. Step 1
5. Kemudian akan muncul dialog Choose an Expert, dan pilihlah Standard.
6. Kemudian akan muncul Standard Report Expert, yang memiliki 8 step, yaitu :
Data, Fields, Group, Total, TopN, Chart, Select, Style.
7. Klik pada Database, dan akan muncul dialog Database Explorer. Klik pada
Database Files, dan Double Klik pada Find Database File.
8. Pilih Pentacom.mdb, dan masukkan password yang sesuai, sehingga menjadi :
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 2
9. Klik pada tabel Barang, dan klik Add untuk memasukan tabel ke report.
10. Step 2
11. Klik pada Fields, dan masukkan field-field yang diinginkan. Anda dapat juga
mengubah judul untuk masing-masing kolom dengan mengatur Column Heading.
12. Step 8
13. Klik pada Style, dan pada Title ketik Laporan Data Pemasok, dan pilihlah Style
yang sesuai dengan keinginan anda.
14. Klik pada Preview Report untuk melihat hasil.
Mendesign report hasil Report Expert.
Klik pada tab design dan akan menampilkan layar design
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 3
Report Header, tulisan yang akan ditampilkan pada halaman pertama Report.
Page Header, tulisan yang akan ditampilkan pada awal tiap halaman.
Details, merupakan baris-baris yang berasal dari field-field dalam tabel.
Report Footer, tulisan yang akan ditampilkan pada halaman terakhir.
Page Footer, tulisan yang akan ditampilkan pada akhir tiap halaman.
Menyimpan design report ke file
Menyimpan report dilakukan seperti biasanya dengan menu File, Save kesebuah file
dengan extension rpt.
Menampilkan report dari Project Visual Basic
Untuk menampilkan Crystal Report ke project anda dapat dilakukan dengan
menggunakan komponen “Crystal Report Viewer Control” melalui menu Project,
Components, dan Reference ke “Crystal Report 8 Activex Designer runtime library”
CRviewer
1. Tanamkan kontrol CRViewer ke Form anda
2. Lakukan koding sebagai berikut :
Dim xApp As New CRAXDRT.Application
Dim xRpt As CRAXDRT.Report
Dim xDbf As CRAXDRT.DatabaseTable
Private Sub Form_Load()
Set xRpt = xApp.OpenReport("C:\Workshop\Pemasok.rpt")
If xTitle <> "" Then
xRpt.ReportTitle = xTitle
End If
For Each xDbf In xRpt.Database.Tables
xDbf.SetLogOnInfo "", "", "", "Pentacom"
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 4
xDbf.Location = "C:\Pentacom.Mdb"
Next
On Error GoTo Keluar
xRpt.DiscardSavedData
CRViewer1.ReportSource = xRpt
CRViewer1.ViewReport
Exit Sub
Keluar:
MsgBox "Ada Masalah Dengan Laporan !!", vbInformation, "PERHATIAN"
End Sub
Private Sub Form_Resize()
CRViewer1.Move 0, 0, Me.ScaleWidth, Me.ScaleHeight
End Sub
Membatasi data dengan Selection Formula
Anda dapat membatasi data pada saat runtime dengan menggunakan
RecordSelectionFormula
xRpt.RecordSelectionFormula = "{Pemasok.KodePemasok} >= '001' And
{Pemasok.KodePemasok} <= '100'"
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 5
Membuat report dengan Crystal Report
Jika pada pertemuan sebelumnya kita telah belajar bagaimana membuat report dengan
menggunakan Report Expert, maka pada pertemuan ini kita akan membuat report dengan
melakukan design secara langsung.
Melakukan design dengan Crystal Report
1. Pada dialog Welcome to Seagate Crystal Reports pilih As a blank report.
2. Pada dialog Data Explorer, klik pada “DataFiles”,, dan double klik pada “Find
Database File”.
3. Selanjutnya buka database C:\Pentacom.mdb dan password : Pentacom.
4. Klik pada tabel barang dan klik Add
5. Pada menu File, klik pada Summary Info, dan ketikan “Laporan Data Barang”
pada field Title.
6. Pada field explorer, Special fields, Drag Report Title ke bagian Page Header, dan
lakukan drag field KodeBarang, NamaBarang, Satuan, HargaJual
7. Klik kanan pada Formula Fields, dan pilih New:, Pada FormulaName ketikan
“SaldoAkhir”, dan buatlah formula {Barang.b0}+{Barang.b1}, dan klik pada
“Check” untuk memeriksa kebenaran dari formula yang diketik, dan akhiri
dengan klik pada “Save and Close”
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 6
8. Pada kolom @SaldoAkhir tambahkan Grand total.
Mengatur Formula pada runtime
Anda dapat menggunakan FormulaFields(n).Text, untuk memanipulasi Formula pada saat
runtime.
Contoh :
xRpt.FormulaFields(1).Text = "{Barang.b0}+{Barang.b1}+{Barang.b2}+{Barang.b3}"
untuk memperbaiki @SaldoAkhir menjadi bulan Maret.
Dengan petunjuk instruktur anda, buatlah Faktur Pembelian, Laporan Pembelian Per
Pemasok, Laporan Pembelian Per Barang.
Project
Buatlah program cetak Databarang dimana @SaldoAkhirnya disesuaikan dengan Bulan
yang akan dicetak.
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 7
Membuat report dengan Crystal Report 8.5
Crystal report 8.5 menawarkan pembuatan report yang dapat terpadu dengan project
Visual Basic 6.0, dimana pembuatan report dapat langsung dilakukan pada IDE Visual
Basic dengan menggunakan menu Project, Add Crystal Reports 8.5.
Bekerja dengan Crystal Report Designer dan ADO
1. Dari Menu Project, pilih Add Crystal Report 8.5
2. Pada Crystal Report Gallery pilih As blank Report
3. Beri jawaban Yes pada Do you want the expert to add a form containing the
Crystal Report Control Viewer ?, dan No pada Would you like the expert to
modify the project properties to set this form as the startup object ? dan Klik Ok
4. Selanjutnya dihadapan anda akan ditampilkan Crystal Report Designer
5. Klik kanan pada “Database Fields” dan pilih Add Database to report.
6. Pada dialog “Database Explorer”, pilih “More Data Source”, klik pada “Active
Data”, double klik pada “Active Data (ADO)”, dan buatlah ConnectionString
seperti biasanya, dengan menggunakan ADO
7. Buatlah datasource dengan SQL statement berikut :
SELECT Beli.Nomor, Beli.Tanggal, Beli.KodePemasok, Beli.Total, Pemasok.Nama,
Pemasok.Alamat1, Pemasok.Alamat2, BeliDetail.KodeBarang, BeliDetail.NamaBarang,
BeliDetail.Qty, BeliDetail.UnitPrice, BeliDetail.Amount
FROM Pemasok INNER JOIN (Beli INNER JOIN BeliDetail ON Beli.Nomor =
BeliDetail.Nomor) ON Pemasok.KodePemasok = Beli.KodePemasok;
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 8
8. Klik kanan pada “Group Name Fields”, dan pilih “Insert Group”, dan buatlah
group berdasarkan “Nomor”
9. Rancanglah report anda sebagai berikut :
10. Lakukan pengaturan format untuk Qty, UnitPrice, Amount, Total, PrintDate serta
PrintTime.
11. Lakukan koding pada Report jika tidak ada data yang dicetak
Private Sub Report_NoData(pCancel As Boolean)
MsgBox "Tidak Ada yang dicetak !"
End Sub
12. Modify Koding untuk Form Viewer sehingga lokasi database dapat disesuaikan
kembali sebagai berikut :
Dim Report As New CrystalReport1
Dim MyConn As New Connection
Dim MyRs As New Recordset
Private Sub Form_Load()
MyConn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0; Data
Source=C:\Pentacom.Mdb; Jet Oledb:Database Password=Pentacom;"
MyConn.Open
sSQL = "SELECT Beli.Nomor, Beli.Tanggal, Beli.KodePemasok," & _
"Beli.Total, Pemasok.Nama, Pemasok.Alamat1, Pemasok.Alamat2," & _
"BeliDetail.KodeBarang, BeliDetail.NamaBarang, BeliDetail.Qty," & _
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 9
"BeliDetail.UnitPrice, BeliDetail.Amount " & _
"FROM Pemasok INNER JOIN " & _
"(Beli INNER JOIN BeliDetail ON Beli.Nomor = BeliDetail.Nomor) " & _
"ON Pemasok.KodePemasok = Beli.KodePemasok;"
MyRs.Open sSQL, MyConn
Report.Database.SetDataSource MyRs, , 1
Screen.MousePointer = vbHourglass
CRViewer1.ReportSource = Report
CRViewer1.ViewReport
Screen.MousePointer = vbDefault
End Sub
Private Sub Form_Resize()
CRViewer1.Top = 0
CRViewer1.Left = 0
CRViewer1.Height = ScaleHeight
CRViewer1.Width = ScaleWidth
End Sub
13. Lengkapi program diatas untuk kemampuan mencetak Faktur nomor tertentu saja.
14. Tambahkan nomor baris untuk masing-masing baris faktur
15. Tambahkan PPN dan Nett
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 10
Membuat graphic dengan Crystal Report 8.5
Crystal report 8.5 menawarkan berbagai fasilitas kemudahan dalam pembuatan report,
salah satunya adalah pembuatan grafik
Bekerja dengan Crystal Report Designer dan ADO
16. Buatlah sebuah report dengan datasource dengan SQL statement berikut :
SELECT Beli.KodePemasok, Pemasok.Nama, Pemasok.Attn, Beli.Nomor, Beli.Tanggal,
Beli.Total FROM Pemasok INNER JOIN Beli ON
Pemasok.KodePemasok = Beli.KodePemasok;
17. Buatlah Group berdasarkan KodePemasok dengan klik pada toolbar
18. Rancanglah Report sebagai berikut :
19. Tambahkan Graphic Bar ke Report, dengan melakukan klik pada toolbar ,
dimana dengan pengaturan sebagai berikut :
• Place chart: Once per report : Header
• On change of : ado.KodePemasok
• Show : sum of ado.Total
• Title : Graphic Pembelian per customer
• Group Title : Nama Pemasok
• Data Title : Total
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 11
20. Lakukan pemrograman pada Visual Basic untuk membatasi pencetakan dari dan
sampai tanggal tertentu saja.
21. Aktifkan fasilitas Drill down untuk bagian detail, petunjuk : klik kanan pada
detail, dan pilih Format Section, beri tanda check pada Hide (Drill down ok)
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 12
Konektivitas Crystal Report dengan SQL Server
Design report dengan sumber data
Klik pada More Data Sources, dan DblClik pada Microsoft SQL Server
Kemudian akan muncul dialog berikut, isikan nama server, user id, password, dan nama
database sumber data.
Selanjutnya klik pada tombol Option untuk menampilakn sumber data report yang
menggunakan Storeprocedure.
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 13
Selanjutnya proses design report tidak jauh berbeda dengan sumber data yang berasal dari
.Mdb.
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 14
Menampilkan Report pada Visual Basic (SQL Server)
Sumber data Tabel atau View Dim xApp As New CRAXDRT.Application
Dim xRpt As New CRAXDRT.Report
Dim xServer As String
Dim xDatabase As String
Private Sub Form_Load()
xServer = "cdnsql”
xDatabase = "cdnAHRDMS"
Set xRpt = xApp.OpenReport("C:\fbindoprog.rpt")
xRpt.DiscardSavedData
xRpt.Database.LogOnServerEx "p2ssql.dll", xServer, xDatabase, "sa", "xxxxxx"
xRpt.Database.Tables(1).SetLogOnInfo xServer, xDatabase, "sa", "xxxxxx"
xRpt.Database.Tables(1).Location = xDatabase & ".dbo.LAPORAN_MUTASI_STOCK"
CRViewer.ReportSource = xRpt
CRViewer.ViewReport
End Sub
Catatan :
Kalau nama server/database berbeda pada saat implementasi dengan ketika design, maka
akan muncul pesan berikut :
Solusinya adalah menanbah tiga baris berikut ini :
xRpt.Database.LogOnServerEx "p2ssql.dll", xServer, xDatabase, "sa", "xxxxxx"
xRpt.Database.Tables(1).SetLogOnInfo xServer, xDatabase, "sa", "xxxxxx"
xRpt.Database.Tables(1).Location = xDatabase &".dbo.Proc(LAPORAN_MUTASI_STOCK)"
Sumber data Storeprocedure Dim xApp As New CRAXDRT.Application
Dim xRpt As New CRAXDRT.Report
Dim crParamDefs As CRAXDRT.ParameterFieldDefinitions
Dim crParamDef As CRAXDRT.ParameterFieldDefinition
Dim xServer As String
Dim xDatabase As String
Private Sub Form_Load()
xServer = "cdnsql”
xDatabase = "cdnAHRDMS"
Set xRpt = xApp.OpenReport("C:\fbindoprog.rpt")
xRpt.DiscardSavedData
xRpt.Database.LogOnServerEx "p2ssql.dll", xServer, xDatabase, "sa", "xxxxxx"
xRpt.Database.Tables(1).SetLogOnInfo xServer, xDatabase, "sa", "xxxxxx"
xRpt.Database.Tables(1).Location = xDatabase &".dbo.Proc(LAPORAN_MUTASI_STOCK)"
xRpt.EnableParameterPrompting = False
Set crParamDefs = xRpt.ParameterFields
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 15
For Each crParamDef In crParamDefs
Select Case crParamDef.ParameterFieldName
Case "@DARITANGGAL"
crParamDef.SetCurrentValue DlgLMutasiStokL.txtDariTanggal.Value
Case "@SAMPAITANGGAL"
crParamDef.SetCurrentValue DlgLMutasiStokL.txtSampaiTanggal.Value
Case "@KODELOKASI"
crParamDef.SetCurrentValue DlgLMutasiStokL.cboKodeLokasi.Text
End Select
Next
CRViewer.ReportSource = xRpt
CRViewer.ViewReport
End Sub
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 16
Konektivitas Crystal Report dengan Firebird melalui ODBC
Pilih More Data Sources, dan DblKlik pada Make New Connection
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 17
Pilih Microsoft OLE DB Provider for ODBC Drivers
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 18
Klik pada Use connection string, dan ketikan pada Connection string : DRIVER=Firebird/InterBase(r)
driver;UID=SYSDBA;PWD=MASTERKEY;DBNAME=c:\firebirddb\fbindoprog.fdb
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 19
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 20
Menampilkan report dari Project Visual Basic (Firebird)
Untuk menampilkan Crystal Report ke project anda dapat dilakukan dengan
menggunakan komponen “Crystal Report Viewer Control” melalui menu Project,
Components, dan Reference ke “Crystal Report 8 Activex Designer runtime library”
Dim xApp As New CRAXDRT.Application
Dim xRpt As New CRAXDRT.Report
Private Sub Form_Load()
Set xRpt = xApp.OpenReport("C:\fbindoprog.rpt")
xRpt.DiscardSavedData
xRpt.Database.LogOnServerEx "pdsoledb.dll", "OLE DB", "", "", "", "",
"DRIVER=Firebird/InterBase(r)
driver;UID=SYSDBA;PWD=MASTERKEY;DBNAME=c:\firebirddb\fbindoprog.fdb"
xRpt.Database.Tables(1).SetLogOnInfo "OLE DB",
"c:\firebirddb\fbindoprog.fdb", "SYSDBA", "MASTERKEY"
CRViewer.ReportSource = xRpt
CRViewer.ViewReport
End Sub
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 21
Package dan Deployment pada program VB6 yang menggunakan Crystal Report
Salah satu permasalahan yang sering ditemukan bagi programmer pemula yang
menggunakan Crystal Report pada proyek VB adalah setelah program berhasil diinstalasi
pada komputer Client tetapi laporan yang dibuat dengan Crystal Report tidak berhasil
berjalan dengan baik. (Kecuali kalau di komputer Client juga diinstalasi Crystal Report).
Masalah tersebut terjadi karena, pada package installer kita tidak mengikutsertakan
beberapa file .dll yang dibutuhkan oleh Crystal Report.
Untuk mengetahui .dll apa saja yang perlu dimasukan kedalam package installer dapat
dibaca pada file Runtime.hlp yang terdapat pada folder :
c:\program files\seagate software\crystal reports\developer files\help
Jenis file .dll yang dibutuhkan sangat tergantung bagaimana anda menggunakan Crystal
Report dalam project anda, dan kadang-kadang .dll juga membutuhkan .dll lainnya.
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 22
Kemudian file .dll berkaitan dengan jenis database driver yang digunakan :
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 23
Dan jenis Exporting filter yang digunakan :
Pemanfaatan Crystal Report pada VB6 Oleh : Hendra, ST.
Indoprog 24