Menampilkan Isi ListView di Crystal Report Viewer Menggunakan VB.Net

Hai bro/sis yang berbahagia!…..Sudah hari Jumat lagi nih. Bawaannya kalo dah weekend pasti tidur larut malem dan bangun siang pastinya. It’s not a big sin, indeed. O iya bagi yang seneng programming khusus-nya VB.Net 2008, gw mau sharing ilmu dikit nih. Banyak dari kita dalam pembuatan aplikasi yang ingin mengambil nilai di ListView untuk langsung di passing ke Crystal Report untuk dijadikan laporan. Nah terkadang timbul kendala buat kita dalam menemukan coding yang tepat untuk melaksanakan perintah tersebut.

Berhubung gw baru dapet ilmu baru nga ada salahnya buat berbagi dengan bro/sis. Dalam menampilkan isi ListView ke Crystal Report dalam program gw kali ini, bro/sis nga perlu report-repot untuk buat database-nya. Dengan kata lain, program yang gw bikin ini langsung bisa berjalan tanpa berhubungan dengan SQL, Access, atau MySQL. Intinya program ini hanya membutuhkan DataSet untuk membangun koneksi dari ListView ke Crystal Report Viewer-nya.

Adapun langkah-langkahnya sebagai berikut :

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 kelar dengan Form1, maka langkah selanjutnya adalah membuat Crystal Report. Gw asumsikan teman2 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 gw kasih download link-nya. Lo harus inget dimana lo taruh file tersebut. Lanjut ke Class Name….dalam hal ini gw kasih nama ListViewData. Lo 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 gw 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. Yup, lo udah 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 buat Form untuk nampilin Crystal Report. Dalam hal ini gw buat dengan nama Form2. Di Form2, lo tinggal cari Crystal Report Viewer di ToolBox. Drag and Drop ke Form2.

9. Sekarang misi sudah selesai. Lo tinggal klik F5 untuk jalankan program-nya.

Semoga bisa membantu teman-teman programmer!!!

Anyway, seandainya program tidak dapat berjalan tolong kasih tau gw melalui comment di blog ini.

O iya bagi teman-teman yang  mengalami error berkepanjangan dan ingin mencoba program yang gw buat, bisa langsung isi comment :

Email : email teman-teman

Pesan : Kirim program-nya

Entar gw langsung kirim file program ini dalam bentuk .rar ke email teman-teman…

Thank udah nge-baca bacot gw ^-^V

-UPDATE-

Berhubung dalam 3 hari ini gw menerima kurang lebih 10 email yang menanyakan mengenai program untuk listview di pembahasan blog gw ini, maka menurut gw lebih baik untuk memberikan contoh aplikasi yang langsung bisa dijalankan. Sehingga teman-teman bisa mengutak-atik contoh program tersebut. Ini gw sharing contoh programnya di DOWNLOAD PROGRAM.

Semoga dapat membantu yah bro/sis….salam hangat =:^]

Tagged , , , , ,

19 thoughts on “Menampilkan Isi ListView di Crystal Report Viewer Menggunakan VB.Net

  1. Story added…

    Your story was featured in Populerkan.com! Here is the link to vote it up and promote it: http://populerkan.com/node/5294

  2. mai says:

    Terima kasih tutornya bagus.

    Kalau bisa satu lagi, untuk yang pakai Microsoft Report Viewer bukan CR

    Thank’s

  3. Terima kasih mai udah mau baca blog gw yah….^-^

    Ehm….tks buat sarannya. Gw akan coba bikin. Boleh minta e-mailnya. Entar lu orang pertama yang gw kirim contoh aplikasinya. hehehehe

    Gw juga baru mendalami VB.Net. Jadi kita sama2 saling mengisi….

    Big appreciate buat mai….

  4. iwan says:

    makasih atas informasinya

  5. Faishal says:

    salam kenal mas bro,ini faishal,,,saya mau tanya,kalo koding buat nginput data dari textbox ke listview gmn ya?
    jadi seumpama texbox1 nama:
    textbox 2 alamat,
    kemudian button 1 buat rekap ke listview,,caranya gmn ya?
    kemudian klo udah,koding buat reportnya gmn ya?pke Crystal report?apakah sama dengan yg diatas?

    • Salam kenal juga mas bro….^-^v

      Contoh koding mengenai cara penginputan dari textbox ke listview seperti pada sharing koding diatas. Mas bro, tinggal aplikasikan saja….Untuk koding buat reportnya juga sama persis seperti yang sudah di sharing diatas. Moga2 bisa dijalankan mas bro…

      Untuk lebih detailnya tadi gw kirim ke email mas bro : Faishal89@gmail.com
      Gw kirim contoh aplikasinya. Jadi mas bro tinggal jalankan di VB.Net-nya saja….

      Catatan : Aplikasi yang gw sharing menggunakan vb.net…..Semoga program yang gw kirim bisa dijalankan dengan smooth yah di komputer mas bro…..

      Tks sudah sudi mampir ke blog gw mas bro…..hehehe

  6. falcon says:

    saya punya code seperti berikut
    // ‘Objek dari report yang kita buat
    Dim MyRpt As New strukkwitansi

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

    ‘Add Table ke Dataset
    DS.Tables.Add(“DataTable1”)
    ‘Add Kolom ke Table
    With DS.Tables(0).Columns
    .Add(“nomorkwitansi”, Type.GetType(“System.Double”))
    .Add(“nomorjual”, Type.GetType(“System.Double”))
    .Add(“kodebarang”, Type.GetType(“System.String”))
    .Add(“namabarang”, Type.GetType(“System.String”))
    .Add(“quantity”, Type.GetType(“System.Double”))
    .Add(“hargajual”, Type.GetType(“System.Double”))
    End With
    row = DS.Tables(0).NewRow
    row(0) = txtnokwitansi.Text
    row(1) = Txtnojual.Text
    DS.Tables(0).Rows.Add(row)
    ‘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(2) = LVI.SubItems(2).Text
    row(3) = LVI.SubItems(3).Text
    row(4) = LVI.SubItems(4).Text
    row(5) = LVI.SubItems(5).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
    CrystalReportViewer1.ReportSource = MyRpt //

  7. falcon says:

    dengan code yg saya kirim diatas maka selalu tampil pesan eror seprti
    a column named ‘nomorkwitansi’ already belongs to this DataTable

    mohon pencerahannya untuk code saya dan tanggapi erornya,apa yang saya harus lakukan?
    terima kasih

    • Kalo dilihat dari coding agan falcon diatas, menurut gw agan mau menambah kolom ke datatable dengan nama kolom yang sama. Setahu gw sih nga bisa gan. Coba agan check dulu. Sebelum menambah kolom, cek dulu menggunakan columns count dan tambahin kolom tersebut jika datatable nga ada kolom yang dimaksud. Contoh :

      if not dt.columns.count > 0 then
      ‘masukan koding untuk menambah kolom disini
      end if

      Atau alternatif lain, coba agan perhatiin coding gw diatas. Didalam coding tersebut dataset yang gw buat menggunakan field1, field2, dsb. Sehingga nama tersebut tidak sama dengan kolom yang akan ditambah. Nah Menurut gw coba agan buat dengan nama yang lain….

      Kalo belum bisa kasih tau gw lagi yah…..^_^v

      Happy coding gan

  8. vina utami says:

    klo pake datagridview gmn yah caranya ?
    trus datanya diambil dari database sql
    saya pake nya vb 2010 ..
    mohon bantuannya ya ..
    makasihh
    email saya : v.utami@yahoo.com

  9. eat4life999 says:

    gan,crystal reportnya yg seri berapa yha…………..soalnya gw pk yg v 8.5 di vb nya ga ada New Items > Reporting gan…………help please gan……..

  10. gunturbledeg says:

    bro,..ini dibuat di vb 6 kira2 bisa gak iah??mohon petunjuk
    thx…

  11. gunturbledeg says:

    kira” pake vb 6 bisa g iah??
    Menampilkan Isi ListView di Crystal Report Viewer

    mohon petunjuk!!!
    thx

  12. vina says:

    kalo pngn pake datagridview tampilin di crystalreport nya gmn ya kak
    minta codingnya dong plisssss
    aku mau sidang
    tinggal itu masalhnya :((
    ditunggu banget ka ..
    email aku : v.utami@yahoo.com

    makasih kak sebelumnyaa

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: