On Sat, Sep 13, 2008 at 3:21 PM, Jun Hay <[EMAIL PROTECTED]> wrote: > Contohnya cukup panjang, berikut: > > //bersifat global pada class ini saja > hfi e AS File > flname AS String > ----------------------------------------------------------- > PUBLIC SUB Form_Open() > > ME.Center > koneksi = NEW connection > tahun() > rd1.SetFocus > > //menentukan path dari flname > flname = "/home/devi/prg_gambas/lap/lapdet" > > END > ----------------------------------------------------------- > > //memanggil prosedur cetak > PUBLIC SUB cetak2(prn AS Boolean) > > DIM bws AS NEW Browser > DIM bln AS String > DIM wkt3 AS String > DIM i AS Integer > > //logika program yang pernah aku buat (maklum copy-paste) :) > bln = modtgl.ntt(cbbln.Text) > wkt3 = CStr(CStr(bln) & "/" & CStr(cbthn.Text)) > IF cbbln.Enabled = TRUE THEN > k1 = koneksi.Exec("select a.id,b.nama,a.toth,a.totl,a.totlb,a.totli,a.bln > from lapb as a,biodata as b where a.id=b.id and a.bln='" & wkt3 & "'") > ELSE IF cbbln.Enabled = FALSE THEN > k1 = koneksi.Exec("select a.id,b.nama,a.toth,a.totl,a.totlb,a.totli,a.bln > from lapb as a,biodata as b where a.id=b.id") > ENDIF > > //menghitung banyaknya hasil query dari variabel k1 > IF k1.Count <> 0 THEN > //bila terdapat flname kemudian hapus > IF Exist(flname) THEN KILL flname > //Buat flname beri hak akses WRITE > OPEN flname FOR WRITE CREATE AS #hfile > cetaklayar2(prn) > k1.movefirst > i = 0 > WHILE i < k1.Count > data2(k1!id, k1!nama, k1!toth, k1!totl, k1!totlb, k1!totli, k1!bln) > i = i + 1 > k1.movenext > WEND > akhir2() > CLOSE #hfile > //set browser (buat dulu form browser) > bws.setpath(flname) > bws.ShowModal > ENDIF > > END > > //penampilan pada browser > > PUBLIC SUB cetaklayar2(prn AS Boolean) > > PRINT #hfile, "<html>" > PRINT #hfile, "<body bgcolor='white'" > IF prn = TRUE THEN PRINT #hfile, "onLoad='window.print()'" > PRINT #hfile, ">" > IF cbbln.Enabled = TRUE THEN > PRINT #hfile, "<h5 align=center>Daftar Absensi Karyawan Pada Bulan " & > cbbln.Text & " - " & cbthn.Text & "</h5>" > ELSE > PRINT #hfile, "<h5 align=center>Daftar Absensi Karyawan</h5>" > ENDIF > PRINT #hfile, "<hr>" > PRINT #hfile, "<table border='1' align='center' width='100%' > cellpadding='1' cellspacing='1'>" > PRINT #hfile, "<tr>" > IF cbbln.Enabled = TRUE THEN > PRINT #hfile, "<td align='center' width='25%'><font > size='-2'><b>ID</b></font></td>" > ELSE > PRINT #hfile, "<td align='center' width='15%'><font > size='-2'><b>ID</b></font></td>" > ENDIF > PRINT #hfile, "<td align='center' width='15%'><font > size='-2'><b>Nama</b></font></td>" > PRINT #hfile, "<td align='center' width='15%'><font size='-2'><b>Total Hari > Masuk Kerja</b></font></td>" > PRINT #hfile, "<td align='center' width='15%'><font size='-2'><b>Total > Waktu Lembur</b></font></td>" > PRINT #hfile, "<td align='center' width='15%'><font size='-2'><b>Total > Waktu Terlambat Masuk</b></font></td>" > PRINT #hfile, "<td align='center' width='15%'><font size='-2'><b>Total > Waktu Terlambat Kembali Istirahat</b></font></td>" > IF cbbln.Enabled = FALSE THEN > PRINT #hfile, "<td align='center' width='10%'><font > size='-2'><b>Bulan</b></font></td>" > ENDIF > PRINT #hfile, "</tr>" > END > > PUBLIC SUB data2(p1 AS String, p2 AS String, p3 AS String, p4 AS String, p5 > AS String, p6 AS String, p7 AS String) > > PRINT #hfile, "<tr>" > IF cbbln.Enabled = TRUE THEN > PRINT #hfile, "<td align='center' width='25%'><font size='-2'>" & p1 & > "</font></td>" > ELSE > PRINT #hfile, "<td align='center' width='15%'><font size='-2'>" & p1 & > "</font></td>" > ENDIF > PRINT #hfile, "<td align='center' width='15%'><font size='-2'>" & p2 & > "</font></td>" > PRINT #hfile, "<td align='center' width='15%'><font size='-2'>" & p3 & > "</font></td>" > PRINT #hfile, "<td align='center' width='15%'><font size='-2'>" & p4 & > "</font></td>" PRINT #hfile, "<td align='center' width='15%'><font > size='-2'>" & p5 & "</font></td>" > PRINT #hfile, "<td align='center' width='15%'><font size='-2'>" & p6 & > "</font></td>" > IF cbbln.Enabled = FALSE THEN > PRINT #hfile, "<td align='center' width='10%'><font size='-2'>" & p7 & > "</font></td>" > ENDIF > PRINT #hfile, "</tr>" > > END > > PUBLIC SUB akhir2() > > PRINT #hfile, "</table>" > PRINT #hfile, "</body>" > PRINT #hfile, "</html>" > > END > > PUBLIC SUB cetak(prn AS Boolean) > > DIM bws AS NEW Browser > DIM wkt3 AS String > DIM i AS Integer > DIM j AS Integer > DIM q2 AS Result > DIM q3 AS Result > DIM qcr AS Result > 'untuk menghitung waktu terlambat masuk > DIM dpt AS Result > DIM tr AS String 'batas waktu masuk kerja > DIM sl AS String 'variabel sementara > DIM ss AS String 'selisih waktu masuk kerja > DIM k AS String > DIM tr1 AS String 'batas waktu kembali dari istirahat > DIM sl1 AS String > DIM ss1 AS String 'selisih waktu kembali dari istirahat > DIM k1 AS String > DIM tr2 AS String 'batas waktu lembur > DIM sl2 AS String > DIM ss2 AS String 'selisih waktu lembur > DIM k2 AS String > DIM bln AS String > > bln = modtgl.ntt(cbbln.Text) > fyu = Split(CStr(tbvcari[tbvcari.Row, 6].Text), "/") > bcn = modtgl.ttn(CStr(fyu[0])) > masuk() > IF cbbln.Enabled = TRUE THEN > wkt3 = CStr(CStr(bln) & "/" & CStr(cbthn.Text)) > q1 = koneksi.Exec("select * from absen where id='" & tbvcari[tbvcari.Row, > 0].Text & "' and bln='" & wkt3 & "'") > qcr = koneksi.Exec("select count(*) as jumlah from lapb where id='" & > tbvcari[tbvcari.Row, 0].Text & "' and bln='" & wkt3 & "'") > q2 = koneksi.Exec("select toth,totl,totlb,totli from lapb where id='" & > tbvcari[tbvcari.Row, 0].Text & "' and bln='" & wkt3 & "'") > dpt = koneksi.Exec("select masuk,keluar,lembur,akhir_ist from twaktu") > ELSE IF cbbln.Enabled = FALSE THEN > q1 = koneksi.Exec("select * from absen where id='" & tbvcari[tbvcari.Row, > 0].Text & "' and bln='" & tbvcari[tbvcari.Row, 6].Text & "'") > qcr = koneksi.Exec("select count(*) as jumlah from lapb where id='" & > tbvcari[tbvcari.Row, 0].Text & "' and bln='" & tbvcari[tbvcari.Row, 6].Text > & "'") > q2 = koneksi.Exec("select toth,totl,totlb,totli from lapb where id='" & > tbvcari[tbvcari.Row, 0].Text & "' and bln='" & tbvcari[tbvcari.Row, 6].Text > & "'") > dpt = koneksi.Exec("select masuk,keluar,lembur,akhir_ist from twaktu") > ENDIF > bulan = CStr(cbbln.Text) > IF q1.count <> 0 THEN > IF Exist(flname) THEN KILL flname > OPEN flname FOR WRITE CREATE AS #hfile > cetaklayar(prn) > q1.movefirst > i = 0 FOR i = 1 TO q1.count > tr = CDate(dpt!masuk) > IF q1!waktu = "-" THEN > k = "-" > ELSE > sl = CDate(q1!waktu) > ss = CDate(CDate(sl) - CDate(tr)) 'waktu terlambat masuk > IF sl > tr THEN > k = CStr(ss) ELSE > k = CStr("00:00:00") > ENDIF > ENDIF > tr1 = CDate(dpt!akhir_ist) > IF q1!aisti = "-" THEN > k1 = "-" > ELSE > sl1 = CDate(q1!aisti) > ss1 = CDate(CDate(sl1) - CDate(tr1)) 'waktu terlambat kembali > dari istirahat > IF sl1 <= tr1 THEN > k1 = CStr("00:00:00") ELSE > k1 = CStr(ss1) > ENDIF > ENDIF > tr2 = CDate(dpt!lembur) > IF q1!pulang = "-" OR q1!pulang = "unchecked" THEN > k2 = CStr("-") > ELSE > sl2 = CDate(q1!pulang) > ss2 = CDate(CDate(sl2) - CDate(tr2)) 'waktu lembur > IF sl2 <= tr2 OR sl2 = "-" THEN > k2 = CStr("00:00:00") > ELSE > k2 = CStr(ss2) > ENDIF > ENDIF > data(q1!id, q1!tgl, q1!waktu, q1!misti, q1!aisti, k1, q1!pulang, k, > k2, q1!keterangan) > q1.movenext > NEXT > IF qcr!jumlah > 0 THEN > akhir(q2!toth, q2!totl, q2!totlb, q2!totli) > ELSE > akhir("0", "0", "0", "0") > ENDIF > CLOSE #hfile > bws.setpath(flname) > bws.ShowModal > ENDIF > > END > > PUBLIC SUB cetaklayar(prn AS Boolean) > > PRINT #hfile, "<html>" > PRINT #hfile, "<body" > IF prn = TRUE THEN PRINT #hfile, "onLoad='window.print()'" > PRINT #hfile, ">" > PRINT #hfile, "<h3 align=center>Laporan Data Absensi Karyawan</h3>" > IF cbbln.Enabled = TRUE THEN > PRINT #hfile, "<h4 align=center>" & bulan & "/" & cbthn.Text & "</h4>" > ELSE IF cbbln.Enabled = FALSE THEN > PRINT #hfile, "<h4 align=center>" & bcn & "/" & fyu[1] & "</h4>" > ENDIF > PRINT #hfile, "<h4 align=center>" & tbvcari[tbvcari.Row, 1].Text & > "</h4><br>" > PRINT #hfile, "<table border='1' align='center' width='100%' > cellpadding='1' cellspacing='1'>" > PRINT #hfile, "<tr>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>Tanggal</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>Waktu</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>Start Rest</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>End Rest</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>Rest Late</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>Pulang</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>Terlambat</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>Lembur</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>Keterangan</font></td>" > PRINT #hfile, "</tr>" > END > > PUBLIC SUB data(p1 AS String, p4 AS String, p5 AS String, p6 AS String, p7 > AS String, p8 AS String, p9 AS String, p10 AS String, p11 AS String, p12 AS > String) > > PRINT #hfile, "<tr>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>" & p4 & "</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>" & p5 & "</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>" & p6 & "</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>" & p7 & "</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>" & p8 & "</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>" & p9 & "</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>" & p10 & "</font></td>" > PRINT #hfile, "<td align='center'><font face='Nimbus Mono L' font > size='-1'>" & p11 & "</font></td>" PRINT #hfile, "<td align='center'><font > face='Nimbus Mono L' font size='-1'>" & p12 & "</font></td>" PRINT #hfile, > "</tr>" > > END > > PUBLIC SUB akhir(r1 AS String, r2 AS String, r3 AS String, r4 AS String) > > PRINT #hfile, "</table><br>" > PRINT #hfile, "<table border='0' align='left' width='70%'>" > PRINT #hfile, "<tr>" > PRINT #hfile, "<td width='70%'><font face='Nimbus Mono L' font > size='-1'>Total Hari Masuk Kerja:</font></td>" > PRINT #hfile, "<td width='30%'><font face='Nimbus Mono L' font size='-1'>" > & r1 & "</font></td>" > PRINT #hfile, "</tr>" > PRINT #hfile, "<tr>" > PRINT #hfile, "<td width='70%'><font face='Nimbus Mono L' font > size='-1'>Total Lembur:</font></td>" > PRINT #hfile, "<td width='30%'><font face='Nimbus Mono L' font size='-1'>" > & r2 & "</font></td>" > PRINT #hfile, "</tr>" > PRINT #hfile, "<tr>" > PRINT #hfile, "<td width='70%'><font face='Nimbus Mono L' font > size='-1'>Total Waktu Terlambat Masuk Kerja:</font></td>" > PRINT #hfile, "<td width='30%'><font face='Nimbus Mono L' font size='-1'>" > & r3 & "</font></td>" > PRINT #hfile, "</tr>" > PRINT #hfile, "<tr>" > PRINT #hfile, "<td width='70%'><font face='Nimbus Mono L' font > size='-1'>Total Waktu Terlambat Kembali Dari Istirahat:</font></td>" > PRINT #hfile, "<td width='30%'><font face='Nimbus Mono L' font size='-1'>" > & r4 & "</font></td>" > PRINT #hfile, "</tr>" > PRINT #hfile, "</table>" > PRINT #hfile, "</body>" > PRINT #hfile, "</html>" > > END > > //event yang dilakukan pada tbvcari (object tableview double click) > PUBLIC SUB tbvcari_DblClick() > > cetak(TRUE) > > END > > //Kemudian pada form browser beri saja 1 object webbrowser dengan name : > webbrowser1 sebuah button > > ' Gambas class file > > PUBLIC SUB Form_Open() > > ME.Center > > END > > PUBLIC SUB btclose_Click() > > ME.Close > > END > > PUBLIC SUB setpath(spath AS String) > > webbrowser1.Path = spath > > END > > Selamat mencoba... > > Kristophorus wrote: >> >> 2008/9/12 Jun Hay <[EMAIL PROTECTED]>: >> >>> >>> Untuk contoh reporting ada di situs: >>> http://www.gambasforge.net/cgi-bin/index.gambas >>> >>> Sebenarnya aku lihat itu bukan seperti crystal report (alternatif yang >>> disediakan oleh Gambas saat ini), karena untuk report desaigner masih >>> dalam >>> tahap development (Lihat situs: >>> http://gambas.sourceforge.net/roadmap.html). >>> >>> Untuk reporting sendiri sementara aku masih menggunakan HTML Preview yang >>> digabungkan dengan javascript (supaya bisa nge-print). >>> >>> Semoga membantu. >>> >>> >> >> Terima kasih buat informasinya.... >> Hem... jadi di generate ke HTML trus di preview pakai HTML Preview..... >> Untuk generate ke HTML ada contoh nya nggak ? >> >> Terima kasih buat contohnya.... Saya pelajari lebih lanjut..... -- Regards,
Kris -- Berhenti langganan: [EMAIL PROTECTED] Arsip dan info: http://linux.or.id/milis