Friday, February 5, 2016

Membuat Crystal Report visual basic.Net 2010

Dalam sebuah aplikasi khususnya pemograman yang menggunakan database sebagai media penyimpan data, biasanya dibutuhkan sebuah laporan atau reporting dari aplikasi yang kita buat. dalam postingan kali ini, akan saya paparkan bagaimana untuk membuat sebuah Crystal Report pada bahasa pemograman visual basic.Net 2010 dengan Ms. Access sebagai databasenya.
>> Untuk memulai membuat sebuah reporting dari sebuah aplikasi database, cara pertama buka project aplikasi visual basic yang telah kita buat sebelumnya, Hingga jendela project aplikasi telah tampil seperti contoh aplikasi dibawah ini,
https://49012029riinanda.files.wordpress.com/2012/10/6-1.jpg?w=155&h=300
>> Nah, setelah aplikasi yang akan kita buatkan crystal reportnya tampil,,langkah selanjutnya buat sebuah folder report untuk menyimpan file project Crystal Report yang akan kita buat, caranya klik kanan pada aplikasi anda pada jendela Solution Explorer, klik Kanan project>>Add>>New Folder, Namai foleder baru tersebut dengan nama Laporan
>> Selanjutnya klik kanan pada folder Laporan>>Add>New Item
https://49012029riinanda.files.wordpress.com/2012/10/6-3.jpg?w=300&h=225
>> Kemudian setelah masuk jendela New Add Item, Pilih  Reporting pada Installed Tempalates >> Crystal Reports >> Kemudian buat nama file project crystal reports anda >> , mislnya dalam aplikasi ini rptDataSiswaX
https://49012029riinanda.files.wordpress.com/2012/10/6-4.jpg?w=300&h=175
>>Selanjutnya akan tampil  Crystal Report Gallery ,>> Pilih As Blank Report>>OK.
https://49012029riinanda.files.wordpress.com/2012/10/6-5.jpg?w=273&h=300
>>Sehingga tampil project Crystal Report seperti berikut
https://49012029riinanda.files.wordpress.com/2012/10/6-6.jpg?w=300&h=168
>> Setelah itu langkah selanjutnya pada bar Field Explorer klik kanan Database Fields >> Database Expert>>Create New Connection>>OLE DB>>pilih Microsoft Office 12.0 Access Database Engine>>Next.
https://49012029riinanda.files.wordpress.com/2012/10/6-7.jpg?w=183&h=300
https://49012029riinanda.files.wordpress.com/2012/10/6-8.jpg?w=275&h=263
https://49012029riinanda.files.wordpress.com/2012/10/6-9.jpg?w=298&h=300
>>Selanjutnya pada Data Source , browse databse yang akan dijadikan crystal report pada aplikasi yang kita buat, kemudian pada Office Database Type pilih Access.
https://49012029riinanda.files.wordpress.com/2012/10/7-11.jpg?w=298&h=300
https://49012029riinanda.files.wordpress.com/2012/10/7-21.jpg?w=298&h=300
>>Kemudian setelah kita selesai mengkoneksikan accsess database dengan Crystal Report, pilih database yang akan ditampilkan pada crystal report, misalkan pada contoh dibawah, klik tblDataSiswaX kemudian pilih “>” untuk input database data siswa kedalam cyrstal report.
https://49012029riinanda.files.wordpress.com/2012/10/7-3.jpg?w=300&h=263
https://49012029riinanda.files.wordpress.com/2012/10/7-5.jpg?w=300&h=263
>>Jika koneksi berhasil, berikut adalah tampilan project dari Cystal Report, Pada Database Expert drag n drop item dari database yang akan ditampilkan pada crystal report. Dari Fields Explorer > Database Fields > rptDataSiswa > Drag dan Drop Fields Number, NamaLengkap, Nis, Kelas, Agama, Alamat dan Telepon  dari Database Fields ke Section 3 (Details). Klik Special Fields, Drag dan Drop “Record Number” ke depan Fields Number yang tadi kita tambahkan, Drag dan Drop juga “Page N of M” ke Section 5 (Page Footer). Pada ToolBox pilih “Text Object” dan tambahkan ke Section 1 (Report Header) dan ubah tulisan/ isinya dengan “Data Siswa Kelas X SMA Negeri 5 Bandung”.   Pada Section 2 (Page Header) terdapat beberapa “Text Object” yang secara otomatis ditambahkan ketika kita tambahkan Fields ke Section 3 tadi. Pilih semua yang ada di Section 2 dan hilangkan garis bawahnya dengan cara klik lambang U pada ToolBar. Kemudian double klik Text Object “Record Number” yang ada di Section 2 dan ganti dengan “NO”.   Pada ToolBox pilih “Box Object” dan tambahkan 1 buah ke Section 2 (Page Header) dan 1 buah ke Section 3 (Details). Sehingga hasilnya akan tampak seperti gambar di bawah ini :
https://49012029riinanda.files.wordpress.com/2012/10/7-6.jpg?w=300&h=156
https://49012029riinanda.files.wordpress.com/2012/10/7-7.jpg?w=300&h=156
>>Untuk dapat menampilkan Laporan tersebut maka diperlukan sebuah object/ kontrol yang bernama CrystalReportViewer. Untuk keperluan tersebut buat sebuah Form baru dan beri nama “LaporanDataSiswa.vb”. Dan tambahkan sebuah CrystalReportViewer ke Form tersebut. CrystalReportViewer terdapat di ToolBox>CrystalReport>CrystalReportViewer.Pada Toolbar Reporting drag and drop CrystalReportView pada form yang baru dibuat tersebut. beri nama CRDataSiswaX pada tool CrystalReportView, kemudian pada Form LaporanDataSiswaX ubah WindowsState menjadi Maximum pada bagian properties.
https://49012029riinanda.files.wordpress.com/2012/10/7-8.jpg?w=300&h=217
>>Aktifkan kembali From aplikasi yang digunakan untuk menampilkan report dan double klik Button yang digunakan untuk menampilkan reporting. Kemudian ketikkan kode program berikut ini :
Dim a As New rptDataSiswaX
Dim b As New LaporanDataSiswaX
b.CRDataSiswaX.ReportSource = a
b.ShowDialog()
Baris pertama mendeklarasikan a sebagai object dari Class rptDataSiswaX. Baris selanjutnya mendeklarasikan b sebagai object dari Class/ Form Laporan. Baris ketiga mengatur nilai Sumber Data dari CRDataSiswaX (CrystalReportViewer) yang ada di b (dalam hal ini adalah Form Laporan) bersumber dari a (yang berarti adalah Crystal Report yang tadi telah kita buat yaitu rptDataSiswaX). Dan baris terakhir untuk menampilkan Form Laporan. Sehingga pada saat running ketika diklik Button maka akan tampak seperti pada gambar di bawah ini :
https://49012029riinanda.files.wordpress.com/2012/10/7-9.jpg?w=300&h=54
https://49012029riinanda.files.wordpress.com/2012/10/aku.jpg?w=640&h=341




Imports MySql.Data.MySqlClient
Module modConnection
    Public Conn As MySqlConnection
    Public RD As MySqlDataReader
    Public DA As MySqlDataAdapter
    Public CMD As MySqlCommand
    Public DS As DataSet
    Public simpan, edit, hapus As String

    Public Sub bukaDB()
        Dim SQLConn As String
        SQLConn = "server=localhost;Uid=root;Pwd=;Database=db_inventori"
        Conn = New MySqlConnection(SQLConn)
        If Conn.State = ConnectionState.Closed Then
            Conn.Open()
        End If
    End Sub

End Module
Imports MySql.Data.MySqlClient
Public Class frmDataBarang
    Private Sub frmDataBarang_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Focus()
        Call bukaDB()
        Call isiGrid()  'Menjalankan  perintah  dari  Sub  isiGrid()
        Call isiCombo()
    End Sub

    Sub isiGrid()
        Call bukaDB()  'Panggil  koneksi  kedatabase  melalui  modul
        DA = New MySqlDataAdapter("SELECT  *  from  tb_barang", Conn)
        DS = New DataSet

        DA.Fill(DS, "tb_barang")
        DataGridView1.DataSource = DS.Tables("tb_barang"'Setting  Datasource  dari  DGV DataGridView1.ReadOnly  =  True  ‘Jadikan  DGV  hanya  ReadOnly
    End Sub

    Sub Bersih()
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        TextBox4.Text = ""
        TextBox1.Focus()
        Button1.Text = "Tambah"
    End Sub

    Sub isiCombo()
        Call bukaDB()
        CMD = New MySqlCommand("SELECT  kodebarang  From  tb_barang", Conn)
        RD = CMD.ExecuteReader
        Combobox1.Items.Clear()
        Do While RD.Read
            ComboBox1.Items.Add(RD.Item(0))
        Loop
        CMD.Dispose()
        RD.Close()
        Conn.Close()
    End Sub


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Button1.Text = "Tambah" Then
            Button1.Text = "Simpan"
            TextBox1.Focus()
        Else
            Try
                Call bukaDB()
                CMD = New MySqlCommand("SELECT  kodebarang  from  tb_barang  WHERE  kodebarang =  '" & TextBox1.Text & "'", Conn)
                RD = CMD.ExecuteReader
                RD.Read()
                If RD.HasRows Then
                    MsgBox("Maaf,  Data  dengan  kode  tersebut  telah  ada", MsgBoxStyle.Exclamation, "Peringatan")
                Else
                    Call bukaDB()
                    simpan = "INSERT  INTO  tb_barang  (kodebarang,namabarang,harga,stok) VALUES  (?,?,?,?)"
                    CMD = Conn.CreateCommand
                    With CMD
                        .CommandText = simpan
                        .Connection = Conn
                        .Parameters.Add("p1", MySqlDbType.String, 4).Value = TextBox1.Text
                        .Parameters.Add("p2", MySqlDbType.String, 30).Value = TextBox2.Text
                        .Parameters.Add("p3", MySqlDbType.Int32, 8).Value = TextBox3.Text
                        .Parameters.Add("p4", MySqlDbType.Int32, 4).Value = TextBox4.Text
                        .ExecuteNonQuery()
                    End With
                    Call isiGrid()
                    Call Bersih()
                    Call isiCombo()
                End If
            Catch ex As Exception
                MsgBox(ex.ToString, MsgBoxStyle.Critical, "Terjadi  Kesalahan")
            End Try

End  If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Call Bersih() 'Mengembalikan keadaan Form Seperti Semula
        TextBox1.Enabled = True
        ComboBox1.Text = ""
    End Sub

No comments:

Post a Comment