I am creating a report in vb.net with my DataGrid data and trying to send it to print. But in this project I'm using two DataGrids, one for a Relatori table, and one for the Report table.
The code I usually use for printing a DataGrid would be this:
Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim g As Graphics = e.Graphics
Dim PosicaoLinha As Integer = 40
Dim LinhasPorPagina As Byte = 45
Dim total As String = String.Empty
Dim grupo As String = String.Empty
Dim valor As String = String.Empty
Dim unidade As String = String.Empty
'Definições da pagina
g.PageUnit = GraphicsUnit.Millimeter
'Desenhar folha
Dim Titulo As New Font("Arial", 4, FontStyle.Regular, GraphicsUnit.Millimeter)
g.DrawString("*** Resumo de vendas por Grupo *** ", Titulo, Brushes.Black, 10, 20)
For L = 0 To LinhasPorPagina - 1
If LinhaAtual = RELATORIDataGridView.Rows.Count Then Continue For
For i As Integer = 0 To RELATORIDataGridView.ColumnCount - 5
If Not RELATORIDataGridView.Item(i, LinhaAtual).Value = Nothing Then
grupo = RELATORIDataGridView.Item(i, LinhaAtual).Value
End If
Next
For i As Integer = 0 To RELATORIDataGridView.ColumnCount - 3
If Not RELATORIDataGridView.Item(i, LinhaAtual).Value = Nothing Then
unidade = RELATORIDataGridView.Item(i, LinhaAtual).Value
End If
Next
For i As Integer = 0 To RELATORIDataGridView.ColumnCount - 4
RELATORIDataGridView.Columns(4).DefaultCellStyle.Format = "C2"
If Not RELATORIDataGridView.Item(i, LinhaAtual).Value = Nothing Then
valor = RELATORIDataGridView.Item(i, LinhaAtual).Value
End If
Next
'Desenhar conteudo na página
e.Graphics.DrawString("Grupo", New Font("Verdana", 6), Brushes.Black, 20, 30)
e.Graphics.DrawString(grupo, New Font("Verdana", 6), Brushes.Black, 20, PosicaoLinha)
e.Graphics.DrawString("Unidades", New Font("Verdana", 6), Brushes.Black, 40, 30)
e.Graphics.DrawString(unidade, New Font("Verdana", 6), Brushes.Black, 40, PosicaoLinha)
e.Graphics.DrawString("Valor", New Font("Verdana", 6), Brushes.Black, 60, 30)
e.Graphics.DrawString(valor, New Font("Verdana", 6), Brushes.Black, 60, PosicaoLinha)
e.Graphics.DrawString("______________________________________________________________________________________________________________________________", New Font("Verdana", 8), Brushes.Black, 0, 34)
PosicaoLinha += 5
LinhaAtual += 1
valor = String.Empty
grupo = String.Empty
unidade = String.Empty
total = String.Empty
Next
e.Graphics.DrawString("Totais: ", New Font("Verdana", 6), Brushes.Black, 20, PosicaoLinha)
e.Graphics.DrawString(lblTotalUnidade.Text, New Font("Verdana", 6), Brushes.Black, 40, PosicaoLinha)
e.Graphics.DrawString(lblTotalValor.Text, New Font("Verdana", 6), Brushes.Black, 60, PosicaoLinha)
End Sub
Can anyone tell me how I add another DataGrid in this code for printing?
If I do, I'm using Access as the base.