Soldi3r^^
Power Member
Boas pessoal.. tenho uma form com um datagrid, e quero que imprima os dados.. quando é uma página dá tudo bem.. mas se é mais do que uma não consigo por isto a dar direito..
O problema é que ou está sempre a inserir páginas, ou então os registos saem uns por cima de outros.. e ficam também os mesmos...
i need help ^^
PHP:
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
'Margens
Dim margem_esq, margem_dir As Integer
margem_esq = 50
margem_dir = 770
Dim LinhasLidas As Integer = 0
cont = 295
'Desenho
If My.Computer.FileSystem.FileExists("C:\Temp\" & endereco_logo) Then
Else
My.Computer.Network.DownloadFile("ftp://" & ftp_server & "/ftproot/" & endereco_logo, "C:\Temp\" & endereco_logo, "root", "zaqwerty")
End If
If endereco_logo = "" Then
Else
e.Graphics.DrawImage(Image.FromFile("C:\Temp\" & endereco_logo), margem_esq, 35, 100, 100)
End If
e.Graphics.DrawString("LOCAL EXPEDIÇÃO", font3, Brushes.Black, 185, 35)
e.Graphics.DrawString(nome, font3, Brushes.Black, 170, 50)
e.Graphics.DrawString(morada, font3, Brushes.Black, 170, 65)
e.Graphics.DrawString(cp & " " & localidade, font3, Brushes.Black, 170, 80)
e.Graphics.DrawString("Telefone: " & ntelefone & " Fax: " & fax, font3, Brushes.Black, 170, 95)
e.Graphics.DrawString("Factura / Recibo", font1, Brushes.Black, 535, 25)
e.Graphics.DrawString("Pág. 1 de 1", font3, Brushes.Black, 535, 45)
e.Graphics.DrawString(lblnome.Text, font1, Brushes.Black, 450, 165)
e.Graphics.DrawString(morada_cliente, font1, Brushes.Black, 450, 180)
e.Graphics.DrawString(cp_cliente, font1, Brushes.Black, 450, 195)
e.Graphics.DrawString(local_cliente, font1, Brushes.Black, 510, 195)
e.Graphics.DrawString("Factura nº " & lbln.Text, font1, Brushes.Black, margem_esq, 170)
e.Graphics.DrawString("Data " & data2, font1, Brushes.Black, margem_esq, 185)
e.Graphics.DrawString("Moeda EUR", font1, Brushes.Black, margem_esq, 200)
e.Graphics.DrawString("Pagamento Pronto Pagamento ", font1, Brushes.Black, margem_esq, 215)
e.Graphics.DrawString("Nº contribuinte " & NIF, font1, Brushes.Black, margem_esq, 230)
'Divisão da folha
e.Graphics.DrawLine(Pens.Black, margem_esq, 270, margem_dir, 270)
e.Graphics.DrawString("Código", font6, Brushes.Black, margem_esq, 275)
e.Graphics.DrawString("Descrição", font6, Brushes.Black, 185, 275)
e.Graphics.DrawString("Quant.", font6, Brushes.Black, 450, 275)
e.Graphics.DrawString("Preço unit. C/ IVA", font6, Brushes.Black, 500, 275)
e.Graphics.DrawString("Total C/ IVA", font6, Brushes.Black, 620, 275)
e.Graphics.DrawString("IVA", font6, Brushes.Black, 740, 275)
e.Graphics.DrawLine(Pens.Black, margem_esq, 290, margem_dir, 290)
'Rodapé
e.Graphics.DrawString("Processado por computador @ HouseGest V1.0", font3, Brushes.Black, margem_esq, 1080)
e.Graphics.DrawString(nome & " - " & morada & " , " & cp & " - " & localidade & " - " & "Capital Social " & capital & "€ Contribuinte " & NIF, font5, Brushes.Black, margem_esq, 1100)
'Rodapé esquerda
e.Graphics.DrawLine(Pens.Black, margem_esq, 950, margem_dir, 950)
e.Graphics.DrawString("Telefone :" & telefone_cliente, font4, Brushes.Black, margem_esq, 970)
'Rodapé Centro
e.Graphics.DrawString("Carga: Nossas Instalações", font1, Brushes.Black, 300, 990)
e.Graphics.DrawString("Data: " & Date.Now.ToShortDateString, font1, Brushes.Black, 300, 1005)
e.Graphics.DrawString("Hora: " & Date.Now.ToShortTimeString, font1, Brushes.Black, 300, 1020)
e.Graphics.DrawString("Descarga: Instalações do Cliente", font1, Brushes.Black, 300, 1035)
e.Graphics.DrawString("Expedição: ____-____-____", font1, Brushes.Black, 300, 1065)
'Rodapé Direita
e.Graphics.DrawString("TOTAL EUR ", font_preco, Brushes.Black, 520, 1050)
e.Graphics.DrawString(lbl_total.Text & " €", font_preco, Brushes.Black, 650, 1050)
'Desenha/Escreve produtos comprados
If LinhasLidas <= LinhasImpressas Then
For linha = 0 To DataGridView1.RowCount - 2
If cont < 900 Then
e.Graphics.DrawString(DataGridView1.Item(0, linha).Value.ToString, font_codigo, Brushes.Black, margem_esq, cont)
e.Graphics.DrawString(DataGridView1.Item(1, linha).Value.ToString, font1, Brushes.Black, 145, cont)
e.Graphics.DrawString(DataGridView1.Item(4, linha).Value.ToString, font1, Brushes.Black, 445, cont)
e.Graphics.DrawString(DataGridView1.Item(2, linha).Value.ToString, font1, Brushes.Black, 510, cont)
e.Graphics.DrawString(DataGridView1.Item(3, linha).Value.ToString, font1, Brushes.Black, 740, cont)
e.Graphics.DrawString(DataGridView1.Item(5, linha).Value.ToString, font1, Brushes.Black, 620, cont)
cont += 25
Else
LinhasImpressas = LinhasLidas
If cont < 900 Then
e.HasMorePages = False
Else
e.HasMorePages = True
End If
cont = 295
End If
LinhasLidas += 1
Next
End If
End Sub
O problema é que ou está sempre a inserir páginas, ou então os registos saem uns por cima de outros.. e ficam também os mesmos...
i need help ^^