Beberapa kali mampir pertanyaan tentang Crystal Report, terutama yang inti pertanyaan nya bagaimana menampilkan data dari MySQL di Crystal Report.
Sebenernya untuk sekarang Rani lebih suka pakai RDLC Reporting, tapi ini lebih ke preferensi pribadi aja sih. Di samping emang udah lama banget ga pakai si CR ini. Terakhir pakai itu waktu masih pakai VB6 yang dipasangkan dengan Crystal Report 8.5 berbarengan dengan VB.NET di Visual Studio 2005 dimana Crystal Report nya emang udah include di item listnya seperti contoh yang akan Rani pakai di post yang ini. Cuman Rani pakai VS versi 2008.
Klo Rani untuk koneksi ke database MySQL nya pakai MySQL Connector seperti yang Rani jelaskan di post yang ini:
http://rani-irsan.blogspot.com/2012/12/koneksi-vbnet-ke-mysql.html
Jadi di project ini juga Rani perlu menambahkan reference nya. Klik kanan di project node -> Add Reference...
Kemudian cari dan pilih MySQL.Data lalu klik OK.
Setelah itu kita tambahkan sebuah item baru yaitu DataSet yang berfungsi untuk mendefinisikan struktur data. Klik kanan di Project Node --> New Item...
Pilih Data, DataSet, kita boleh beri nama tapi kali ini Rani biarkan default saja. Lalu klik tombol Add.
DataSet sudah ditambahkan. Double klik untuk membuka desain dataset.
Klik kanan di area design DataSet1 -> Add -> DataTable
Di contoh ini kita akan menampilkan data dari tabel bernama class. Jadi kita beri nama class saja DataTable nya.
Tambahkan 2 buah kolom dengan klik kanan di bawah nama DataTable tadi -> Add -> Column.
Beri nama kolom sesuai dengan kolom yang ada di tabel class yaitu classcode dan classname.
Selesai dengan DataSet, jangan lupa Save All. Sekarang kita akan menambahkan sebuah report Crystal Report dengan klik kanan di node project -> Add --> New Item
Pilih Reporting, Crystal Report, beri nama kalau mau (Rani biarkan default), dan klik tombol Add.
Setelah Report CR ditambahkan buka Field Explorer, klik kanan di bagian Database Fields --> Database Expert...
Di bawah ADO.NET Datasets, Latihan.Dataset1 yang kita buat tadi muncul. Pilih DataTable class pindahkan ke kotak kanan dengan cara seperti di gambar.
Setelah DataTable class muncul di bawah Database Fields, drag kolom-kolomnya ke bagian detail. Page Header akan tergenerate secara otomatis. Tambahkan juga sebuah Text Object untuk menulis judul "Data Kategori".
Nah berikutnya adalah bagian PENTING yang sering dilupakan yaitu untuk mengatur file rpt ikut tercopy ke folder aplikasi dan ikut masuk ke dalam installer package, yaitu dengan mengatur 2 property berikut:
- Build Action = Content
- Copy to Output Directory = Copy Always
https://drive.google.com/file/d/1Ri7j_hxwj3KOROjcqM4EZUbL9qPCV26T/view?usp=sharing
File di link di atas yang khusus Rani buat untuk Visual Studio 2008 atau yang lebih awal dari itu.
Setelah di download pindahkan ke lokasi project kita dan rename jadi modDatabase.vb.
Kemudian tambahkan file ini ke project di Visual Studio dengan cara klik kanan di node project -> Add -> Existing Item....
Pilih modDatabase.vb dan klik Add.
Jika sudah ditambahkan maka akan muncul di jendela Solution explorer. Di sini yang perlu teman-teman ubah adalah di bagian GetDatabaseSetting. Ubah nilai dari variabel-variable koneksi yang ada di sana sesuaikan dengan yang teman-teman pakai.
Kemudian untuk UI kita tambahkan sebuat button dan sebuah Crystal Report Viewer di Form1.
Tulis code dibelakang form1 seperti berikut. Sebagai catatan yang Rani highlight kuning di bawah adalah inti dari cara menampilkan Crystal Report nya. Dia mengambil data source dalam bentuk DataTable. Jadi database apapun yang temen-temen gunakan, cara koneksi apapun yang temen-temen pakai (misal MySQL ADODC) yang terpenting temen-temen harus bisa mengisi data dalam sebuah DataTable yang akan menjadi datasource report.
Code:
Imports CrystalDecisions.CrystalReports.Engine
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim dt As DataTable = GetDataTable("SELECT classcode, classname FROM class")
Dim cr As ReportDocument = New ReportDocument()
cr.Load("CrystalReport1.rpt")
cr.SetDataSource(dt)
'cr.VerifyDatabase() 'if needed
CrystalReportViewer1.ReportSource = cr
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
GetDatabaseSetting()
End Sub
End Class
Coba run kemudian click Button 1.
0 Comments