
Ini adalah contoh script untuk menampilkan laporan/print preview tanpa menggunakan cristal report atau report2 yang lain yang malah bikin repot.
Object yg dibutuhkan :
1. sebuah button dengan Caption/Text "Print Preview" atau bisa diganti sesuai selera anda.
2. sebuah PrintDocument.
3. sebuah DataGridView yang sudah berisi data2 yang diperlukan.
4. sebuah PrintPreviewDialog.
5. tentunya Object2 yg laen yg sebagai pendukung kyk form, dsb yg gk perlu disebutin.
Terus Secaranya......
1. Rancang tampilan print preview yang nanti akan ditampilkan
kode programnya pada event PrintPage dari PrintDocument :
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim linesPerPage As Single = 0
Dim yPos As Single = 0
Dim xPos As Single = 0
Dim count As Single = 0
Dim count2 As Single = 0
Dim line As String = Nothing
Dim leftMargin As Single = e.MarginBounds.Left
Dim topMargin As Single = e.MarginBounds.Top
Dim myFont As Font = dgpegawai.Font
linesPerPage = e.MarginBounds.Height / myFont.Height()
Dim i As Integer
e.Graphics.DrawString("LAPORAN DATA PEGAWAI PT. TASPEN", dgpegawai.Font, Brushes.Black, (leftMargin + (0 * myFont.Height)), (topMargin + (count * myFont.Height)))
count = 2
e.Graphics.DrawString("NIK", dgpegawai.Font, Brushes.Black, (leftMargin + (0 * myFont.Height)), (topMargin + (count * myFont.Height)))
e.Graphics.DrawString("Nama", dgpegawai.Font, Brushes.Black, (leftMargin + (7 * myFont.Height)), (topMargin + (count * myFont.Height)))
e.Graphics.DrawString("Jenis Kelamin", dgpegawai.Font, Brushes.Black, (leftMargin + (20 * myFont.Height)), (topMargin + (count * myFont.Height)))
e.Graphics.DrawString("Alamat", dgpegawai.Font, Brushes.Black, (leftMargin + (30 * myFont.Height)), (topMargin + (count * myFont.Height)))
e.Graphics.DrawString("Jabatan", dgpegawai.Font, Brushes.Black, (leftMargin + (43 * myFont.Height)), (topMargin + (count * myFont.Height)))
e.Graphics.DrawString("Departemen", dgpegawai.Font, Brushes.Black, (leftMargin + (53 * myFont.Height)), (topMargin + (count * myFont.Height)))
e.Graphics.DrawString("Golongan", dgpegawai.Font, Brushes.Black, (leftMargin + (60 * myFont.Height)), (topMargin + (count * myFont.Height)))
count = 4
For i = 0 To dgpegawai.RowCount - 1
yPos = (topMargin + (count * myFont.Height))
e.Graphics.DrawString(dgpegawai.Item(0, i).Value, dgpegawai.Font, Brushes.Black, (leftMargin + (0 * myFont.Height)), yPos)
e.Graphics.DrawString(dgpegawai.Item(1, i).Value, dgpegawai.Font, Brushes.Black, (leftMargin + (7 * myFont.Height)), yPos)
e.Graphics.DrawString(dgpegawai.Item(2, i).Value, dgpegawai.Font, Brushes.Black, (leftMargin + (20 * myFont.Height)), yPos)
e.Graphics.DrawString(dgpegawai.Item(3, i).Value, dgpegawai.Font, Brushes.Black, (leftMargin + (30 * myFont.Height)), yPos)
e.Graphics.DrawString(dgpegawai.Item(4, i).Value, dgpegawai.Font, Brushes.Black, (leftMargin + (43 * myFont.Height)), yPos)
e.Graphics.DrawString(dgpegawai.Item(5, i).Value, dgpegawai.Font, Brushes.Black, (leftMargin + (53 * myFont.Height)), yPos)
e.Graphics.DrawString(dgpegawai.Item(6, i).Value, dgpegawai.Font, Brushes.Black, (leftMargin + (60 * myFont.Height)), yPos)
count += 1
Next
End Sub
Saya gk perlu menjelaskan tiap bagian khan, klo iya, capek deh....
intinya itu di e.Graphics.DrawString yg digunakan untuk menulisi print previewnya, kita tinggal mengutak-atik posisinya saja.
2. Siapkan pengaturan tampilan print previewnya nanti, mengaturnya pd saat form load
kodenya:
Private Sub data_pegawai_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call konek()
Call tampilpegawai()
Call aturdgpegawai()
PrintDocument1.DefaultPageSettings.Landscape = True
PrintPreviewDialog1.PrintPreviewControl.Zoom = 0.95
End Sub
Untuk pengaturan yang lain anda bisa menambahkan sendiri.
3. Siapkan tombol agar bisa di klik.
Setelah bisa di klik maka kode yang dibutuhkan seperti ini:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PrintPreviewDialog1.Document = PrintDocument1
PrintPreviewDialog1.ShowDialog()
End Sub
Udah gitu aja, gampang khan, sekarang tinggal jalanin aja... Gak perlu pake report2 dh bisa bikin laporan dari data yang ada.
N met recode ajah....
4 komentar:
sori mas bayu, koq' ngeblog di blogger.btw postingannya sangat membantu trims
Sangat membantu sekali, saking membantunya sampai2 error semua :D
mungkin untuk script yg "uda dari sananya" diberi komentar ' sam biar lebih mudah dipahami. CMIWW
suwon :D
sangat membantu
Posting Komentar