Membuat Tombol Kode Cetak Isi DataGridView ke Printer di Aplikasi Form Penjualan Dengan Visual Basic .NET

Pada artikel Blog kali ini Admin akan berbagi kode yang berfungsi untuk mencetak document baik itu database atau kontrol form yang ada didalamnya termasuk DataGridView.

Pada artikel sebelumnya kita sudah membuat sebuah Aplikasi sederhana yaitu sebuah Aplikasi Form Penjualan tanpa Database. Namun kali ini kita akan menambahkan Tombol Print pada Form yang sudah kita buat sebelumnya.

Berikut adalah Langkah-langkah dalam pembuatan Kode Cetak untuk tombol Print :

Kode Cetak untuk tombol Print di VB.Net

1. Buka Project Aplikasi Form Penjualan tanpa Database yang sudah kita buat

2. Tambahkan 1 Button dengan Caption: Print dan Name :ButtonPrint

3. Tambahkan kontrol PrintDocument1 yang ada di Toolbox

4. Copy-paste kode dibawah ini pada bagian PrintDocument1  :

Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage


        ' ===== FONT (AMAN UNTUK STRUK) =====

        Dim fontHeader As New Font("Courier New", 12, FontStyle.Bold)

        Dim fontSubHeader As New Font("Courier New", 10)

        Dim fontIsi As New Font("Courier New", 10)

        Dim fontBold As New Font("Courier New", 10, FontStyle.Bold)


        Dim y As Integer = 5

        Dim pageWidth As Integer = e.PageBounds.Width


        ' ===== FORMAT RATA TENGAH =====

        Dim sfCenter As New StringFormat()

        sfCenter.Alignment = StringAlignment.Center


        ' ===== HEADER RATA TENGAH =====

        e.Graphics.DrawString("ACHAN MARKET", fontHeader, Brushes.Black,

                          pageWidth / 2, y, sfCenter)

        y += fontHeader.Height + 2


        e.Graphics.DrawString("Jl. Petir Utama No. 50", fontSubHeader, Brushes.Black,

                          pageWidth / 2, y, sfCenter)

        y += fontSubHeader.Height + 2


        e.Graphics.DrawString("Cipondoh Tangerang", fontSubHeader, Brushes.Black,

                          pageWidth / 2, y, sfCenter)

        y += fontSubHeader.Height + 2


        e.Graphics.DrawString("0812-3456-7890", fontSubHeader, Brushes.Black,

                          pageWidth / 2, y, sfCenter)

        y += fontSubHeader.Height + 4


        ' ===== GARIS PEMISAH =====

        Dim garis As String = "=============================="

        e.Graphics.DrawString(garis, fontIsi, Brushes.Black,

                          pageWidth / 2, y, sfCenter)

        y += fontIsi.Height + 4


        ' ===== ISI BARANG =====

        For Each row As DataGridViewRow In DataGridView1.Rows

            If Not row.IsNewRow Then


                Dim nama As String = row.Cells(1).Value.ToString()

                Dim harga As Decimal

                Decimal.TryParse(row.Cells(2).Value.ToString().Replace(".", "").Replace("Rp", ""), harga)

                Dim qty As Integer

                Integer.TryParse(row.Cells(3).Value.ToString(), qty)

                Dim total As Decimal = harga * qty


                e.Graphics.DrawString(nama, fontIsi, Brushes.Black, 5, y)

                y += fontIsi.Height + 2


                e.Graphics.DrawString($"{qty} x {harga:N0}     {total:N0}",

                                  fontIsi, Brushes.Black, 5, y)

                y += fontIsi.Height + 4

            End If

        Next


        ' ===== GARIS PEMISAH =====

        e.Graphics.DrawString(garis, fontIsi, Brushes.Black,

                          pageWidth / 2, y, sfCenter)

        y += fontIsi.Height + 4


        ' ===== TOTAL & CASH =====

        e.Graphics.DrawString("TOTAL BAYAR : Rp " &

                          LabelTotalBayar.Text.Replace("Rp", "").Trim(),

                          fontBold, Brushes.Black, 5, y)

        y += fontBold.Height + 2


        e.Graphics.DrawString("CASH        : Rp " & TextBoxCash.Text,

                          fontIsi, Brushes.Black, 5, y)

        y += fontIsi.Height + 6


        ' ===== FOOTER =====

        e.Graphics.DrawString("Terima Kasih", fontIsi, Brushes.Black, 5, y)


    End Sub


5. Pada ButtonPrint, ketik kode dibawah ini :

Private Sub ButtonPrint_Click(sender As Object, e As EventArgs) Handles ButtonPrint.Click

        Dim pd As New PrintDialog()

        pd.Document = PrintDocument1


        If pd.ShowDialog() = DialogResult.OK Then

            Try

                PrintDocument1.Print()

            Catch ex As Exception

                MessageBox.Show("Terjadi kesalahan saat mencetak: " & ex.Message)

            End Try

        Else

            MessageBox.Show("Cetak dibatalkan, pilih printer dulu.")

        End If


    End Sub


6. Pada Form1_Load ketik kode dibawah ini :

        PrintDocument1.DefaultPageSettings.PaperSize = New Printing.PaperSize("Custom", 280, 600)


7. Jalankan Project

8. Isi transaksi

9. Tekan Tombol Print, ketika tekan tombol Print Muncul Kotak Dialog Print




10. Pilih mode Cetak. Ke Printer atau cetak layar pada XPS Viewer, jika Komputer anda tidak ada Printernya maka pilih Microsoft  XPS Document Writer tekan OK dan Simpan hasil Cetakan

11. Hasil akhir jika menggunakan cetak Microsoft  XPS Document Writer :

Kode Print VB.NET

Catatan :

  • Hasil yang ada pada cetakan Microsoft  XPS Document dengan Printer akan sama
  • Kode ini bisa diseuaikan dengan isi Database Anda yang lain


Demikinalah artikel pada hari ini tentang Membuat Tombol Kode Cetak DataGridView ke Printer di Aplikasi Form Penjualan Dengan Visual Basic .NET, semoga artikel ini bermanfaat buat kita semua.Amin.

Selamat mencoba semoga berhasil

Post a Comment for "Membuat Tombol Kode Cetak Isi DataGridView ke Printer di Aplikasi Form Penjualan Dengan Visual Basic .NET"