locked
[Tanya] Bagaimana Caranya menampikan Isi Listview langsung Ke CRistal Report RRS feed

  • Pertanyaan

  • Salam Hangat Bagi Kita Semua...

    Saya ada sedikit permasalahan,
    Saya ingin Menampilkan isiitem dari listview ke cristal report..
    tapi saya bingung untuk membuat code nya di VB.Net 2010.

    mohon di bantu ya..
    Terima kasih..
    Jumat, 28 September 2012 04.47

Jawaban

  • Halo Tafarie,

    Anda sebaiknya membuat dataset lalu menggabungkan dataset tersebut pada report. Anda bisa mendapatkan referensi langkahnya dari artikel berikut:

    Generate Crystal Report

    Crystal Report from List View

    Semoga membantu.

    *Microsoft is providing this information as a convenience to you. Microsoft does not control these sites and has not tested any software or information found on these sites; therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. There are inherent dangers in the use of any software found on the Internet, and Microsoft cautions you to make sure that you completely understand the risk before retrieving any software from the Internet.*



    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Rabu, 10 Oktober 2012 08.57
    Moderator

Semua Balasan

  • hmmm...

    waduuu...
    para agan2 master... belum ada yg berkenan untuk membantu....

    semoga agan2 ada yang segera memberi solusi nya atas problem saya ini...
    Jumat, 28 September 2012 15.32
  • isi dari listview itu, merupakan hasil query database atau bukan.
    Selasa, 02 Oktober 2012 07.38
  • Halo Tefarie,

    Selamat datang dalam forum MSDN Indonesia.

    Pertama-tama kami ucapkan mohon maaf atas keterlambatan kami dalam menjawab thread anda sehubungan dengan adanya liburan nasional pada minggu yang lalu. Mohon dimaklumi.

    Apakah masalah anda sudah terselesaikan? Jika belum mungkin anda bisa jelaskan lebih detail tentang listview item yang anda miliki apakah berasal dari database atau bukan?

    Anda bisa merujuk pada artikel ini untuk langkah awal:

    Inserting contents of listview

    Ditunggu kedatangannya kembali.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Senin, 08 Oktober 2012 09.19
    Moderator
  • Terima kasih atas respon nya...
    Data di listview nya itu BUKAN dari database...

    Saya sudah Mencobanya, Namun masih ad sedikit permasalahan...
    saat saya meng-klik tombol print, hasil nya data dari listview Sudah Berhasil Masuk KE Cristal Report.
    NAMUN, Masih agak keliru,, Data yang tampil ke CR nya hanya 1 yaitu data yang paling pertama.
    Kemudian, saya close kan CR nya, Malah Muncul Lagi CR nya dengan Data Yang Ke 2.
    Begitu lah seterusnya sampai data terakhir..

    Ada yang bisa bantu gimana caranya supaya Semua Data Yang Ada Dilistview Bisa Muncul Sekaligus Kedalam CReport nya...???

    Mohon bantuannya Ya...

    Terima kasih..

            Me.Cursor = Cursors.WaitCursor
    
            ''Parameternya Saya Gunakan TextObject yang ada Di Cristal Report.
            Dim Crpt As New RPTLIST
            Dim tnama As CrystalDecisions.CrystalReports.Engine.TextObject
            Dim tqty As CrystalDecisions.CrystalReports.Engine.TextObject
            Dim thrg As CrystalDecisions.CrystalReports.Engine.TextObject
            Dim tjlih As CrystalDecisions.CrystalReports.Engine.TextObject
            Dim tmi As String = Nothing
            Dim tqy As String = Nothing
            Dim thg As String = Nothing
            Dim tlj As String = Nothing
    
            'printah Untuk Menampilkan Data Listview Ke C.report.
            For it = 0 To (LIS.Items.Count - 1)
    
                With LIS.Items(it)
    
                    tnama = Crpt.Section1.ReportObjects("tnim")
                    tmi = .SubItems(0).Text
                    tnama.Text = tmi
    
                    tqty = Crpt.Section1.ReportObjects("tqyt")
                    tqy = .SubItems(1).Text
                    tqty.Text = tqy
    
                    thrg = Crpt.Section1.ReportObjects("thggr")
                    thg = .SubItems(2).Text
                    thrg.Text = thg
    
                    tjlih = Crpt.Section1.ReportObjects("tjll")
                    tlj = .SubItems(3).Text
                    tjlih.Text = tlj
    
                End With
    
                CRVLIS.dlist.RefreshReport()
                CRVLIS.dlist.ReportSource = Crpt
                CRVLIS.ShowDialog()
    
            Next it
    
            Me.Cursor = Cursors.Default

    Hasil Dari Code Di Atas Seperti ini :

    Tampil Data PertamaTampilan Data ke 2

    Selasa, 09 Oktober 2012 04.20
  • Hi Tafarie,

    Anda perlu untuk mengubah kode looping yang anda gunakan saat ini. Anda sebaiknya menggabungkan semua listview yang ingin anda tampilkan pada Crystal Report.

    Sample kodenya seperti ini:

    CRVLIS.dlist.RefreshReport()

           For it = 0 To (LIS.Items.Count - 1)

                With LIS.Items(it)

                    tnama = Crpt.Section1.ReportObjects("tnim")

                    tmi = .SubItems(0).Text

                    tnama.Text = tmi

                    tqty = Crpt.Section1.ReportObjects("tqyt")

                    tqy = .SubItems(1).Text

                    tqty.Text = tqy

                    thrg = Crpt.Section1.ReportObjects("thggr")

                    thg = .SubItems(2).Text

                    thrg.Text = thg

                    tjlih = Crpt.Section1.ReportObjects("tjll")

                    tlj = .SubItems(3).Text

                    tjlih.Text = tlj

                End With

                

                CRVLIS.dlist.ReportSource = Crpt

                

            Next it

            CRVLIS.ShowDialog()

    Silahkan membalas kembali thread ini jika mengalami kendala.


    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Selasa, 09 Oktober 2012 08.24
    Moderator
  • Terima kasih atas bantuan anda...
    Tapi setelah saya coba ke program saya...
    Hasilnya Malah Yang Muncul Di CReport nya hanya 1 data Saja, yaitu Data yang Paling terakhir. sementara data yang  sebelumnya tidak di tampilkan..

    Apakah Looping nya msih perlu di rubah kembali..??

    Atau,

    TextObject Yang Dari CReport nya hanya bisa menampung 1 data saja..??

    Terima kasih..


    • Diedit oleh Ari Mustafa Selasa, 09 Oktober 2012 10.19
    Selasa, 09 Oktober 2012 10.18
  • Halo Tafarie,

    Anda sebaiknya membuat dataset lalu menggabungkan dataset tersebut pada report. Anda bisa mendapatkan referensi langkahnya dari artikel berikut:

    Generate Crystal Report

    Crystal Report from List View

    Semoga membantu.

    *Microsoft is providing this information as a convenience to you. Microsoft does not control these sites and has not tested any software or information found on these sites; therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. There are inherent dangers in the use of any software found on the Internet, and Microsoft cautions you to make sure that you completely understand the risk before retrieving any software from the Internet.*



    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    Rabu, 10 Oktober 2012 08.57
    Moderator
  • Halo Tafarie,

    Anda sebaiknya membuat dataset lalu menggabungkan dataset tersebut pada report. Anda bisa mendapatkan referensi langkahnya dari artikel berikut:

    Generate Crystal Report

    Crystal Report from List View

    Semoga membantu.

    *Microsoft is providing this information as a convenience to you. Microsoft does not control these sites and has not tested any software or information found on these sites; therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. There are inherent dangers in the use of any software found on the Internet, and Microsoft cautions you to make sure that you completely understand the risk before retrieving any software from the Internet.*



    Agnes Sannie [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    terima kasih atas bantuan nya...
    Setelah dipahami, data listview nya diambil dari database..
    data listview yang dari program saya, bukan diambil dari database..

    Dan Saya juga belum mengerti cara menginputkan data dari listview yang nantinya di tampung kedalam dataset, yang kemudian dataset nya itu yang menjadi datasaource untuk CR..


    Mohon diberi petunjuk nya ya, bagaimana code untuk memasukkan data listview tersebut ke CR, Dengan menggunakan Dataset..

    Terima kasih...

    Jumat, 12 Oktober 2012 15.00
  • Hallo Tafarie, salam kenal...
    Selain menggunakan dataset anda bisa menggunakan datatable sebagai source C.Report.
    Contoh kodenya:

    Dim Crpt As New RPTLIST

    Dim tmi As String = Nothing
    Dim tqy As String = Nothing
    Dim thg As String = Nothing
    Dim tlj As String = Nothing

    Dim dt As New DataTable
    With dt.Columns
        .Clear()
        .Add("tnim", GetType(String))
        .Add("tqyt", GetType(Long))
        .Add("thggr", GetType(Long))
        .Add("tjll", GetType(Long))
    End With

    Ingat, nama kolom pada datatable harus sama dengan nama field yg akan d tampilkan pd report

    For Each item As ListViewItem In LIS.Items

        tmi = item.SubItems(0).Text
        tqy = item.SubItems(1).Text
        thg = item.SubItems(2).Text
        tlj = item.SubItems(3).Text

        dt.Rows.Add(tmi, tqy, thg, tlj)

    Next

    Crpt.SetDataSource(dt)

    CRVLIS.dlist.RefreshReport()
    CRVLIS.dlist.ReportSource = Crpt
    CRVLIS.ShowDialog()

    Silahkan dicoba,... semoga bermanfaat




    • Disarankan sebagai Jawaban oleh Ahmad Rofi'i Sabtu, 13 Oktober 2012 03.14
    • Diedit oleh Ahmad Rofi'i Sabtu, 13 Oktober 2012 03.30
    Sabtu, 13 Oktober 2012 03.09
  • hallo salam kenal juga Ahmad Rofi'i..

    Terimakasih sudah maw berbagi ilmunya...

    Solusi coding nya sudah saya coba sesuai yang anda berikan,,

    NAMUN, Masih ada sedikit mslah.. dan saya jg udh otak-atik coding nya, tp gk mw juga..

    saat programnya dijalankan, dan menampilkan cr.nya..
    Muncul Pesan Error seperi ini :

    Berikut Code lengkap nya :

      Me.Cursor = Cursors.WaitCursor
    
            'variabel Pendukung
            Dim Crpt As New RPTLIST
            Dim tnama As CrystalDecisions.CrystalReports.Engine.TextObject
            Dim tqty As CrystalDecisions.CrystalReports.Engine.TextObject
            Dim thrg As CrystalDecisions.CrystalReports.Engine.TextObject
            Dim tjlih As CrystalDecisions.CrystalReports.Engine.TextObject
            Dim tmi As String = Nothing
            Dim tqy As String = Nothing
            Dim thg As String = Nothing
            Dim tlj As String = Nothing
    
            Dim dt As New DataTable
    
            tnama = Crpt.Section1.ReportObjects("tnim")
            tqty = Crpt.Section1.ReportObjects("tqyt")
            thrg = Crpt.Section1.ReportObjects("thggr")
            tjlih = Crpt.Section1.ReportObjects("tjll")
    
            With dt.Columns
                .Clear()
                .Add("tnim", GetType(String))
                .Add("tqyt", GetType(String))
                .Add("thggr", GetType(String))
                .Add("tjll", GetType(String))
            End With
    
            For Each item As ListViewItem In LIS.Items
                tmi = item.SubItems(0).Text
                tqy = item.SubItems(1).Text
                thg = item.SubItems(2).Text
                tlj = item.SubItems(3).Text
    
                dt.Rows.Add(tmi, tqy, thg, tlj)
            Next
    
            Crpt.SetDataSource(dt)  ' Muncul pesan Error Disini...
    
    
            CRVLIS.dlist.RefreshReport()
            CRVLIS.dlist.ReportSource = Crpt
            CRVLIS.ShowDialog()
    itu kira2 apa yang salah ya..???

    Sabtu, 13 Oktober 2012 04.55
  • pasti field yg d tampilkan di report bkan dri dtbase,, coba buat dtbase dgn field yg d butuhkan report & nma table nya tersrah,, dtbase bisa d buat d SQL SERVER maupun ACCESS.

    Setelah membuat dtbase buka halaman report nya trus ganti tampilan "toolbox" ke "Field Explorer"
    - klik knan pda "Database Fields"
    - klik "Database Expert..."
    - membuat koneksi dtbase baru dgn klik "Create New Connection"
    - klik "OLE DB (ADO)"
    - jika ada pilihan "Make New Connection" double klik
    - trus pilih provider yg d gunakan:

    ACCESS = "Microsoft Jet 4.0 OLE DB Provider"
    SQL SERVER = "Microsoft OLE DB Provider For SQL Server"

    yg sya pakai SQL Server, setelah itu klik NEXT

    [Dtbase ACCESS]
    - isi database name
    - database type = Access
    - jika dtbase ada paswword nya isi jet database password
    - NEXT
    -FINISH

    [SQL SERVER]
    - isi server
    - jika ingin otomatis deteksi user centang "Integrated Security"
    - pilih database
    - NEXT
    -FINISH

    setelah itu pada koneksi yg d buat akan ada nma table yg ada di dtbase
    - pilih table, bisa d double klik atau klik tombol ">"
    - klik OK

    pada "Field Explorer" pilih "Database Fields"
    didalam nya ada table dan field, setelah itu seret field ke "Section3"
    lalu jalankan program

    untuk:
    Dim tnama As CrystalDecisions.CrystalReports.Engine.TextObject
    Dim tqty As CrystalDecisions.CrystalReports.Engine.TextObject
    Dim thrg As CrystalDecisions.CrystalReports.Engine.TextObject
    Dim tjlih As CrystalDecisions.CrystalReports.Engine.TextObject

    tnama = Crpt.Section1.ReportObjects("tnim")
    tqty = Crpt.Section1.ReportObjects("tqyt")
    thrg = Crpt.Section1.ReportObjects("thggr")
    tjlih = Crpt.Section1.ReportObjects("tjll")

    tidak diperlukan....
    Sabtu, 13 Oktober 2012 06.15
  • Hallo mas Ahmad rofi'i...

    Terima kasih atas tutorial anda...
    Tapi, disini saya mencoba untuk menampilkan data dari lisvtivew Ke Cristal Report TANPA menggunakan Data base..

    data dari listview nya , saya tambahkan dari textboxt yang ada di form.



    Sabtu, 13 Oktober 2012 13.50
  • setahu saya report bisa berjalan walaupun tanpa database, tapi report membutuhkan database hanya untuk d ambil field nya, dan field itu yg akan menjadi array data pd section3.

    seperti code yg rekan gunakan, data d tampilkan ke TextObject sedangkan TextObject bukan object array sehingga data yg mau di tampilkan akan secara bergiliran mengisi TextObject yg sama sehingga data yg muncul cuma ada 1

    Senin, 15 Oktober 2012 01.28
  • terima kasih atas penjelasan nya ahmad rofi'i...

    jadi solusi nya gimana ya..?? cara untuk menampilkan data nya itu..??

    Kalau dengan menggunakan Parameter dari CR nya.. Apakah Hasilnya sama saja..???




    Senin, 15 Oktober 2012 06.03
  • saya kira hasilnya sama saja, sebenarnya lebih mudah kalau d buatkan database dulu, setelah field dari database d masukkan ke report, database sudah tidak d butuhkan karena yg d butuhkan hanya stuktur field nya saja, seperti type numeric, text,date, dll, masing2 memiliki property yg berbeda pd report

    contohnya field dg type numeric maka pd report field dg type numeric akan memiliki property u/ format number (1000 menjadi 1.000 ataupun 1.000,00)

    Senin, 15 Oktober 2012 07.10
  • Halo Om Tafarie,

    Sepertinya anda mengalami trauma dengan database. Apakah iya seperti itu? Bila tidak, maka anda hanya perlu membuat databasenya saja. Setelah itu masalah anda pasti akan terpecahkan. Dan bilamana anda mengalami kendala dengan database, maka saya akan membantu dengan database yang mudah, yang tidak memerlukan connection string, yaitu DataSet.

    Sekarang yang perlu anda lakukan adalah membuat project yang baru, berilah nama project tersebut Tafarie, yaitu nama anda. Setelah itu hapuslah Form1. Dan buatlah form baru dengan nama BuatDataSet. Setelah jadi, langsunglah masuk kedalam ke jendela kode, dan ketikkan berikut ini:

    Public Class BuatDataSet
        Private Sub BuatDataSet_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Try
                'mendeklarasikan sebuah dataset...
                'beri nama datasetnya, yaitu "dataset - latihan"...
                Using a As New DataSet("DataSet - Latihan")
                    'mendeklarasikan sebuah tabel...
                    'beri nama tabelnya, yaitu "biodata"...
                    Using b As New DataTable("Biodata")
                        'buat kolom pertama, yaitu id...
                        b.Columns.Add("ID", GetType(String))
                        'buat kolom kedua, yaitu nama lengkap...
                        b.Columns.Add("Nama Lengkap", GetType(String))
                        'simpan tabel biodata ini kedalam dataset...
                        a.Tables.Add(b)
                    End Using 'tabel biodata telah ditutup dan dihapus dari memory...
                    'mendeklarasikan sebuah tabel...
                    'beri nama tabelnya, yaitu "barang"...
                    Using b As New DataTable("Barang")
                        'buat kolom pertama, yaitu id...
                        b.Columns.Add("ID", GetType(String))
                        'buat kolom kedua, yaitu nama barang...
                        b.Columns.Add("Nama Barang", GetType(String))
                        'buat kolom ketiga, yaitu harga...
                        b.Columns.Add("Harga", GetType(Integer))
                        'simpan tabel barang ini kedalam dataset...
                        a.Tables.Add(b)
                    End Using 'tabel barang telah ditutup dan dihapus dari memory...
                    'sekarang bakukan dataset ini kedalam sebuah file...
                    'filenya akan disimpan di desktop, dengan nama "dataset - latihan.xml"...
                    'dan jangan lupa, jenis skemanya adalah xmlwriteschema, yaitu file akan ditulis secara lengkap...
                    a.WriteXml(My.Computer.FileSystem.SpecialDirectories.Desktop & "\DataSet - Latihan.xml", XmlWriteMode.WriteSchema)
                End Using 'dataset telah ditutup dan dihapus dari memory...
            Catch ex As Exception
            End Try
        End Sub
    End Class

    Setelah selesai, jangan lupa langsung menuju My Project, dan ubah nilai pada combobox Startup Form menjadi BuatDataSet. Sampai tahap ini jalankan. Setelah form berhasil ditampilkan, dalam artian tidak mengalami error. Maka coba anda lihat pada desktop anda, apakah telah tersedia sebuah file dengan nama DataSet – Latihan.xml. Bila iya, maka anda telah berhasil membuat file database.

    Sekarang buatlah sebuah form baru, dan beri nama form tersebut FormBiodata. Cobalah anda desain FormBiodata kurang lebih seperti ini:

    Yang perlu anda ketahui, disini saya tidak mengubah nama-nama control yang ada, jadi mereka menggunakan nama default.

     

    Bersambung ke thread berikutnya…

    Senin, 15 Oktober 2012 13.32
  • Setelah selesai mendesain FormBiodata, sekarang yang perlu anda lakukan adalah membuat report. <sup>1) </sup>Untuk itu buatlah crystal report yang baru, dan berilah nama LaporanBiodata. <sup>2)</sup> Ketika muncul jendela Crystal Report Gallery, langsung saja anda pilih Radio Button As A Blank Report, dan setelah itu klik tombol OK.

    Pada saat ini anda telah membuat Crystal Report Document. <sup>3)</sup> Langsung saja anda tuju Field Explorer yang ada di sebelah kiri Crystal Report Document anda, klik kananlah pada item Database Fields. Ketika muncul menu, langsung saja anda klik Database Experts…. <sup>4)</sup> Nantinya akan muncul jendela Database Experts, maka yang perlu anda lakukan kali ini adalah tuju dan expand-lah Create New Connection, setelah itu klik ganda item Database Files. <sup>5)</sup> Nantinya akan muncul jendela Open, dan seperti biasa, langsung saja menuju ke Desktop, dan pilihlah file DataSet – Latihan.xml, dan klik tombol OK untuk menutup jendela Open. Sekarang anda telah berada pada jendela Database Experts kembali. Dan lihatlah disitu, apakah file dataset anda telah terdefinisi sebagai database, bila iya berarti anda telah berhasil.

    <sup>6)</sup> Kali ini expand Dataset – Latihan anda, dan pilih Biodata sebagai Selected Tables-nya. Dan setelah itu klik tombol OK untuk menutup jendela Database Experts. <sup>7)</sup> Sampai disini, saya hanya mendesain reportnya ala-kadarnya. Karena yang terpenting kan kode dan hasil akhirnya.

    Bersambung ke thread berikutnya…

    Senin, 15 Oktober 2012 13.35
  • Sampai disini, kembalilah ke FormBiodata. Sekarang jendela Toolbox yang ada dikiri layar Visual Studio/Visual Basic anda. Carilah komponen ReportDocument milik Crystal Report, dan masukkan ke FormBiodata anda. Nantinya akan muncul jendela Choose a ReportDocuments, langsung saja anda pilih LaporanBiodata pada combobox yang tersedia. Dan setelah itu klik tombol OK untuk menutup jendela Choose a ReportDocuments.

    Setelah selesai semuanya, berarti anda telah membuat laporan biodata yang dibuat dengan crystal report bisa mengalami update report pada running nanti sebesar 50% saja. Karena yang sisanya lagi harus dilakukan secara manual. Untuk itu masuklah ke jendela kode dan ketikkan berikut ini:

    Public Class FormBiodata
        'menampung nama file yang akan dibuka...
        Dim LokasiFile As String = My.Computer.FileSystem.SpecialDirectories.Desktop & "\dataset - latihan.xml"
        'disini buttonclick menampung control button1, button2, dan tabcontrol1...
        Private Sub ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, TabControl1.SelectedIndexChanged
            Try
                'bila yang di klik adalah button1...
                If sender Is Button1 Then
                    'deklarasikan dataset...
                    Using a As New DataSet
                        'buka dan baca file sasaran...
                        a.ReadXml(LokasiFile)
                        'data source pada data grid dialihkan ke tabel biodata yang ada pada file dataset...
                        DataGridView1.DataSource = a.Tables("biodata")
                    End Using 'dataset telah ditutup dan dihapus dari memory...
                End If
                'bila yang di klik adalah button2...
                If sender Is Button2 Then
                    'deklarasikan dataset...
                    Using a As New DataSet
                        'buka dan baca file sasaran...
                        a.ReadXml(LokasiFile)
                        'hapus struktur tabel biodata...
                        a.Tables("biodata").Clear()
                        'buat struktur yang baru berdasarkan data table yang tersimpan di datagrid view...
                        a.Tables("biodata").Merge(DataGridView1.DataSource)
                        'catat perubahan dan simpan kembali pada file...
                        a.WriteXml(LokasiFile, XmlWriteMode.WriteSchema)
                    End Using 'dataset telah ditutup dan dihapus dari memory...
                End If
                'bila yang di klik adalah tabcontrol1...
                If sender Is TabControl1 Then
                    'bila yang di klik adalah tab page yang kedua ...
                    If TabControl1.SelectedIndex = 1 Then
                        'load record yang tersimpan pada file...
                        laporanBiodata1.Load()
                        'alihkan report source pada crystal report viewer ke laporan biodata...
                        CrystalReportViewer1.ReportSource = laporanBiodata1
                    End If
                End If
            Catch ex As Exception
            End Try
        End Sub
    End Class

    Setelah selesai, langsung tuju My Project, dan rubahlah nilai combobox Startup Form menjadi FormBiodata. Setelah itu jalankan, dan berikut ini yang harus anda lakukan:

    • Klik tombol Load Biodata, ini akan membuat control DataGridView menampilkan struktur table Biodata yang telah dibuat pada latihan awal.
    • DataGridView disini saya gunakan untuk menggantikan fungsi textbox saja. Jadi apapun yang ingin anda input, lakukan saja pada DataGridView yang telah tersedia.
    • Untuk tahap awal, cobalah anda isi record sebanyak 2 saja. Setelah itu klik tombol Simpan Perubahan agar record yang telah di input, ditulis kembali kedalam file.
    • Setelah itu kliklah Tab Page View Report, dan lihatlah, apakah file yang telah di input dan disimpan kedalam file, bisa dibaca oleh crystal reports.
    • Lakukanlah berulang kali, dan lihatlah pada Tab Page View Report, apakah crystal report akan mengupdate recordnya sesuai dengan apa yang anda input.
    • Biar lebih yakin lagi, matikan FormBiodata-nya setelah anda menyimpan record yang banyak, katakanlah 10 record. Setelah itu hidupkan kembali, dan klik tombol Load Biodata, apakah semua record yang telah anda input sukses ditampilkan semuanya.

    Sampai disinilah tutorial yang saya buat untuk Om Tafarie, semoga sesuai keinginan.

    Senin, 15 Oktober 2012 13.40
  • saya sudah coba tutorial yg rekan Wahyu VB .Net buat, tetapi data yg sudah d simpan tdk muncul d report pdahal d datagridview bisa muncul.

    dan setelah saya fahami code nya, pada "laporanBiodata1" tdk ditemukan pengesetan datasource, mungkin jika program yg rekan buat berjalan lancar, mungkin rekan berkenan membaginya

    soalnya saya tdk biasa menggunakan dataset, saya biasa menggunakan datatable sbgai source C.Report

    Rabu, 17 Oktober 2012 08.23
  • Halo Om Ahmad Rofi'i,

    Sepertinya om masih belum mengerti cara kerja DataSet. Jadi wajar saja bila om merasa tidak cocok dengan DataSet. Pada dasarnya cara kerja DataSet sama seperti Microsoft Access, yaitu satu file yang menampung semua tabel dan query. Jadi berapapun banyaknya tabel dan query yang dimiliki, maka hanya cukup ditampung didalam satu file saja.

    Mengenai tabel (datatable), anda hanya perlu memanggilnya melalui dataset, dikarenakan kebetulan pada tutorial yang saya berikan, datatable merupakan satu bagian dari dataset. Semisal pada thread saya yang terakhir, saya memanggil tabel biodata dengan syntax:

    a.Tables("Biodata")

    atau bisa juga saya memanggilnya seperti ini:

    a.Tables(0)

    lantaran tabel biodata adalah tabel pertama yang disimpan kedalam DataSet. Saya sudah pernah sharing di forum ini mengenai DataSet, berikut ini link-nya:

    http://social.msdn.microsoft.com/Forums/id-ID/visualbasicid/thread/bb2ea273-d845-4370-9fae-45cec00ec5c9,

    http://social.msdn.microsoft.com/Forums/id-ID/visualbasicid/thread/d6dca812-c147-4bcf-8880-4b3e401e346b,

    http://social.msdn.microsoft.com/Forums/id-ID/visualbasicid/thread/0a22f428-806b-4518-b6ea-f1a746ffc016.

    mudah-mudahan aja Om Ahmad Rofi'i bisa menerima keberadaan DataSet, hehehe. Kalo ada yang ingin ditanyakan lagi, mohon membuat thread yang baru.

    Rabu, 17 Oktober 2012 09.09
  • Om Ahmad Rofi’I berkata:

    saya sudah coba tutorial yg rekan Wahyu VB .Net buat, tetapi data yg sudah d simpan tdk muncul d report pdahal d datagridview bisa muncul.dan setelah saya fahami code nya, pada "laporanBiodata1" tdk ditemukan pengesetan datasource, mungkin jika program yg rekan buat berjalan lancar, mungkin rekan berkenan membaginya…

    Tanggapan saya:

    Pengesetan data source sudah saya lakukan, pada thread kedua, lihat langkah ke 3 hingga 6, memang sih gambar yang sediakan rada kecil, maklumlah takut gak bisa kesimpan. Harap maklumlah, hehehe.

    Rabu, 17 Oktober 2012 09.28
  • Sampai disini, kembalilah ke FormBiodata. Sekarang jendela Toolbox yang ada dikiri layar Visual Studio/Visual Basic anda. Carilah komponen ReportDocument milik Crystal Report, dan masukkan ke FormBiodata anda. Nantinya akan muncul jendela Choose a ReportDocuments, langsung saja anda pilih LaporanBiodata pada combobox yang tersedia. Dan setelah itu klik tombol OK untuk menutup jendela Choose a ReportDocuments.

    Setelah selesai semuanya, berarti anda telah membuat laporan biodata yang dibuat dengan crystal report bisa mengalami update report pada running nanti sebesar 50% saja. Karena yang sisanya lagi harus dilakukan secara manual. Untuk itu masuklah ke jendela kode dan ketikkan berikut ini:

    Public Class FormBiodata
        'menampung nama file yang akan dibuka...
        Dim LokasiFile As String = My.Computer.FileSystem.SpecialDirectories.Desktop & "\dataset - latihan.xml"
        'disini buttonclick menampung control button1, button2, dan tabcontrol1...
        Private Sub ButtonClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, TabControl1.SelectedIndexChanged
            Try
                'bila yang di klik adalah button1...
                If sender Is Button1 Then
                    'deklarasikan dataset...
                    Using a As New DataSet
                        'buka dan baca file sasaran...
                        a.ReadXml(LokasiFile)
                        'data source pada data grid dialihkan ke tabel biodata yang ada pada file dataset...
                        DataGridView1.DataSource = a.Tables("biodata")
                    End Using 'dataset telah ditutup dan dihapus dari memory...
                End If
                'bila yang di klik adalah button2...
                If sender Is Button2 Then
                    'deklarasikan dataset...
                    Using a As New DataSet
                        'buka dan baca file sasaran...
                        a.ReadXml(LokasiFile)
                        'hapus struktur tabel biodata...
                        a.Tables("biodata").Clear()
                        'buat struktur yang baru berdasarkan data table yang tersimpan di datagrid view...
                        a.Tables("biodata").Merge(DataGridView1.DataSource)
                        'catat perubahan dan simpan kembali pada file...
                        a.WriteXml(LokasiFile, XmlWriteMode.WriteSchema)
                    End Using 'dataset telah ditutup dan dihapus dari memory...
                End If
                'bila yang di klik adalah tabcontrol1...
                If sender Is TabControl1 Then
                    'bila yang di klik adalah tab page yang kedua ...
                    If TabControl1.SelectedIndex = 1 Then
                        'load record yang tersimpan pada file...
                        laporanBiodata1.Load()
                        'alihkan report source pada crystal report viewer ke laporan biodata...
                        CrystalReportViewer1.ReportSource = laporanBiodata1
                    End If
                End If
            Catch ex As Exception
            End Try
        End Sub
    End Class

    Setelah selesai, langsung tuju My Project, dan rubahlah nilai combobox Startup Form menjadi FormBiodata. Setelah itu jalankan, dan berikut ini yang harus anda lakukan:

    • Klik tombol Load Biodata, ini akan membuat control DataGridView menampilkan struktur table Biodata yang telah dibuat pada latihan awal.
    • DataGridView disini saya gunakan untuk menggantikan fungsi textbox saja. Jadi apapun yang ingin anda input, lakukan saja pada DataGridView yang telah tersedia.
    • Untuk tahap awal, cobalah anda isi record sebanyak 2 saja. Setelah itu klik tombol Simpan Perubahan agar record yang telah di input, ditulis kembali kedalam file.
    • Setelah itu kliklah Tab Page View Report, dan lihatlah, apakah file yang telah di input dan disimpan kedalam file, bisa dibaca oleh crystal reports.
    • Lakukanlah berulang kali, dan lihatlah pada Tab Page View Report, apakah crystal report akan mengupdate recordnya sesuai dengan apa yang anda input.
    • Biar lebih yakin lagi, matikan FormBiodata-nya setelah anda menyimpan record yang banyak, katakanlah 10 record. Setelah itu hidupkan kembali, dan klik tombol Load Biodata, apakah semua record yang telah anda input sukses ditampilkan semuanya.

    Sampai disinilah tutorial yang saya buat untuk Om Tafarie, semoga sesuai keinginan.

    halo om wahyu vb.net..

    terima kasih atas tutorial nya..
    setelah saya pelajari, dan ikuti langkah2 nya,, saya ad sedikit permasalahan pada bagian memilih Laporan dari reportdocument..
    saat saya memilih laporanbioada, muncul pesan seperti ini... :


    itu dimana salah nya ya..??
    dan bagaimana solusinya..??
    udah dikotak katik, gk nemu2..

    Terima kasih..

    Kamis, 18 Oktober 2012 05.10
  • Halo Om Tafarie,

    Untuk kasus anda mungkin ada yang terlewatkan. Sayang saya tidak bisa membantu, lantaran saya tidak mempunyai Visual Basic 2010 seperti milik om. Tapi pada versi 2005 dan 2008, semua berjalan sukses. Untuk sementara saya hanya bisa memberikan sample-nya saja, tujulah kemari:

    DataSet Ke Crsytal Report

    Semoga membantu.

    Kamis, 18 Oktober 2012 07.03
  • Halo Om Tafarie,

    Untuk kasus anda mungkin ada yang terlewatkan. Sayang saya tidak bisa membantu, lantaran saya tidak mempunyai Visual Basic 2010 seperti milik om. Tapi pada versi 2005 dan 2008, semua berjalan sukses. Untuk sementara saya hanya bisa memberikan sample-nya saja, tujulah kemari:

    DataSet Ke Crsytal Report

    Semoga membantu.

    slmt mlm om wahyu,,
    setelah saya cermati, ternyata itu tutorial nya sama saja ya..

    jdi gimana ya om wahyu,,??
    apakah ada cara yg lainnya..??
    soalnya, program yg saya buat itu, agar tidak menggunakan tabeltemporary saja,,
    Nantinya jika data yg sudah di tambahkan ke listview, kemudian di print ke CR, stelah selesai mencetak data nya ke CR,,

    data yang ada dilkistview nya dihapus..

    Terima kasih..

    Kamis, 18 Oktober 2012 12.49
  • halo Tafarie,,

    sepertinya masalah anda belum terselesaikan, sebenarnya jika anda cermati dari posting pertama smpai terakhir, masalah anda pasti sudah terselesaikan

    untuk C.Report anda masih membutuhkan database untuk fiend nya
    untuk database anda bisa menggunakan tutorial dari rekan Wahyu VB .Net yaitu XML

    Try
    	Using ds As New DataSet("Database")
                    Using dt As New DataTable("Biodata")
    		        dt.Columns.Add("tnim", GetType(String))
    		        dt.Columns.Add("tqyt", GetType(Long))
    		        dt.Columns.Add("thggr", GetType(Long))
    		        dt.Columns.Add("tjll", GetType(Long))
    		        ds.Tables.Add(dt)
    		End Using
    		
    		Dim LokasiFile As String = My.Computer.FileSystem.SpecialDirectories.Desktop & "\Database.xml"
    		ds.WriteXml(LokasiFile, XmlWriteMode.WriteSchema)
    	End Using
    Catch ex As Exception
    End Try

    ikuti langkah tersebut hingga memasukkan object field ke C.Report

    setelah itu ada tdknya file database (xml) di komputer anda tdk akan berpengaruh

    masukkan kode berikut di tombol print untuk menampilkan isi listview ke C.Report

    Using dt As New DataTable
    	dt.Columns.Add("tnim", GetType(String))
    	dt.Columns.Add("tqyt", GetType(Long))
    	dt.Columns.Add("thggr", GetType(Long))
    	dt.Columns.Add("tjll", GetType(Long))
    	
    	For Each item As ListViewItem In LIS.Items
    		tmi = item.SubItems(0).Text
    		tqy = item.SubItems(1).Text
    		thg = item.SubItems(2).Text
    		tlj = item.SubItems(3).Text
    
    		dt.Rows.Add(tmi, tqy, thg, tlj)
    	Next
    	
    	Dim Crpt As New RPTLIST
    	Crpt.SetDataSource(dt)
    	
    	CRVLIS.dlist.RefreshReport()
    	CRVLIS.dlist.ReportSource = Crpt
    	CRVLIS.ShowDialog()
    End Using

    untuk mengosongkan listview anda tinggal menambahkan kode berikut

    LIS.Items.Clear()

    setelah program anda selesai coba anda hapus file database xml nya, alhasil program anda akan tetap berjalan dengan lancar karena C.Report tdk terikat dengan database dan fungsi database sudah d gantikan dengan datatable

    • Disarankan sebagai Jawaban oleh Wahyu VB .Net Jumat, 19 Oktober 2012 05.25
    Jumat, 19 Oktober 2012 02.55
  • Terima kasih banyak Mastah Ahmad Rofi'i
    rela bikin akun buat ucap terimakasih :D
    codingan yg teratas selalu diminta database login
    tp
    codingan yang ini sangat manjur
    tp ada sedikit kekurangan nih
    untuk variable (tmi, tqy, thg, tlj) belum diinisialisasi atau deklarasikan
    thanks mastah ahmad


    ini hasil yg sudah saya rubah semoga bermanfaat

    (vs2010)

    Sub cetak_report(ByVal xtglawal As Date, ByVal xtglakhir As Date)
            Dim Kode_Barang, Nama_Barang As String
            Dim Stok_Akhir, Jumlah_Keluar, Jumlah_Terpakai, Stok_Awal As Integer
            Using dt As New DataTable

                dt.Columns.Add("Kode Barang", GetType(String))
                dt.Columns.Add("Nama Barang", GetType(String))
                dt.Columns.Add("Stok Akhir", GetType(Integer))
                dt.Columns.Add("Jumlah Keluar", GetType(Integer))
                dt.Columns.Add("Jumlah Terpakai", GetType(Integer))
                dt.Columns.Add("Stok Awal", GetType(Integer))

                For Each item As ListViewItem In lvbrg.Items
                    Kode_Barang = item.SubItems(0).Text
                    Nama_Barang = item.SubItems(1).Text
                    Stok_Akhir = item.SubItems(2).Text
                    Jumlah_Keluar = item.SubItems(3).Text
                    Jumlah_Terpakai = item.SubItems(4).Text
                    Stok_Awal = item.SubItems(5).Text

                    dt.Rows.Add(Kode_Barang, Nama_Barang, Stok_Akhir, Jumlah_Keluar, Jumlah_Terpakai, Stok_Awal)
                Next

                Dim Crpt As New Cr_tester
                Crpt.SetDataSource(dt)


                Crpt.SetParameterValue("xtglawal", xtglawal)
                Crpt.SetParameterValue("xtglakhir", xtglakhir)

                Dim objX As New formcetak
                objX.crview.RefreshReport()
                objX.crview.ReportSource = Crpt
                objX.crview.Zoom(100)
                objX.crview.ShowGroupTreeButton = False
                objX.WindowState = FormWindowState.Maximized
                objX.ShowDialog()
            End Using

     Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            Call cetak_report(tglawal.Value, tglakhir.Value)
        End Sub

    Rabu, 13 Juli 2016 08.35