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