Breaking News
Loading...
Tuesday 30 April 2013

Menampilkan Isi ListView di Crystal Report Viewer Menggunakan VB.Net



1. Pertama-tama download dulu XML Schema yang sudah dibuat.
2. Buat Form untuk eksekusi perintah. Berikut gw berikan contoh tampilannya :


*Keterangan :
1–>Textbox1
2–>Textbox2
3–>Textbox3
4–>ListView1
5–>txtCounter
6–>Button1
7–>Button2
3. Setelah tampilannya dibuat, maka masukan coding berikut. Gw buat di Form1!
———————————————————————-
Public Class Form1
Dim i As Integer
Dim namaorang, teleponorang As String
Dim usiaorang As Integer

#Region “Tampilan Untuk ListView”
‘– Membuat judul kolom untuk ListView –
Sub DaftarView()
Dim colNama, colUsia, colTelp As ColumnHeader
colNama = New ColumnHeader
With colNama
.Text = “Nama”
.TextAlign = HorizontalAlignment.Left
.Width = 70
End With
colUsia = New ColumnHeader
With colUsia
.Text = “Usia”
.TextAlign = HorizontalAlignment.Left
.Width = 120
End With

colTelp = New ColumnHeader
With colTelp
.Text = “Telepon”
.TextAlign = HorizontalAlignment.Left
.Width = 200
End With

‘–menampilkan judul kolom ke ListView –
With Me.ListView1
.Columns.Add(colNama)
.Columns.Add(colUsia)
.Columns.Add(colTelp)
.View = View.Details
.GridLines = True
End With
End Sub
‘– mengisi data pada listView –
Private Sub IsiListView()
i = Val(txtCounter.Text)
txtCounter.Text = Str(Val(txtCounter.Text) + 1)
ListView1.Items.Add(“”)
ListView1.Items(ListView1.Items.Count – 1).SubItems.Add(“”)
ListView1.Items(ListView1.Items.Count – 1).SubItems.Add(“”)
ListView1.Items(ListView1.Items.Count – 1).SubItems.Add(“”)

namaorang = TextBox1.Text
usiaorang = TextBox2.Text
teleponorang = TextBox3.Text

ListView1.Items(i).SubItems(0).Text = namaorang
ListView1.Items(i).SubItems(1).Text = usiaorang
ListView1.Items(i).SubItems(2).Text = teleponorang

End Sub
‘– Bersihkan layar isian form –
Sub Bersih()
Me.TextBox1.Clear()
Me.TextBox2.Clear()
Me.TextBox3.Clear()
End Sub
#End Region
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
Call IsiListView()

Me.TextBox1.Text = “”
Me.TextBox2.Text = “”
Me.TextBox3.Text = “”

Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, “Perhatian”)
End Try
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DaftarView()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
‘Objek dari report yang kita buat
Dim MyRpt As New crReport

‘Dataset dan Datarow objek yang diperlukan untuk membuat Data Source
Dim row As DataRow = Nothing
Dim DS As New DataSet

‘Add Table ke Dataset
DS.Tables.Add(“ListViewData”)
‘Add Kolom ke Table
With DS.Tables(0).Columns
.Add(“Field1″, Type.GetType(“System.String”))
.Add(“Field2″, Type.GetType(“System.String”))
.Add(“Field3″, Type.GetType(“System.String”))

End With
‘Loop Listview dan Menambahkan sebuah Row ke Table untuk setiap Listviewitem
For Each LVI As ListViewItem In ListView1.Items
row = DS.Tables(0).NewRow
row(0) = LVI.SubItems(0).Text
row(1) = LVI.SubItems(1).Text
row(2) = LVI.SubItems(2).Text
DS.Tables(0).Rows.Add(row)
Next

‘Set Report Source Ke Database
MyRpt.SetDataSource(DS)

‘Memasukan Report ke CRViewer Control
‘Dispose Dataset
DS.Dispose()
DS = Nothing
Form2.CrystalReportViewer1.ReportSource = MyRpt
Form2.ShowDialog()
End Sub
End Class
———————————————————————-
4. Setelah siap dengan Form1, maka langkah selanjutnya adalah membuat Crystal Report. Saya asumsikan anda sudah tau cara buatnya. Cuma yang agak sedikit beda adalah pengambilan data source-nya. Yang biasa kita menggunakan database, nah sekarang kita menggunakan DataSet….Caranya adalah setelah kita klik di properties project yang kita buat > Add> New Items > Reporting > Crystal Report > Beri nama crystal report-nya (dalam hal ini gw memakai nama “crReport”. Setelah kita klik Ok, maka kita akan dibawa ke Crystal Report Gallery. Lo tinggal klik Ok aja. Setelah itu kita langsung ke Standard Report Creation Wizard. Disitu lo pilih ADO.NET > Double Click Make New Connection > Nah kita akan dibawa ke halaman Connection. Sekarang lo tinggal pilih File Path-nya. Adapun File Path-nya sendiri adalah ReportSchema.xsd yang tadi saya kasih download link-nya. Anda harus inget dimana anda taruh file tersebut. Lanjut ke Class Name….dalam hal ini saya kasih nama ListViewData. Anda bisa isi dengan nama yang sama juga (.red ListViewData). Perhatian : Jangan centang Use DataSet from Class , langsung klik tombol finish.

5. Setelah kita klik tombol finish, maka akan berlanjut ke halaman Data Source. Lo klik tanda “>” untuk memasukan ListViewData ke Selected Tables. Terus klik Next.

6. Selanjutnya adalah ke halaman Fields. Lo tinggal klik “>>” untuk memasukan semua fields yang ada di ListViewData. Karena program yang saya buat hanya melibatkan 3 fields saja (Nama, Usia, Telepon) maka ada baiknya fields yang dipakai hanya sampai 3. Dan fields dari 4 sampai 8 lo buang. Caranya tinggal highlight satu-satu dari field 4 – field 8 dan klik “<”. Lalu klik next > next > next > finish.

7. Ya, anda sudah buat halaman Crystal Report-nya. Sekarang tinggal edit Field di Section2 (Page Header). Dan beri title : Nama -(untuk Field1), Usia -(untuk Field2), Telepon -(untuk Field3). Jangan edit Section3(Details) karena sesuai namanya “Details”, maka itu untuk value yang akan lo tampilin di Crystal Report Viewer nantinya.

8. Sekarang anda buat Form untuk nampilin Crystal Report. Dalam hal ini saya buat dengan nama Form2. Di Form2, lo tinggal cari Crystal Report Viewer di ToolBox. Drag and Drop ke Form2.

9. Sekarang kita sudah selesai. Anda tinggal klik F5 untuk jalankan program-nya.


Menampilkan Crystal Report Melalui Reportviewer di Komputer Klien

 Saya sempat berkutat dengan masalah ini hampir 2 hari lamanya. Saya cari di forum2 yang ada dan terus terang jawabannya kurang memuaskan. Bahkan terlalu teknis cara penyampaiannya. Gw yang newbie bukannya dapat inspirasi tapi malah tambah ‘down’ melihat cara penyelesaiannya. Intinya terlalu teknikal dan sulit untuk dipahami bagi yang baru belajar VB.Net. Okay, tanpa berpanjang lebar lagi gw langsung aja sharing cara penyelesaiannya biar teman2 langsung dapat menggunakannya. (Catatan : gw buat di VB.Net 2008 dan menggunakan SQL Server 2005)
Langkah-langkahnya :
  1. Pertama-tama buat dulu crystal reportnya. Saya asumsikan nama dari crystal report yang gw buat adalah crDiagnosa.
  2. Setelah itu, lo jangan lupa untuk buat Dataset.xsd -nya. Caranya gampang kok. Lo klik kanan di aplikasi buatan lo (di Solution Explorer). Terus lo klik add new item. Nah disitu lo langsung dibawa ke kolom categories yang banyak bgt. Sekarang lo pilih kategori Data. Dan di kategori tersebut lo bakalan ketemu dengan Dataset.xsd. Lo pilih dan kasih nama sesuai keinginan lo. Gw pake nama KlinikDataSet.xsd. Setelah lo buat, tinggal ikutin perintahnya aja. Lo drag database-nya ke halaman dataset yang lo buat. Ok, langkah ke 2 dah kelar.
  3. Setelah itu, lo buat report viewernya. Gampang kok, anda tinggal klik kanan di aplikasi yang anda buat (sama seperti langkah ke dua). Add new item terus pilih windows form. Lo namain deh windows form itu sesuai keinginan lo.
  4. Di windows form yang baru lo buat itu, lo masukkin property reportviewer-nya. Caranya lo cari di toolbox tab reporting. Setelah lo dapet lo buka. Nah disitu akan terlihat crystal reportviewer. Lo tinggal drag ke halaman windows form buatan lo tadi. Lo namain crystal reportviewer-nya sesuai dengan yang lo mau. Kalo gw menggunakan nama CrystalReportViewer1.
  5. Nah langkah 1-4 udah kelar. Sekarang tinggal bagian coding aja. Lo double klik di windows form-nya. Ingat jangan double klik di report viewer-nya!
  6. Ok, sekarang ini coding-nya :
—————————————————————————–
Public Class LaporanDokter      (1)
Private Sub LaporanDokter_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rpt As New crDiagnosa   (2)

Dim MyCommand As New SqlClient.SqlCommand
Dim myDA As New SqlClient.SqlDataAdapter
Dim myDS As New KlinikDataSet   (3)

Try
MyCommand.Connection = conn   (4)
MyCommand.CommandText = “SELECT * FROM tdokter”  (5)
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand

myDA.Fill(myDS, “tdokter”)
rpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = rpt  (6)

Catch Excep As Exception
MessageBox.Show(Excep.Message, “Error”, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

End Class
——————————————————————————————————–
(1) Merupakan nama windows form yang gw buat
(2) Merupakan nama crystal report gw
(3) Nama dataset yang dibuat
(4) conn —> sql connection-nya | | kalo gw udah inisiate di module login : Public conn As SqlConnection = Nothing
(5) Nama table yang berpengaruh di laporan lo
(6) CrystalReportViewer 1 –> merupakan nama crystal reportviewer yang lo buat
Ok….sekarang tinggal lo jalankan aja (F5)…..It works!!!!! Great
Sekarang muncul pertanyaan, kalo seandainya laporang yang gw buat ternyata melibatkan lebih dari 1 table gimana? Ok gampang….here we go :
—————————————————————————
Public Class LaporanDiagnosa
Private Sub LaporanDiagnosa_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rpt As New crDiagnosa

Dim MyCommand As New SqlClient.SqlCommand
Dim MyCommand1 As New SqlClient.SqlCommand

Dim myDA As New SqlClient.SqlDataAdapter
Dim myDA1 As New SqlClient.SqlDataAdapter

Dim myDS As New KlinikDataSet
Try
MyCommand.Connection = conn
MyCommand.CommandText = “SELECT * FROM tpasien”
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand

MyCommand1.Connection = conn
MyCommand1.CommandText = “SELECT * FROM tperiksa”
MyCommand1.CommandType = CommandType.Text
myDA1.SelectCommand = MyCommand1

myDA.Fill(myDS, “tpasien”)
myDA1.Fill(myDS, “tperiksa”)

rpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = rpt

Catch Excep As Exception
MessageBox.Show(Excep.Message, “Error”, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

End Class
————————————————————————–
Gampangkan?! Lo tinggal buat sql command dan sql adapternya aja…..Inget kalo ternyata table2 saling berhubungan baik itu primary key dan foreign key-nya lo harus lebih hati2. Karena entar nga mau running….
Setelah semuanya kelar lo tinggal deploy aja dan didistribusikan ke komputer klien. Di dalam deploy sistem, lo harus masukkan add file-nya semua baik itu crystal report, database, dan dataset-nya supaya running smoothly di komputer klien.
Dalam deployement sistem inget lo harus masukin pre-requisites untuk crystal report dan report viewer-nya. Karena penting untuk jalan di komputer klien….
Ok bro/sis sekian sharing dari gw….kalo ada pertanyaan langsung aja isi comment. Kita belajar dan sharing bareng. Gw juga nga jago2 bgt. Tapi setiap ilmu yang gw dapet harus di sharing biar semua jadi bisa….Bener nga guys?……
——————————————————————————————————
Berhubung ada beberapa e-mail yang sampe ke gw, dan menyatakan bahwa tidak bisa menjalankannya secara baik. Maka gw buat update-an teranyar dan gw harap bisa membantu teman-teman. Berikut coding-nya :
Imports System.Data.SqlClient
Imports System.Data

Public Class LaporanDiagnosa
Private Sub LaporanDiagnosa_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim rpt As New crDiagnosa()
Dim myConnection As SqlConnection
Dim MyCommand As New SqlCommand()
Dim myDA As New SqlDataAdapter()
Dim myDS As New KlinikDataSet()

Try
myConnection = New SqlConnection(“Data Source=.\SQLEXPRESS;Initial Catalog=bank;Integrated Security=True”)
MyCommand.Connection = myConnection
MyCommand.CommandText = “SELECT * from tdokter”
MyCommand.CommandType = CommandType.Text
myDA.SelectCommand = MyCommand

myDA.Fill(myDS, “tdokter”)
rpt.SetDataSource(myDS)
CrystalReportViewer1.ReportSource = rpt

Catch Excep As Exception
MessageBox.Show(Excep.Message, “Error”, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

End Class

Sumber : http://herosetyanofario.wordpress.com/tag/crystal-report/

0 comments:

Post a Comment

Copyright © 2014 Sumber Ilmu All Right Reserved