MORPHICSOFT 2012
HOW TO CALL A REPORT IN VB.NET WITH PROTECTED PASSWORD DATABASE WIRAT
2012
TAMAN DUTA BLOK D.19 NO.2 BEKASI UTARA
Prakata Penulis Akhirnya Penulis dapat kembali berbagi ilmu tentang VB.Net mudah-mudahan bias bermanfaat. Kali ini akan dibahas bagaimana cara singkat untuk menampilkan sebuah report (Crystal Report) dengan database Ms. Access 2007 pada VB.Net tulisan ini pun terinspirasi saat Penulis sendiri sedang membuat sebuah aplikasi yang agak sedikit rumit, dimana harus menampilkan data dari beberapa table. Yang pada awalnya menggunakan trik query Inner Join namun itu tidak menghasilkan apa yang di inginkan saat report tampil. Dan sama seperti halnya tutorial-tutorial sebelumnya yang dibuat Penulis beranggapan bahwa semua pembaca sudah memahami dasar penggunaan Crystal Report dan VB.Net itu sendiri. Artinya disini Penulis tidak akan menjelaskan bagaimana membuat reportnya. Kami anggap report sudah dibuat terlebih dulu dengan baik dan benar. Pada tutorial ini akan dibuatkan report melalui penggunaan Dataset yang disediakan oleh Visual Studio Net. Mari belajar bersama dan memajukan dunia pendidikan IT di Indonesia. Bekasi, 03 April 2012 Polymorphic372
2
Cara Pertama 1. Buatlah sebuah Class untuk koneksi database. 2. Buatlah sebuah Form untuk menampilkan report. Pada Class koneksi database tuliskan script berikut : ####################################################### Imports System.Data Imports System.Data.OleDb Namespace AKSES_DATABASE Public Class DATABASEClass Dim KONEKSI As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" _ & "Data Source=PARKINGDB.accdb;" _ & "Jet OLEDB:Database Password=1234;") Public Function BUKAKONEKSI() As OleDbConnection KONEKSI.Open() Return KONEKSI End Function Public Function TUTUPKONEKSI() As OleDbConnection KONEKSI.Close() Return KONEKSI End Function End Class End Namespace
############################################################
3
Pada Form report tuliskan script berikut : ############################################################### Imports CrystalDecisions.CrystalReports.Engine Imports CrystalDecisions.ReportSource Imports CrystalDecisions.Shared Public Class USERREPORTForm Dim KONEKSI As New AKSES_DATABASE.DATABASEClass Sub REPORT_USER() Dim SQLRPTUSER As String Dim RptUser As New USER '(USER_DATA = nama (.rpt) Dim FrmReport As New USERForm '(USER_DATA_REPORTForm = nama form untuk menampilkan CrystalReportViewer) SQLRPTUSER = "SELECT * FROM LOGINTabel ORDER BY IDUSER DESC" DTA = New OleDb.OleDbDataAdapter(SQLRPTUSER, KONEKSI.BUKAKONEKSI) DTA.Fill(DTS, "LOGINTabel") RptUser.Load(Application.StartupPath & "/USER.rpt") RptUser.SetDataSource(DTS) CRYUSER.ReportSource = RptUser '(CrysRptUSER = nama CrystalReportViewer) End Sub Private Sub USERREPORTForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call REPORT_USER() End Sub ###########################################################################
4
Maka report yang tampil adalah sebagai berikut :
5
Cara Kedua 1. Buatlah sebuah Class untuk koneksi database. 2. Buatlah sebuah Form untuk menampilkan report. Tidak perlu kembali menuliskan langkah pertama, karena sudah dibuat sebelumnya. Langsung saja ke langkah kedua untuk membuatkan form report. Kemudian tuliskan script berikut : #################################################################
Imports System.Data Imports System.Data.OleDb Public Class KARCISMASUKREPORTForm Dim KONEKSI As New AKSES_DATABASE.DATABASEClass Dim RPTKARCIS As New KARCISMOBIL Dim CMD As New OleDbCommand Dim DTA As New OleDbDataAdapter Sub PRINT_KARCIS() KONEKSI.TUTUPKONEKSI() CMD.CommandText = "SELECT * FROM MOBILTabel WHERE IDPARKIRMOBIL = 'MOB00004'" CMD.Connection = KONEKSI.BUKAKONEKSI DTA.SelectCommand = CMD DTA.Fill(DTS, "MOBILTabel") KONEKSI.TUTUPKONEKSI() CMD.CommandText = "SELECT * FROM MOBILMASUKTabel" CMD.Connection = KONEKSI.BUKAKONEKSI DTA.SelectCommand = CMD DTA.Fill(DTS, "MOBILMASUKTabel") KONEKSI.TUTUPKONEKSI() CMD.CommandText = "SELECT * FROM AREATabel"
6
CMD.Connection = KONEKSI.BUKAKONEKSI DTA.SelectCommand = CMD DTA.Fill(DTS, "AREATabel") KONEKSI.TUTUPKONEKSI() CMD.CommandText = "SELECT * FROM LOGINTabel" CMD.Connection = KONEKSI.BUKAKONEKSI DTA.SelectCommand = CMD DTA.Fill(DTS, "LOGINTabel") RptKARCIS.Database.Tables("MOBILTabel").SetDataSource(DTS.Tables("MOBILTabel")) RptKARCIS.Database.Tables("MOBILMASUKTabel").SetDataSource(DTS.Tables("MOBILMASUKTa bel")) RptKARCIS.Database.Tables("AREATabel").SetDataSource(DTS.Tables("AREATabel")) RptKARCIS.Database.Tables("LOGINTabel").SetDataSource(DTS.Tables("LOGINTabel")) CRYSKARCISMOBIL.RefreshReport() CRYSKARCISMOBIL.Refresh() CRYSKARCISMOBIL.ReportSource = RPTKARCIS End Sub Private Sub KARCISMASUKREPORTForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Call PRINT_KARCIS() End Sub End Class
##################################################################
7
Maka report akan tampil sebagai berikut :
8
B.Wiratmojo Kuliah D3nya diselesaikan pada tahun 2008 lalu di Kampus STMIK Bina Insani, Jurusan Teknik Informatika dan kemudian kembali melanjutkan Kuliah S1 pada tahun 2011 ditempat dan jurusan yang sama. Saat ini bekerja di PT Bridgestone Tire Indonesia sejak 2008. Bercita-cita dapat selalu mendedikasikan dirinya dalam bidang IT Indonesia dan Dunia. Email :
[email protected] or
[email protected]
Link : bambangwiratmojo.blogspot.com
9