Baca Juga
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()
.Reset
.Destination = crptToWindow
.ReportFileName = "C:\Data\Laporanxxx.rpt"
.WindowState = crptMaximized
.WindowShowPrintBtn = True
.WindowShowRefreshBtn = True
.RetrieveDataFiles
.Action = 1
End with
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) :
3. untuk Field berisi tanggal (contoh : tanggalfaktur) :crt1.SelectionFormula = "{namatabel.namafield}=" + text1.text + ""
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()
.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
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 !
25 Tanggapan
mau tanya dong..
kan ada project,trus report nya ada. formatnya .rpt kan !!!
nahh masa report/laporannya masa ga nampil ??
gmn yaa bang !!
kode on error resume next dihilangkan dulu mas terus cek errornya sebelah mana. tq :)
saya mua tanya ?
kalo misalkan kita ingin memfilter akanga
misalkan dari 15 - 50 bagaiman ya Formula x
thanks sebelumnya.....
tinggal menggunakan tanda lebih besar samadengan dan lebih kecil samadengan. contoh :
crt1.SelectionFormula = "{namatabel.namafield}>=" + text1.text + " AND {namatabel.namafield}<=" + text2.text"
kalo hanya 5,10,15,23 aja gimana bank
klw seleksi dengan 2 DTPicker untuk tanggal awal dan tanggal akhir agar menjadi laporan mingguan gimana codingnya gan???
THANKS mas broo... mudeng udah 2 minggu nyari source code ini,,,jiahhh ktmu juga & All Work...ta kasihh CENDOOOLLLL niiiii
Thanks bro. Mantep!!!
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
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
Makasih mas atas informasi ini..
nih sangat bermanfaat banget bagi saya...
s'X lg makasih yh mas...
alhamdulillah..
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...
numpang nanya mas
gimana mas cara filter laporannya kalaw menngunakan query di ms. Accses?
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
bales ke twitter aja ya kaka @zaelani45
kalau error nya seperti ini g mana mas ?
mohon pencerahannya
("A String is require here")
run-time error '20515'
berarti membutuhkan field/nilai bertipe string/text untuk menjalankan reportnya, coba dicek dulu di reportnya mas.
kalo untuk konek ke localhost databasenya gmna ya?? saya nyoba pakai kode di ataas ada type mismatch terus bang
mas punya saya diklik laporan tidak keluar apa apa bagaimana ya??
eror ,20515 gan, field required
eror ,20515 gan, field required
trims gan sharenya..
Maaf mass mau tanya. Saya buat laporan di crystal report itu ada yg menggunakan running field, lalu saya tempatkan lg di formula field. Di preview crystal reportnya jadi dan muncul formula itu, tp saat di visual basicnya tidak ada. Gimama cara memunculkan formula itu ya mas?mohon pencerahannya mas.terimakasih
mas kalo formulanya tidak sama dengan jenis misal jenis 2 gmn ya bang...mohon pencerahannya....suwun....