IMPRIMIR PAGINAS DE DADOS DO DATAGRIDVIEW

GABRIELTINTI 31/01/2014 18:18:59
#434038
Não consigo fazer o printpreviewcontrol mostrar todos os dados do datagridview. Ou ele pega a mesma página e repete ela infinitas vezes ou ele só imprime a primeira página. Eu preciso que ele percorra todos os dados do datagridview e coloque os dados no printpreviewcontrol no número total de folhas para aqueles dados.

Obrigado galera




e.Graphics.DrawLine(CanetaDaImpressora, MargemEsquerda, 200, MargemDireita, 200)
LinhasPorPagina = CInt(e.MarginBounds.Height / FonteNormal.GetHeight(e.Graphics) - 23)


Dim linha As Integer
linha = 210

Dim resultado As Double = 0
Dim soma As Double = 0

[ô] For i As Integer = 0 To 42

PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics))


While LinhaAtual < LinhasPorPagina


For i As Integer = 0 To FormPrincipal.DataGridView1.Rows.Count - 1
[ô] resultado = ((linha - 210) / 14.8)
[ô] If resultado < LinhasPorPagina Then

e.Graphics.DrawString(FormPrincipal.DataGridView1.Rows(i).Cells(0).Value.ToString(), FonteNormal, Brushes.Black, MargemEsquerda + 26, linha)
e.Graphics.DrawString(FormPrincipal.DataGridView1.Rows(i).Cells(1).Value.ToString(), FonteNormal, Brushes.Black, MargemEsquerda + 152, linha)
e.Graphics.DrawString(FormPrincipal.DataGridView1.Rows(i).Cells(2).Value.ToString(), FonteNormal, Brushes.Black, MargemEsquerda + 325, linha)
e.Graphics.DrawString(FormPrincipal.DataGridView1.Rows(i).Cells(3).Value.ToString(), FonteNormal, Brushes.Black, MargemEsquerda + 520, linha)

linha = linha + 20
LinhaAtual += 1

Next

End While
[ô]Rodape
e.Graphics.DrawLine(CanetaDaImpressora, MargemEsquerda, MargemInferior, MargemDireita, MargemInferior)
e.Graphics.DrawString(System.DateTime.Now.ToString(), FonteRodape, Brushes.Black, MargemEsquerda, MargemInferior, New StringFormat())
[ô]LinhaAtual += CInt(FonteNormal.GetHeight(e.Graphics))
[ô]LinhaAtual += 1

If (LinhaAtual > LinhasPorPagina) Then
LinhaAtual = 0
PrintPreviewControl1.Rows += 1
e.HasMorePages = True
Exit Sub
Else
e.HasMorePages = False
End If

e.Graphics.DrawString([Ô]Pagina : [Ô] & paginaAtual, FonteRodape, Brushes.Black, MargemDireita - 50, MargemInferior, New StringFormat())
paginaAtual += 1
PEDROALSOI 01/02/2014 09:06:14
#434040
Veja se isso te ajuda: veja aqui e aqui e talvez aqui


Eu ainda não testei
GABRIELTINTI 01/02/2014 10:00:34
#434041
PEDRO47501,

Não deu muito certo, pois o meu problema está sendo pegar colocar varias paginas de informações no printpreviewcontrol, eu não estou utilizando um banco de dados para colocar os dados no datagridview. O problema está na leitura de várias paginas pelo printpreviewcontrol.
NILSONTRES 01/02/2014 12:40:23
#434044
Resposta escolhida
Alguma possibilidade de vc utilizar o crystal reports ?
GABRIELTINTI 01/02/2014 12:50:25
#434046
já tentei utilizar, só que nao deu certo =/

é muito dificil fazer dessa forma que eu estou fazendo? Pois 80% está feito o problema é que ele fica repetindo as paginas =/
NILSONTRES 01/02/2014 13:02:35
#434047
Com o crystal isso não acontece, talvez vc não soube utilizar.
Tópico encerrado , respostas não são mais permitidas