Boa tarde pessoal, estou precisando de uma ajuda da comunidade, estou desenvolvendo uma aplicação que vai gerar uma datagridview com 2 colunas, Estado e Cliente, e estou montando um layout de impressão onde abaixo do cabeçalho vai vir apenas essas informações
separadas por estado, ex:
=====================
Cabeçalho
=====================
Estado: SC
Cliente 1, Cliente 2, Cliente 3....
Estado: SP
Cliente 5, Cliente 10, Cliente 15....
=====================
Rodapé
=====================
Os itens que constam no meio da folha são referentes ao que estiverem no datagridview, abaixo foi o método que utilizei para montar o cabeçalho, mas o problema fica na parte de colocar os itens, pois preciso que seja conforme à cima, onde ele vai adicionando
os estados e os clientes daquele estado de forma que ele quebre a linha quando o número de clientes daquele estado atingir o limite da margem definida.
Private Sub Imprimir()
Dim RelatorioDoc As New PrintDocument()
AddHandler RelatorioDoc.PrintPage, AddressOf PrintDocumentOnPrintPage
Dim DocImpressao As New PrintDialog()
DocImpressao.Document = RelatorioDoc
If DocImpressao.ShowDialog() = DialogResult.OK Then
RelatorioDoc.Print()
End If
End Sub
Private Sub PrintDocumentOnPrintPage(sender As Object, e As PrintPageEventArgs)
Dim image As New Bitmap(165, 33)
image = My.Resources.logo165
e.Graphics.DrawImage(image, 35, 45)
e.Graphics.DrawString("CLIENTES SEPARADOS POR ESTADOS", New Font("Arial", 20, FontStyle.Regular), Brushes.Black, 120, 120)
Dim blackPen As New Pen(Color.Black, 1)
Dim Borda As New Rectangle(20, 20, 810, 1060)
e.Graphics.DrawRectangle(blackPen, Borda)
Dim Num As New Rectangle(35, 180, 145, 90)
e.Graphics.DrawRectangle(blackPen, Num)
CabNum = 37117
e.Graphics.DrawString("Nº: " & CabNum, New Font("Arial", 20, FontStyle.Regular), Brushes.Black, 37, 187)
Dim Empresa As New Rectangle(35, 220, 770, 50)
e.Graphics.DrawRectangle(blackPen, Empresa)
e.Graphics.DrawString("Empresa: " & Emp, New Font("Arial", 15, FontStyle.Regular), Brushes.Black, 37, 232)
e.Graphics.DrawString("Usuário: " & TBCIUsuario.Text, New Font("Arial", 13, FontStyle.Regular), Brushes.Black, 255, 225)
e.Graphics.DrawString("Nome: " & TBCIUsuario.Text, New Font("Arial", 13, FontStyle.Regular), Brushes.Black, 255, 246)
Dim Envio As New Rectangle(670, 220, 135, 50)
e.Graphics.DrawRectangle(blackPen, Envio)
e.Graphics.DrawString("Data de Envio" & vbCrLf & "09/06/2015", New Font("Arial", 13, FontStyle.Regular), Brushes.Black, 680, 227)
Dim Linha As New Rectangle(20, 270, 810, 1)
e.Graphics.DrawRectangle(blackPen, Linha)
End Sub
Agradeço desde já aos que derem apoio ao tópico, obrigado.