none
Print Page RRS feed

  • Pergunta

  • 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.
    quarta-feira, 10 de junho de 2015 16:32

Todas as Respostas

  • Me desculpem, acredito que postei no lugar errado, então abri outro tópico no link https://social.msdn.microsoft.com/Forums/pt-BR/5679c1d7-603d-4b0c-9fca-d45dc3acfec7/impresso?forum=vsvbasicpt e caso queiram deletar ou fechar este tópico, agradeço, obrigado.
    quarta-feira, 10 de junho de 2015 16:51