AJUDA COM PRINTPREVIEWDIALOG1

 Tópico anterior Próximo tópico Novo tópico

AJUDA COM PRINTPREVIEWDIALOG1

VB.NET

 Compartilhe  Compartilhe  Compartilhe
#490895 - 22/10/2019 16:29:07

RDPISA
CATANDUVA
Cadast. em:Junho/2017


 Anexos estao visíveis somente para usuários registrados

Ol amigos estou com dificuldades com PrintPreviewDialog1
tenho uma datgrid populada com banco de dados sqlite quando mando imprimir  o PrintPreviewDialog1 impriomi tudo em uma unica pagina



Rogrio D Pinto


#490896 - 22/10/2019 16:31:09

RDPISA
CATANDUVA
Cadast. em:Junho/2017


Citação:
:
Ol amigos estou com dificuldades com PrintPreviewDialog1
tenho uma datgrid populada com banco de dados sqlite quando mando imprimir  o PrintPreviewDialog1 impriomi tudo em uma unica pagina


Segue o cdigo

  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Btn_Imprimir.Click

        []cria o documento e d o nome ao mesmo
        Dim PrintDocument1 As New Printing.PrintDocument
        []incluir o manipulador de eventos
        AddHandler PrintDocument1.PrintPage, AddressOf Me.imprimirRelatorios
        []modo de visualizao
        []define algumas propriedades do projecto
        With PrintPreviewDialog1
            []indica qual o documento a ser visualizado
            .Document = PrintDocument1
            .WindowState = FormWindowState.Maximized
            .PrintPreviewControl.Zoom = 1
            .Text = Lbl_Conteudo.Text
            .ShowDialog()
        End With
        []libertar o documento aps imprimir
        PrintDocument1.Dispose()
    End Sub

    Private Sub imprimirRelatorios(ByVal sender As Object, ByVal e As Drawing.Printing.PrintPageEventArgs)
        []Margens vamos assumir as margens assumidas pela impressora(Margin Bounds)

        Dim margemEsq As Single = e.MarginBounds.Left
        Dim margemDir As Single = e.MarginBounds.Right
        Dim margemSup As Single = e.MarginBounds.Top
        Dim margemInf As Single = e.MarginBounds.Bottom
        Dim linhasLidas As Integer = 1
        Dim cont = 250
        Dim paginaactual = 1
        Dim canetadaimpressora As Pen = New Pen(Color.Black, 2)
        []Variveis das fontes
        Dim fonteNegrito As Font
        Dim fonteTitulo As Font
        Dim fonteSubtitulo As Font
        Dim fonteRodape As Font
        Dim fonteNormal As Font
        []define efeitos em fonte
        fonteNegrito = New Font([]Arial[], 8, FontStyle.Bold)
        fonteTitulo = New Font([]Arial[], 15, FontStyle.Bold)
        fonteSubtitulo = New Font([]Arial[], 10, FontStyle.Bold)
        fonteRodape = New Font([]Arial[], 8)
        fonteNormal = New Font([]Arial[], 8)
        []define-se o nmero de linhas por pgina
        []divide-se a rea de impresso pelo tamanho da fonte subtraindo 10 valores
        Dim linhasporpagina = e.MarginBounds.Height / fonteNormal.GetHeight(e.Graphics) - 10
        []cabealho
        e.Graphics.DrawLine(canetadaimpressora, margemEsq, 60, margemDir, 60)
        e.Graphics.DrawLine(canetadaimpressora, margemEsq, 160, margemDir, 160)
        e.Graphics.DrawString(Lbl_Conteudo.Text, fonteTitulo, Brushes.Black, margemEsq + 200, 80, New StringFormat())
        []imagem
        []e.Graphics.DrawImage(Image.FromFile([]F:\Projecto Final Direito\Projecto_Final\Resources\print.bmp[]), 100, 68)
        e.Graphics.DrawString(System.DateTime.Today, fonteSubtitulo, Brushes.Black, margemDir - 150, 120, New StringFormat())
        []campos a serem impressos


        If Lbl_Conteudo.Text = []Relatrio de Fornecedores :[] Then
            e.Graphics.DrawString([]Nome : [], fonteNegrito, Brushes.Black, margemEsq, 170, New StringFormat())
            e.Graphics.DrawString([]Telefone : [], fonteNegrito, Brushes.Black, margemEsq + 300, 170, New StringFormat())
            e.Graphics.DrawString([]Celular[], fonteNegrito, Brushes.Black, margemEsq + 500, 170, New StringFormat())

            e.Graphics.DrawLine(canetadaimpressora, margemEsq, 200, margemDir, 200)
            []dados a serem impressos
            If linhasLidas <= linhasporpagina Then
                For linha = 0 To Dtg_Relatorios.RowCount - 1
                    If cont < 900 Then
                        e.Graphics.DrawString(Dtg_Relatorios.Item(1, linha).Value.ToString, fonteNegrito, Brushes.Black, margemEsq, cont)
                        e.Graphics.DrawString(Dtg_Relatorios.Item(2, linha).Value.ToString, fonteNormal, Brushes.Black, margemEsq + 300, cont)
                        e.Graphics.DrawString(Dtg_Relatorios.Item(3, linha).Value.ToString, fonteNormal, Brushes.Black, margemEsq + 500, cont)


                        cont += 25
                    Else
                        linhasporpagina = linhasLidas
                        If cont < 900 Then
                            e.HasMorePages = False
                        End If
                        cont = 295
                    End If
                    linhasLidas += 1

                Next

            End If

        ElseIf Lbl_Conteudo.Text = []Relatrio de Clientes :[] Then
            e.Graphics.DrawString([]Nome : [], fonteNegrito, Brushes.Black, margemEsq, 170, New StringFormat())
            e.Graphics.DrawString([]Telefone : [], fonteNegrito, Brushes.Black, margemEsq + 300, 170, New StringFormat())
            e.Graphics.DrawString([]Celular[], fonteNegrito, Brushes.Black, margemEsq + 500, 170, New StringFormat())

            e.Graphics.DrawLine(canetadaimpressora, margemEsq, 200, margemDir, 200)
            []dados a serem impressos
            If linhasLidas <= linhasporpagina Then
                For linha = 0 To Dtg_Relatorios.RowCount - 1
                    If cont < 900 Then
                        e.Graphics.DrawString(Dtg_Relatorios.Item(1, linha).Value.ToString, fonteNegrito, Brushes.Black, margemEsq, cont)
                        e.Graphics.DrawString(Dtg_Relatorios.Item(2, linha).Value.ToString, fonteNormal, Brushes.Black, margemEsq + 300, cont)
                        e.Graphics.DrawString(Dtg_Relatorios.Item(3, linha).Value.ToString, fonteNormal, Brushes.Black, margemEsq + 500, cont)


                        cont += 25
                    Else
                        linhasporpagina = linhasLidas
                        If cont < 900 Then
                            e.HasMorePages = False
                        End If
                        cont = 295
                    End If
                    linhasLidas += 1

                Next

            End If
        ElseIf Lbl_Conteudo.Text = []Relatrio de Estoque :[] Then
            e.Graphics.DrawString([]Quantidade : [], fonteNegrito, Brushes.Black, margemEsq, 170, New StringFormat())
            e.Graphics.DrawString([]Produto : [], fonteNegrito, Brushes.Black, margemEsq + 100, 170, New StringFormat())

            e.Graphics.DrawString([]Descrio : [], fonteNegrito, Brushes.Black, margemEsq + 250, 170, New StringFormat())

            e.Graphics.DrawString([]Total Custo : [], fonteNegrito, Brushes.Black, margemEsq + 400, 170, New StringFormat())
            e.Graphics.DrawString([]Total Venda : [], fonteNegrito, Brushes.Black, margemEsq + 550, 170, New StringFormat())


            e.Graphics.DrawLine(canetadaimpressora, margemEsq, 200, margemDir, 200)
            []dados a serem impressos
            If linhasLidas <= linhasporpagina Then

                For linha = 0 To Dtg_Relatorios.RowCount - 1

                    If cont < 900 Then

                        e.Graphics.DrawString(Dtg_Relatorios.Item(0, linha).Value.ToString, fonteNegrito, Brushes.Black, margemEsq, cont)
                        e.Graphics.DrawString(Dtg_Relatorios.Item(1, linha).Value.ToString, fonteNormal, Brushes.Black, margemEsq + 100, cont)
                        e.Graphics.DrawString(Dtg_Relatorios.Item(2, linha).Value.ToString, fonteNormal, Brushes.Black, margemEsq + 250, cont)
                        e.Graphics.DrawString(Dtg_Relatorios.Item(3, linha).Value.ToString, fonteNormal, Brushes.Black, margemEsq + 400, cont)
                        e.Graphics.DrawString(Dtg_Relatorios.Item(4, linha).Value.ToString, fonteNormal, Brushes.Black, margemEsq + 550, cont)



                        cont += 25
                    Else
                        linhasporpagina = linhasLidas
                        If cont < 900 Then
                            e.HasMorePages = False
                        Else


                        End If
                        cont = 295
                    End If
                    linhasLidas += 1
                Next
                e.Graphics.DrawString(Lbl_Resultao.Text, fonteNormal, Brushes.Black, margemEsq + 485, cont)
                e.Graphics.DrawString(Lbl_Resultao_Custo.Text, fonteNormal, Brushes.Black, margemEsq + 285, cont)


            End If


       End If

        []rodap

        e.Graphics.DrawLine(canetadaimpressora, margemEsq, margemInf, margemDir, margemInf)
        e.Graphics.DrawString(System.DateTime.Now.ToString(), fonteRodape, Brushes.Black, margemEsq, margemInf, New StringFormat())
        e.Graphics.DrawString([]Pag.[] & paginaactual, fonteRodape, Brushes.Black, margemDir, margemInf, New StringFormat())
    End Sub
          


Rogrio D Pinto


Resposta escolhida #490902 - 22/10/2019 20:10:32

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


Aqui mesmo no frum eu j passei um exemplo bem simples:
http://www.vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=455811&pagina=1
Veja se te ajuda.

____________________________________________________
No h nessa vida algo que no se possa alcanar, voc s precisa ir buscar.

#490932 - 24/10/2019 11:05:15

RDPISA
CATANDUVA
Cadast. em:Junho/2017


Citação:
:
Aqui mesmo no frum eu j passei um exemplo bem simples:
http://www.vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=455811&pagina=1
Veja se te ajuda.

ok vou dar uma olhada obrigado

Rogrio D Pinto


#490940 - 24/10/2019 21:25:55

RDPISA
CATANDUVA
Cadast. em:Junho/2017


Citação:
:
Aqui mesmo no frum eu j passei um exemplo bem simples:
http://www.vbmania.com.br/index.php?modulo=forum&metodo=abrir&id=455811&pagina=1
Veja se te ajuda.

Ainda no resolve

Rogrio D Pinto


#490946 - 25/10/2019 09:32:27

PERCIFILHO
MATAO [SP]
Cadast. em:Dezembro/2009


 Anexos estao visíveis somente para usuários registrados

Teste esse exemplo, talvez t d uma luz;

____________________________________________________
No h nessa vida algo que no se possa alcanar, voc s precisa ir buscar.

#491122 - 07/11/2019 12:28:21

RDPISA
CATANDUVA
Cadast. em:Junho/2017


Citação:
:
Teste esse exemplo, talvez t d uma luz;


Vou testar

Rogrio D Pinto


#491123 - 07/11/2019 13:27:04

RDPISA
CATANDUVA
Cadast. em:Junho/2017


Citação:
:
Teste esse exemplo, talvez t d uma luz;

Obrigado isso que eu precisava

Rogrio D Pinto


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por RDPISA em 07/11/2019 13:27:35