4 Agustus 2010

Selection Formula pada Crystal Report 8.5

Artikel ini melanjutkan pembahasan tentang code simple untuk menampilkan halaman report (Crystal report 8.5) dengan Visual Basic 6.0, yang kurang lebih seperti ini :

Private Sub Command1_Click()
On Error Resume Next
with crt1
.Reset
.Destination = crptToWindow
.ReportFileName = "C:\Data\Laporanxxx.rpt"
.WindowState = crptMaximized
.WindowShowPrintBtn = True
.WindowShowRefreshBtn = True
.RetrieveDataFiles
.Action = 1
End with
End Sub

Code diatas digunakan menampilkan report secara utuh tanpa adanya filter pada report tersebut, andaikata kita memiliki data penjualan selama satu tahun penuh, maka code diatas akan menampilkan data tersebut secara keseluruhan, tidak terbayangkan berapa halaman banyaknya laporan yang ditampilkan. OLeh karena itu agar report dapat ditampilkan lebih fleksibel dengan tujuan analisa terhadap laporan tersebut akan jauh lebih efektif, diperlukan adanya filter, dalam Crystal Report  8.5 dikenal dengan nama "Selection Formula". kurang lebih contoh penulisan kodenya seperti ini :
1. untuk Field berisi huruf (contoh : kodebarang, namabarang) :
crt1.SelectionFormula = "{namatabel.namafield}='" + text1.text + "'"
2. untuk Field berisi angka (contoh : kuantitas, harga) :
crt1.SelectionFormula = "{namatabel.namafield}=" + text1.text  + ""
3. untuk Field berisi tanggal (contoh : tanggalfaktur) : 
crt1.SelectionFormula = "{namatabel.namafield}=#" + format(DTPicker1.value,"yyyy-mm-dd")  + "#"

Apabila filter lebih dari satu tinggal menambahkan AND atau OR, contoh :
crt1.SelectionFormula = "{namatabel.namafield}=" + text1.text  + " AND {namatabel.namafield}=" + text2.text  + ""

Dimana code diletakkan ?

code tersebut diletakkan sebelum Crt1.RetrieveDatafiles, sehingga code selengkapnya akan seperti ini :


Private Sub Command1_Click()
On Error Resume Next
with crt1
.Reset
.Destination = crptToWindow
.ReportFileName = "C:\Data\Laporanxxx.rpt"
.WindowState = crptMaximized
.WindowShowPrintBtn = True
.WindowShowRefreshBtn = True
.SelectionFormula = "{namatabel.namafield}=" + text1.text  + " AND {namatabel.namafield}=" + text2.text  + ""
.RetrieveDataFiles
.Action = 1
End with
End Sub

Selamat Mencoba !

Artikel Terkait Lainnya Seputar:



18 komentar:

  1. mau tanya dong..
    kan ada project,trus report nya ada. formatnya .rpt kan !!!
    nahh masa report/laporannya masa ga nampil ??
    gmn yaa bang !!

    BalasHapus
  2. kode on error resume next dihilangkan dulu mas terus cek errornya sebelah mana. tq :)

    BalasHapus
  3. saya mua tanya ?
    kalo misalkan kita ingin memfilter akanga
    misalkan dari 15 - 50 bagaiman ya Formula x
    thanks sebelumnya.....

    BalasHapus
  4. tinggal menggunakan tanda lebih besar samadengan dan lebih kecil samadengan. contoh :

    crt1.SelectionFormula = "{namatabel.namafield}>=" + text1.text + " AND {namatabel.namafield}<=" + text2.text"

    BalasHapus
  5. kalo hanya 5,10,15,23 aja gimana bank

    BalasHapus
  6. klw seleksi dengan 2 DTPicker untuk tanggal awal dan tanggal akhir agar menjadi laporan mingguan gimana codingnya gan???

    BalasHapus
  7. THANKS mas broo... mudeng udah 2 minggu nyari source code ini,,,jiahhh ktmu juga & All Work...ta kasihh CENDOOOLLLL niiiii

    BalasHapus
  8. kalau mau nampilin record yang nilai bonus >=80000000 gimana gan? saya bikin kayak gini error..
    CrystalReport1.selectionformula="{@bonus}>='" & Text1.text & "'"
    Text1 sudah di set 80000000

    BalasHapus
  9. Tanda petik satunya dihilangkan, kurang lebih spt ini ,

    CrystalReport1.selectionformula="{@bonus}>=" & Text1.text & ""

    Karena tanda petik satu untuk field bertipe text, sedangkan yg digunakan pada sf diatas adalah field bertipe angka.

    Trmkasih

    BalasHapus
  10. Makasih mas atas informasi ini..
    nih sangat bermanfaat banget bagi saya...
    s'X lg makasih yh mas...
    alhamdulillah..

    BalasHapus
  11. mas,,
    mw nanya mas,
    jdi mas lw mw menggabungkan ke 3 format tersebut gmn mas cara nya..??
    soalnya saya ingin membuat selection formula berdasarkan 3 format tersebut dlam 1 form..
    tlong bantuannya mas...

    BalasHapus
  12. numpang nanya mas
    gimana mas cara filter laporannya kalaw menngunakan query di ms. Accses?

    BalasHapus
  13. With crt1
    .Reset
    .Destination = crptToWindow
    .ReportFileName = App.Path _
    & "\surat.masuk.RPT"
    .WindowState = crptMaximized
    .WindowShowPrintBtn = True
    .WindowShowRefreshBtn = True
    .SelectionFormula = "{surat_masuk.Kode_surat}='" + Txtkodesurat.Text + "'"
    .RetrieveDataFiles
    .Action = 1
    End With

    BalasHapus
  14. bales ke twitter aja ya kaka @zaelani45

    BalasHapus
  15. Komentar ini telah dihapus oleh penulis.

    BalasHapus
  16. kalau error nya seperti ini g mana mas ?
    mohon pencerahannya
    ("A String is require here")
    run-time error '20515'

    BalasHapus
  17. berarti membutuhkan field/nilai bertipe string/text untuk menjalankan reportnya, coba dicek dulu di reportnya mas.

    BalasHapus