VB.NET 2005 Source Code Crystal Report : Filter Crystal Report Dengan Bulan dan Tahun

Kamis, Oktober 09, 2008 | | Comments

Halouw balik lagi nih gwe setelah lama libur ga posting hehehe… Sekarang kita agak sedikit belajar nih, gwe mau berbagi ama lo semua tentang coding VB.NET 2005. Kali ini coding yang mau gwe kasih tahu adalah coding aplikasi VB.NET menggunakan Crystal Report di mana Crystal Report tersebut difilter dengan bulan dan tahun.

Pertama gwe pengin minta maaf dulu soalnya gwe lupa bikin snapshot aplikasinya jadi maaf kalo agak bingung ngikutin penjelasannya. Pertama yang gwe lakukan adalah gwe bikin sebuah form yang berisikan dua buah comboBox. comboBox yang pertama gwe namain cmbMonth yang tentunya berisikan bulan dari Januari dst. Terus untuk comboBox yang kedua gwe namain cmbYear yang berisikan tahun. Untuk tahunnya gwe isi dari tahun 1996 sampe 2010 kenapa gwe mulai dari 1996 ? soalnya gwe ngambil database Northwind tablenya Orders dimana tahun yang ada disitu dari 1996 sampe 1997, soal sampe 2010 itu sih terserah yang bikin dunks hehehehe :) . Dan gwe tambahin juga sebuah button untuk mengeksekusi perintah setelah user memberikan pilihan bulan dan tahun, button tersebut gwe namain btnSubmit. Moving on, sesudah itu gwe bikin Crystal Report dengan menggunkan database Northwind dengan table Orders, untuk ini gwe pengin minta maaf lagi soalnya column yang gwe masukin ke CR lupa apa aja, tapi tenang aja koq soalnya file aplikasinya dah gwe upload jadi you-you semua tinggal unduh aja (download maksudnya). Oya satu lagi, gwe bikin CR-nya pake wizard bukan pake blank report tapi untuk yang ini terserah aja tergantung kebutuhan dan selera mau pake yang wizard atau Blank Report. terus gwe masukin semua column yang pengin gwe tampilkan. Setelah itu gwe save CR-nya, dan berlanjut ke codingan untuk Form aplikasi Programnya, berikut ini adalah codingnya:

Public Class Form1
Dim NW_Rpt As New NW_OrderReport
Dim int_bulan As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.CrystalReportViewer1.ReportSource = NW_Rpt
End Sub

‘Private Sub cmbMonth_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbMonth.SelectedIndexChanged
‘End Sub

‘Private Sub cmbYear_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbYear.SelectedIndexChanged
‘End Sub

Private Sub btnSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit.Click
Try
Select Case cmbMonth.Text
Case “Januari”
int_bulan = 1
Case “Februari”
int_bulan = 2
Case “Maret”
int_bulan = 3
Case “April”
int_bulan = 4
Case “Mei”
int_bulan = 5
Case “Juni”
int_bulan = 6
Case “Juli”
int_bulan = 7
Case “Agustus”
int_bulan = 8
Case “September”
int_bulan = 9
Case “Oktober”
int_bulan = 10
Case “November”
int_bulan = 11
Case “Desember”
int_bulan = 12
End Select
CrystalReportViewer1.SelectionFormula = “{Orders.OrderDate} in datetime(” & cmbYear.Text & “,” & int_bulan.ToString() & “,1) to datetime(” & cmbYear.Text & “,” & int_bulan.ToString() & “,” & Now.Day.ToString() & “)”
CrystalReportViewer1.RefreshReport()
Catch ex As Exception
MessageBox.Show(”Report Error”, “Form Filter Report”, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class

Jadi untuk penjelasan teknisnya gimana ntu CR bisa difilter begini ceritanya. Pertama gwe bikin Selection Formula dimana SelectionFormula ini berguna untuk melakukan macam-macam rumus untuk kegunaan di CR dan salah satunya untuk filter CR itu sendiri. Untuk yang masih bingung yang mana sih SelectionFormulanya ? yang ini lho “{Orders.OrderDate} in datetime(1996,8,1) to datetime(1997,1,1)”, tapi untuk keperluan coding diatas 1996 atau tahunnya gwe ganti dengan pilihan tahun yang ada di cmbYear dan bulannya gwe ganti dengan pilihan yang yang ada di cmbMonth.

Mungkin ada yang bertanya-tanya gimana kan di cmbMonth pilhannya adanya Januari, Februari,dst sementara format yang ada di SelectionFormula berupa (YYYY,mm,dd) dan itu semua berupa angka bukan huruf. Untuk itulah gwe menggunakan coding Conditional Sytax yang dimana coding tersebut adalah Select…Case seperti diatas, Jadi dengan menggunakan coding tersebut apabila user memilih Januari, maka input yang masuk adalah bukan huruf Januari melainkan angka 1, itu berlaku juga untuk Februari adalah angka 2 begitu seterusnya untuk bulan-bulan berikutnya.

Begitulah untuk pembelajaran ini, sori kalo masih banyak salahnya, gwe hanya ingin mencoba berbagi ilmu dengan siapa saja, mudah-mudahan bermanfaat hehehe, lain kali gwe kasih lagi coding-coding atau source code lain yang mudah-mudahan berguna untuk keperluan apapun.

Aplikasi tersebut dibuat dengan Visual Studio 2005. Bahasa pemrograman VB.NET, dan menggunakan SQL Server 2005 database Northwind table Orders, dan Crystal Report bawaan Visual Studio 2005

Oya untuk yang pengin download aplikasi program diatas silahkan klik link berikut:

CR_Filter_month

Source : rockwithryan.wordpress.com