Contohnya cukup panjang, berikut:

//bersifat global pada class ini saja
hfile 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 ?



--
Berhenti langganan: [EMAIL PROTECTED]
Arsip dan info: http://linux.or.id/milis

Reply via email to