Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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 :
Indoprog
1
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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
Indoprog
2
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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"
Indoprog
3
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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'"
Indoprog
4
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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”
Indoprog
5
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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.
Indoprog
6
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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;
Indoprog
7
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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," & _
Indoprog
8
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
"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
Indoprog
9
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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
Indoprog
10
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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)
Indoprog
11
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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.
Indoprog
12
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
Selanjutnya proses design report tidak jauh berbeda dengan sumber data yang berasal dari .Mdb.
Indoprog
13
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
Menampilkan Report pada Visual Basic (SQL Server) Sumber data Tabel atau View Dim Dim Dim Dim
xApp As New CRAXDRT.Application xRpt As New CRAXDRT.Report xServer As String 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 Dim Dim Dim Dim Dim
xApp As New CRAXDRT.Application xRpt As New CRAXDRT.Report crParamDefs As CRAXDRT.ParameterFieldDefinitions crParamDef As CRAXDRT.ParameterFieldDefinition xServer As String 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
Indoprog
14
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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
Indoprog
15
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
Konektivitas Crystal Report dengan Firebird melalui ODBC
Pilih More Data Sources, dan DblKlik pada Make New Connection
Indoprog
16
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
Pilih Microsoft OLE DB Provider for ODBC Drivers
Indoprog
17
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
Klik pada Use connection string, dan ketikan pada Connection string : DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=MASTERKEY;DBNAME=c:\firebirddb\fbindoprog.fdb
Indoprog
18
Pemanfaatan Crystal Report pada VB6
Indoprog
Oleh : Hendra, ST.
19
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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
Indoprog
20
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
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.
Indoprog
21
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
Kemudian file .dll berkaitan dengan jenis database driver yang digunakan :
Indoprog
22
Pemanfaatan Crystal Report pada VB6
Oleh : Hendra, ST.
Dan jenis Exporting filter yang digunakan :
Indoprog
23
Pemanfaatan Crystal Report pada VB6
Indoprog
Oleh : Hendra, ST.
24