Friday, June 7, 2013

Sharing Everything From My Experience And Knowlegde

Sharing Everything From My Experience And Knowlegde


Membuat Form Cetak Report/Crystal Report/Active Report (Banyak Filter/Kriteria) Dengan Mudah VBNET

Posted: 07 Jun 2013 04:09 AM PDT

Rasanya sudah hampir 1 minggu lebih saya tidak posting, karena kesibukan saya di kantor. ok, kali ini saya coba share bagaimana cara membuat coding dalam menampilkan report secara singkat dan simple. coba anda lihat form berikut ini :
Gimana banyak sekali kan kriteria nya ? biasanya para programmer paling "MALAS" untuk membuat form ini, karen pastinya akan banyak sekali "IF THEN ELSE". Nah jangan khawatir saya akan coba berbagi bagaimana membuat sintak yang simple/sederhana untuk membangun form Report seperti diatas.
OK, cara simple nya seperti ini (di tombol Preview_Click() ) :
1.Jika anda butuh query untuk Dataset, temporary dan sebagainya


Dim sql As String = ""
sql = "SELECT * FROM BARANG WHERE kd_group={0} and kd_jenis={1} and kd_satuan={2} and kd_merk={3} and kd_warna={4} and kd_ukuran={5} and tanggal_masuk {6}"
sql = String.Format(sql, _
    IIf(cbo_group.Text = "ALL", "kd_group", "'" + cbo_group.Text + "'"), _
    IIf(cbo_jenis.Text = "ALL", "kd_jenis", "'" + cbo_jenis.Text + "'"), _
    IIf(cbo_satuan.Text = "ALL", "kd_satuan", "'" + cbo_satuan.Text + "'"), _
    IIf(cbo_merk.Text = "ALL", "kd_merk", "'"+ cbo_merk.Text + "'"), _
    IIf(cbo_warna.Text = "ALL", "kd_warna", "'" + cbo_warna.Text + "'"), _
    IIf(cbo_ukuran.Text = "ALL", "kd_ukuran", "'" + cbo_ukuran.Text + "'"), _
  IIf(chk_tglmasuk.Checked = True, "tanggal_masuk", ">='" + dtp_dari.Value + "'and tanggal_masuk<='" + dtp_sampai.Value + "'") )

2.Jika anda mengunakan CrystalReport dan ingin langsung memakai property SelectionFormula


sql = "{barang.kd_group}={0} and {barang.kd_jenis}={1} and {barang.kd_satuan}={2} and {barang.kd_merk}={3} and {barang.kd_warna}={4} and {barang.kd_ukuran}={5} and  {barang.tanggal_masuk}={6} "

sql = String.Format(sql, _
    IIf(cbo_group.Text = "ALL", "{barang.kd_group}", "'" + cbo_group.Text + "'"), _
    IIf(cbo_jenis.Text = "ALL", "{barang.kd_jenis}", "'" + cbo_jenis.Text + "'"), _
    IIf(cbo_satuan.Text = "ALL", "{barang.kd_satuan}", "'" + cbo_satuan.Text + "'"), _
    IIf(cbo_merk.Text = "ALL", "{barang.kd_merk}", "'" + cbo_merk.Text + "'"), _
    IIf(cbo_warna.Text = "ALL", "{barang.kd_warna}","'" + cbo_warna.Text + "'"), _
    IIf(cbo_ukuran.Text = "ALL", "{barang.kd_ukuran}", "'" + cbo_ukuran.Text + "'"), _
    IIf(chk_tglmasuk.Checked = True, "{barang.tanggal_masuk}", ">='" + dtp_dari.Value + "' and {barang.tanggal_masuk}<='" + dtp_sampai.Value + "'") )

Bingung ? ini penjelasannya :
1.jika anda belum mengerti sintak Format.String(), silahkan baca postingan saya DISINI
2.jika anda belum mengerti sintak IIF, silhkan baca postingan saya DISINI
3.intinya adalah jika comboBoxnya=ALL maka query condition adalah nama field itu sendiri, jika ComboBox<>ALL maka seperti biasa.Jadi hasilnya :
A.) Jika Semua ComboBox=ALL dan Checklish=False (tidak pilih tanggal masuk), hasil query (nilai variable sql) adalah :
-Untuk SQL Pertama :
sql = "SELECT * FROM BARANG WHERE kd_group=kd_group and kd_jenis=kd_jenis and kd_satuan=kd_satuan and kd_merk=kd_merk and kd_warna=kd_warna and kd_ukuran=kd_ukuran and tanggal_masuk=tanggal_masuk"

-Untuk SQL Kedua (CrystalReport Selection Formula)
sql = "{barang.kd_group}={barang.kd_group} and {barang.kd_jenis}={barang.kd_jenis} and {barang.kd_satuan}={barang.kd_satuan} and {barang.kd_merk}={barang.kd_merk} and {barang.kd_warna}={barang.kd_warna} and {barang.kd_ukuran}={barang.kd_ukuran} and  {barang.tanggal_masuk}={barang.tanggal_masuk} "

B.) Jika salah satu atau semua ComboBox dipilih isinya (misal saya pilih group='ABC' dan jenis='PAKET' dan sisanya=ALL) dan Checklish=true (pilih tanggal masuk), hasil query (nilai variable sql) adalah :
-Untuk SQL Pertama :
sql = "SELECT * FROM BARANG WHERE kd_group='ABC' and kd_jenis='PAKET' and kd_satuan=kd_satuan and kd_merk=kd_merk and kd_warna=kd_warna and kd_ukuran=kd_ukuran and tanggal_masuk>='2013-06-07' and tanggal_masuk<='2013-06-07'"

-Untuk SQL Kedua (CrystalReport Selection Formula)
sql = "{barang.kd_group}='ABC' and {barang.kd_jenis}='PAKET' and {barang.kd_satuan}={barang.kd_satuan} and {barang.kd_merk}={barang.kd_merk} and {barang.kd_warna}={barang.kd_warna} and {barang.kd_ukuran}={barang.kd_ukuran} and  {barang.tanggal_masuk}>='2013-06-07' and {barang.tanggal_masuk}<='2013-06-07' "

Penasaran ?
coba anda praktekan sendiri , query dibawah ini :
sql = "SELECT NOBUKTI, TGL, KET FROM TRANSAKSI"
akan sama hasilnya dengan
sql = "SELECT NOBUKTI, TGL, KET FROM TRANSAKSI WHERE NOBUKTI=NOBUKTI"

Tags:
mencetak report crystal report, membuat parameter crystal report, membuat kritetia report, cara cepat membuat report, cara filter cepat, membuat ALL di combobox, membuat pilihan ALL/ semua di combobox,

No comments:

Post a Comment