Pemanfaatan Crystal Report Pada VB6
Pemanfaatan Crystal Report Pada VB6
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
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
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
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
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
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
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
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
"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
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
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 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
Selanjutnya proses design report tidak jauh berbeda dengan sumber data yang berasal dari .Mdb.
Indoprog
13
Pemanfaatan Crystal Report pada VB6 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 :
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
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
Pilih More Data Sources, dan DblKlik pada Make New Connection
Indoprog
16
Indoprog
17
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
Indoprog
19
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
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
Kemudian file .dll berkaitan dengan jenis database driver yang digunakan :
Indoprog
22
Indoprog
23
Indoprog
24