Membuat Laporan dengan Periode dari VB.bet 2005

<< Sebelumnya : Tutorial dan Contoh Program – Laporan Dengan Crystal Report Pada ADO.NET – Seleksi Data Bertipe String dan Numerik – VB.NET

Memfilter data bertipe tanggal sedikit berbeda dengan tipe data bertipe string atau numerik. Pada data bertipa tanggal terdapat aturan yang harus dipenuhi antara lain :

    * Data pembanding harus dilingkupi dengan tanda #.
    * Sebaiknya fortmat tanggal system dibuat standar internasional, misalnya english (united states). Hal ini untuk menghindari kesalahan dalam membandingkan tanggal sistem komputer dengan tanggal pada SQL Server
    * Sebelum tanggal pembanding digunakan, sebaiknya tanggal tersebut diformat dengan fungsi DateSerial.

Contoh programnya adalah sebagai berikut :

Database dan tabel yang digunakan masih sama dengan pembahasan sebelumnya. Desain tampilannya adalah sebagai berikut :
Pada jendela kode program import direktif yang akan digunakan, kodenya adalah sebagai berikut :
‘direktif yang digunakan

Imports System.Data.SqlClient
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared


Buat event Form Load dan ketikkan kode-kode program berikut :
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
‘array untuk mengisi combo bulan
Dim bln() As String = _
{“Januari”, “Pebruari”, “Maret”, “April”, “Mei”, “Juni”, “Juli”, “Agustus”, “September”, “Oktober”, “November”, “Desember”}
‘membuat koneksi
xKoneksi.ConnectionString = “Server=(local);” & _
“database=db_test_transaction;UID=pakadmin;PWD=pakadmin”


‘perintah yg dipakai
xAdapter = New SqlDataAdapter(“Select * ” & _
“from tbl_jual”, xKoneksi)
‘buka koneksi
xKoneksi.Open()
‘mengisi dataset
xAdapter.Fill(xDataset)
‘bikin obj report
xReport = New lap_001
‘source untuk report
xReport.SetDataSource(xDataset)
‘isikan data ke report
‘dan ditampilkan
CrystalReportViewer1.ReportSource = xReport
‘mengisi array ke combo bulan
For b As Int16 = 0 To 11
cbo_bulan.Items.Add(bln(b))
Next
‘tampilkan info tanggal
lbl_tgl.Text = Now.ToShortDateString
‘tampilkan info waktu
lbl_jam.Text = Now.ToLongTimeString
End Sub


Buat event “Checked_Change” pada rdo_tanggal dan ketikkan kode-kode berikut :
Dim pilih As Byte
Private Sub rdo_tanggal_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdo_tanggal.CheckedChanged, rdo_bulan.CheckedChanged
‘matikan dulu
Call Kriteria_Off()
‘ambil nilai tag yg dikirim
pilih = sender.tag
‘jika tag untuk rdo_tanggal
If pilih = 1 Then
tgl_awal.Visible = True
tgl_akhir.Visible = True
lbl_sd.Visible = True
tgl_awal.Focus()
Else
‘jika rdo_bulan
cbo_bulan.Visible = True
cbo_bulan.Focus()
End If
End Sub


Prosedur tambahan yang digunakan adalah sebagai berikut :
Sub Kriteria_Off()
tgl_awal.Visible = False
tgl_akhir.Visible = False
lbl_sd.Visible = False
cbo_bulan.Visible = False
End Sub


Buat event “SelectedIndexChanged” pada kontrol combobox cbo_bulan dan ketikkan kode-kode berikut :
Dim xBln As Byte
Private Sub cbo_bulan_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbo_bulan.SelectedIndexChanged
‘ambil nilai index combo bulan
xBln = cbo_bulan.SelectedIndex
End Sub

Buat event click untuk btn_cetak dan ketikkan kode-kode berikut ini :
Private Sub btn_cetak_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_cetak.Click
Dim tgl1, tgl2 As Date
‘jika cetak untuk kriteria tanggal
If pilih = 1 Then
‘Tanggalnya diformat dulu dengan fungsi
‘date serial
tgl1 = DateSerial(Year(tgl_awal.Value), _
Month(tgl_awal.Value), _
Microsoft.VisualBasic.Day(tgl_awal.Value))
tgl2 = DateSerial(Year(tgl_akhir.Value), _
Month(tgl_akhir.Value), _
Microsoft.VisualBasic.Day(tgl_akhir.Value))
‘formula report yg dikirim
xReport.RecordSelectionFormula = _
“{tbl_jual.Tanggal} >= #” & _
tgl1 & “# AND ” & _
“{tbl_jual.Tanggal} <= #" & _
tgl2 & “#”
Else
‘formula report berdasar bulan
xReport.RecordSelectionFormula = _
“Month({tbl_jual.Tanggal}) = ” & _
xBln + 1
End If
‘mengisi report dengan hasil diatas
CrystalReportViewer1.ReportSource = xReport
End Sub

Kode tambahan untuk timer dan btn_close adalah sebagai berikut :
Private Sub btn_selesai_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_selesai.Click
Me.Close()
End Sub

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
lbl_jam.Text = TimeOfDay
End Sub

Sekarang coba kamu jalankan programnya, hasilnya kurang lebih adalah sebagai berikut :

Referensi : http://ajidotnet.wordpress.com/2008/09/12/tutorial-dan-contoh-program-seleksi-data-bertipe-date-laporan-dengan-crystal-report-pada-adonet-vbnet/


1 komentar:

Anonim mengatakan...

ok bermanfaat bos thanks

Posting Komentar