MAIS DE UMA PAGINA EM PRINTDOCUMENT

PERCIFILHO 03/06/2011 15:32:02
#375788
Olá amigos, estou imprimindo com o PrintDocument e não estou conseguindo uma forma de fazer o relatório ser visualizado em mais de uma página.
O código que imprime está assim:

e.Graphics.DrawString([Ô]Relatório de Resumo do Estoque[Ô], New Font([Ô]Courier New[Ô], 12, FontStyle.Bold), Brushes.Black, 250, 50)
e.Graphics.DrawLine(Pens.Black, 1, 80, 830, 80)
e.Graphics.DrawString([Ô]Data Quant. Esp. Peso[Ô], New Font([Ô]Courier New[Ô], 10, FontStyle.Bold), Brushes.Black, 200, 100)
e.Graphics.DrawLine(Pens.Black, 1, 120, 830, 120)
conexao.Open()
Dim dacadastro As New SqlDataAdapter([Ô]Select * From Cadastro Order by espessura[Ô], conexao)
Dim dscadastro As New DataSet
dacadastro.Fill(dscadastro, [Ô]Cadastro[Ô])
Dim novalinha As Long = 110
Dim i As Integer
Dim j As Integer
For i = 0 To dscadastro.Tables([Ô]Cadastro[Ô]).Rows.Count - 1
Dim damovimentos As New SqlDataAdapter([Ô]Select * From Movimentos Where espessura Like [ô][Ô] & dscadastro.Tables([Ô]Cadastro[Ô]).Rows(i)([Ô]espessura[Ô]) & [Ô][ô] And saida Is Null Order by espessura, data[Ô], conexao)
Dim dsmovimentos As New DataSet
damovimentos.Fill(dsmovimentos, [Ô]Movimentos[Ô])
Dim totalquantidade As Long = 0
Dim totalpeso As Double = 0
For j = 0 To dsmovimentos.Tables([Ô]Movimentos[Ô]).Rows.Count - 1
e.Graphics.DrawString(dsmovimentos.Tables([Ô]Movimentos[Ô]).Rows(j)([Ô]data[Ô]) & Space(2) & CDbl
(dsmovimentos.Tables([Ô]Movimentos[Ô]).Rows(j)([Ô]quantidade[Ô])).ToString.PadLeft(4) & Space(4) & CDbl(dsmovimentos.Tables([Ô]Movimentos[Ô]).Rows(j)([Ô]espessura[Ô])).ToString([Ô]#0.00[Ô]).PadLeft(5) & Space(2) & CDbl(dsmovimentos.Tables([Ô]Movimentos[Ô]).Rows(j)([Ô]peso[Ô])).ToString([Ô]###,##0.00[Ô]).PadLeft(10), New Font([Ô]Courier New[Ô], 10, FontStyle.Regular), Brushes.Black, 200, novalinha + 20)
totalquantidade = totalquantidade + dsmovimentos.Tables([Ô]Movimentos[Ô]).Rows(j)([Ô]quantidade[Ô])
totalpeso = totalpeso + dsmovimentos.Tables([Ô]Movimentos[Ô]).Rows(j)([Ô]peso[Ô])
novalinha = novalinha + 20
Next
e.Graphics.DrawLine(Pens.Black, 1, novalinha + 20, 830, novalinha + 20)
e.Graphics.DrawString([Ô]Total >>>>> [Ô] & CDbl(totalquantidade).ToString.PadLeft(4) & Space(11) & CDbl(totalpeso).ToString([Ô]###,##0.00[Ô]).PadLeft(10), New Font([Ô]Courier New[Ô], 10, FontStyle.Bold), Brushes.Black, 200, novalinha + 30)
e.Graphics.DrawLine(Pens.Black, 1, novalinha + 50, 830, novalinha + 50)
novalinha = novalinha + 60
Next
conexao.Close()

O resultado é o da imagem.

Preciso identificar quando adicionar outra página sempre que o número de linhas ultrapassar o limite.

Alguém me ajuda, por favor?

Até mais.
PERCIFILHO 06/06/2011 10:48:28
#375952
Ninguém?
ADHEL 06/06/2011 11:11:58
#375953
Eu peguei um exemplo do macoratti e adaptei ao meu sistema e não tenho problemas
O link é esse http://www.macoratti.net/08/04/vbn8_imp.htm

Lá tem um trecho sobre continuar imprimindo
[ô]Incrementa o numero da pagina

paginaAtual += 1

[ô]verifica se continua imprimindo
If (LinhaAtual > LinhasPorPagina) Then
e.HasMorePages = True
Else
e.HasMorePages = False
End If

Dá uma olhada lá
PERCIFILHO 07/06/2011 09:23:28
#376041
Desculope, amigo, peguei esse exemplo, porém não consigo adaptar para o meu código. Tentei várias formas, mas nenhuma deu certo.Se você ou alguém puder me ajudar, agradeço. Vou continuar tentando.... pois eu não sou de desistir. Quem me conhece já sabe.
Até mais.
Tópico encerrado , respostas não são mais permitidas