Selasa, 08 Oktober 2013

Membuat Laporan Berparameter di VB.NET

1.      Buat Project baru
2.      Ubah nama form menjadi ‘lp_parameter’
3.      Tambahkan object Crystal Report Viewer ke form lp_parameter

 emukan ganti terlebih dahulu frameworknya dengan cara seperti berikut :
Pilih :
Lalu pilih :
Lalu OK
4.      Beri nama viewernya dengan ‘view_parameter’
Pilih Blank Report Saja
5.      Buatlah Dataset dengan cara :
Pilih :
Kemudian pilih :
Beri nama :
6.      Lalu Isilah dataset dengan Database ‘perdagangan’
Ketikan nama Server 
Lalu OK
Drag semua tabel ke dalam field dataset
Hingga akhirnya dataset akan seperti ini :
Jangan lupa simpan
7.      Buatlah modul koneksi
Lalu isi koding modul seperti ini :
Imports System.Data.SqlClient
Module koneksi
    Dim con As SqlConnection
    Public Function konek() As SqlConnection
        con = New SqlConnection("server = AMPHIBI\SQLEXPRESS;database =perdagangan;integrated security = true")
        con.Open()
        Return con
    End Function
End Module

8.      Sekarang desain tampilan file rpt yang dibuat kira-kira seperti ini :
9.      Kemudian masukan databasenya dengan cara :
Klik kanan Database Fields
Pilih source dari Project Data dan masukan semua tabel dengan klik >
10.  Masukan file rpt ke dalam crystal report viewer dengan cara :
Masuk form ‘lp_parameter’ lalu pilih objek crystal report viewer dalam form tersebut ‘view_parameter’ dan klik segitiga hitam kecil


11.  Mulailah pengkodingan di dalam form ‘lp_parameter’

Imports System.Data.SqlClient
Imports CrystalDecisions.CrystalReports.Engine
Public Class lp_parameter

    Dim rpt As New report_parameter 'file rpt yang dibuat
    Dim rd As SqlDataReader
    Dim cmd As SqlCommand
    Dim ds As DataSet
    Dim adp As SqlDataAdapter
    Dim tmp As String

    Dim myConnection As SqlConnection
    Dim connection, barang, h_transaksi, d_transaksi As String
    Dim myDA As New SqlDataAdapter
    Dim myDS As New ds_laporan 'Dataset yang dibuat

    Sub tampil()
        myDS.Reset()
        connection = "server = AMPHIBI\SQLEXPRESS;database = perdagangan;integrated security = true"
        d_transaksi = " select* from d_transaksi where no_transaksi = '" & no_trans.Text & "'"
        h_transaksi = "select * from h_transaksi where no_transaksi = '" & no_trans.Text & "'"
        barang = "select * from barang"
        myConnection = New SqlConnection(connection)
        Try
            myConnection.Open()
            cmd = New SqlCommand(d_transaksi, myConnection)
            myDA.SelectCommand = cmd
            myDA.Fill(myDS, "d_transaksi")
            cmd = New SqlCommand(h_transaksi, myConnection)
            myDA.SelectCommand = cmd
            myDA.Fill(myDS, "h_transaksi")
            cmd = New SqlCommand(barang, myConnection)
            myDA.SelectCommand = cmd
            myDA.Fill(myDS, "barang")
            rpt.SetDataSource(myDS)
            view_parameter.ReportSource = rpt
        Catch Excep As Exception
            MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Sub filter()
        myDS.Reset()
        connection = "server = AMPHIBI\SQLEXPRESS;database = perdagangan;integrated security = true"
        d_transaksi = "select * from d_transaksi"
        h_transaksi = "select * from h_transaksi where month(tanggal) = '" & Strings.Mid(pick.Text, 4, 2) & "' and day(tanggal) = '" & Strings.Left(pick.Text, 2) & "' and year(tanggal) = '" & Strings.Right(pick.Text, 4) & "'"
        barang = "select * from barang"
        myConnection = New SqlConnection(connection)
        Try
            myConnection.Open()
            cmd = New SqlCommand(d_transaksi, myConnection)
            myDA.SelectCommand = cmd
            myDA.Fill(myDS, "d_transaksi")
            cmd = New SqlCommand(h_transaksi, myConnection)
            myDA.SelectCommand = cmd
            myDA.Fill(myDS, "h_transaksi")
            cmd = New SqlCommand(barang, myConnection)
            myDA.SelectCommand = cmd
            myDA.Fill(myDS, "barang")
            rpt.SetDataSource(myDS)
            view_parameter.ReportSource = rpt
        Catch Excep As Exception
            MessageBox.Show(Excep.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End Try
    End Sub

    Private Sub lp_parameter_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        cmd = New SqlCommand("select no_transaksi from h_transaksi", koneksi.konek)
        rd = cmd.ExecuteReader
        While rd.Read
            With no_trans
                .Items.Add(rd(0))
            End With
        End While
        rd.Close()
    End Sub

    Private Sub pick_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pick.ValueChanged
        filter()
    End Sub

    Private Sub no_trans_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles no_trans.SelectedIndexChanged
        tampil()
    End Sub
End Class

12.  Jika terjadi eror seperti ini
maka editlah app.config, seperti berikut :
Ganti bagian yang ditandai (dimulai dari <startup>)
Dengan :
<startup useLegacyV2RuntimeActivationPolicy="true">

    <supportedRuntime version="v4.0"/>
  </startup>
</configuration>

Lampiran (Database):

Tidak ada komentar:

Posting Komentar