PRINTVIEW QUEBRA DE PAGINA

F001E 14/09/2012 11:08:47
#409682
Bom dia Todos....
Como faço no PrintView uma quebra de Páginas...Tipo 2 ou mais Páginas...não estou conseguindo....segue o Código

Private Sub MontaRelatorio()
Try
Dim pd As PrintDocument = New PrintDocument()
AddHandler pd.PrintPage, AddressOf Me.rptErro
PrintPreview = New PrintPreviewDialog()
With PrintPreview
.Document = pd
.WindowState = FormWindowState.Maximized
.PrintPreviewControl.Zoom = 1
.Document.DefaultPageSettings.Landscape = False
.Text = [Ô]Ficha da Empresa[Ô]
.ShowDialog()
End With
Catch ex As Exception
TratarErro([Ô]frmRelPlanodeContas[Ô], [Ô]MontaRelatorio[Ô], Err.Number, Err.Description, Erl)
End Try
End Sub


Private Sub rptErro(ByVal sender As Object, ByVal Relatorio As System.Drawing.Printing.PrintPageEventArgs)
Try
Dim margemEsq As Single = Relatorio.MarginBounds.Left
Dim margemSup As Single = Relatorio.MarginBounds.Top
Dim margemDir As Single = Relatorio.MarginBounds.Right
Dim margemInf As Single = Relatorio.MarginBounds.Bottom

Dim FonteTitulo As Font
Dim FonteRodape As Font
Dim FonteNormal As Font
Dim FonteColuna As Font

FonteTitulo = New Font([Ô]Verdana[Ô], 15, FontStyle.Bold)
FonteRodape = New Font([Ô]Verdana[Ô], 8)
FonteNormal = New Font([Ô]Courier New[Ô], 8)
FonteColuna = New Font([Ô]Verdana[Ô], 10)

LinhaAtual = 0
SQL = [Ô][Ô]
SQL = SQL & [Ô]SELECT LINHA[Ô] & Chr(13)
SQL = SQL & [Ô] FROM RELATORIO[Ô] & Chr(13)
SQL = SQL & [Ô] WHERE 1 = 1[Ô] & Chr(13)
SQL = SQL & [Ô] ORDER BY SEQUENCIA[Ô]
CarregarDataSet(SQL, BancoSQLMagic, 0)
If oDataTable.Rows.Count > 0 Then
LinhaRelatorio = 1
For Each oDataRow In oDataTable.Rows
StrRelatorio = IIf(Convert.IsDBNull(oDataRow([Ô]LINHA[Ô])) = True, [Ô][Ô], oDataRow([Ô]LINHA[Ô]))
Relatorio.Graphics.DrawString(StrRelatorio, FonteNormal, Brushes.Black, 0, LinhaRelatorio, New StringFormat())
LinhaRelatorio = LinhaRelatorio + 15
LinhaAtual = LinhaAtual + 1
PaginaAtual += 1
If (CDbl(LinhaAtual) > CDbl(30)) Then
LinhaAtual = 0
Relatorio.HasMorePages = True
Else
Relatorio.HasMorePages = False
End If
Next
End If
Catch ex As Exception
TratarErro([Ô]frmRelPlanodeContas[Ô], [Ô]rptErro[Ô], Err.Number, Err.Description, Erl)
End Try
End Sub
F001E 14/09/2012 15:40:48
#409705
Galera ja fiz aki o Esquema do PrintView....segue o código...Falows...

Private Sub PagePrint(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs)
Try
Dim LinhasPorPagina As Single = 0
Dim PosicaoDaLinha As Single = 0
Dim LinhaAtual As Integer = 0
Dim MargemEsquerda As Single = e.MarginBounds.Left
Dim MargemSuperior As Single = 0
Dim MargemDireita As Single = e.MarginBounds.Right
Dim MargemInferior As Single = e.MarginBounds.Bottom
Dim CanetaDaImpressora As Pen = New Pen(Color.Black, 1)
Dim FonteTitulo As Font
Dim FonteRodape As Font
Dim FonteNormal As Font

Dim Titulolinha1 As String = [Ô]TESTE DE TESTE[Ô]
Dim TituloLinha4 As String = [Ô][Ô]
Dim ImpLinha2 As Boolean = True
Dim ImpLinha3 As Boolean = True
Dim ImpEmissao As Boolean = True
Dim DataEmissao As String = Date.Now
Dim IniciaImpressao As String = [Ô][Ô]
Dim Paisagem As Boolean = False

FonteTitulo = New Font([Ô]Verdana[Ô], 15, FontStyle.Bold)
FonteRodape = New Font([Ô]Verdana[Ô], 8)
FonteNormal = New Font([Ô]Courier New[Ô], 8)

LinhaAtual = 0

LinhasPorPagina = e.MarginBounds.Height / FonteNormal.GetHeight(e.Graphics) + 8

Dim GravalinhaAux As String
Dim QtColunasAux As Integer
Dim Versao As String

Versao = My.Application.Info.Version.ToString

If Paisagem Then
qtcolunas = 190
Else
qtcolunas = 118
End If

PaginaAtual += 1

LinhaAtual += 1
GravaLinha = [Ô][Ô]
GravaLinha = StrDup(qtcolunas, [Ô]-[Ô])
PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics))
e.Graphics.DrawString(GravaLinha, FonteNormal, Brushes.Black, 0, PosicaoDaLinha, New StringFormat())
GravaLinha = [Ô][Ô]
GravaLinha = IniciaImpressao & [Ô]|Sistema.: [Ô] & IIf(Sistema = [Ô]Conta[Ô], [Ô]Contábil[Ô], IIf(Sistema = [Ô]Facil[Ô], [Ô]Fiscal[Ô], Sistema)) & [Ô] [Ô] & Versao
GravalinhaAux = PosicionaTexto(CabDescEmpresa, RetornaTamanhoCampo(GravaLinha, 0), 2, True, True, [Ô] [Ô])
QtColunasAux = qtcolunas - RetornaTamanhoCampo(GravaLinha, 0) - RetornaTamanhoCampo(GravalinhaAux, 0)
Titulolinha1 = Mid(Titulolinha1, 1, QtColunasAux)
GravaLinha = GravaLinha & PosicionaTexto(titulolinha1, CDbl(QtColunasAux - 5), 3, True, True, [Ô] [Ô])
GravaLinha = GravaLinha & GravalinhaAux & [Ô]|[Ô]
LinhaAtual += 1
PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics))
e.Graphics.DrawString(GravaLinha, FonteNormal, Brushes.Black, 0, PosicaoDaLinha, New StringFormat())
GravaLinha = [Ô][Ô]
If ImpLinha2 Then
GravaLinha = [Ô]|Empresa.: [Ô] & Empresa & [Ô] - [Ô] & RecuperaCampoEmpresa([Ô]RAZAO[Ô])
If RetornaTamanhoCampo(Trim(RecuperaCampoEmpresa([Ô]CNPJCPF[Ô])), 0) = 0 And RetornaTamanhoCampo(Trim(RecuperaCampoEmpresa([Ô]CEI[Ô])), 0) <> 0 Then
GravalinhaAux = [Ô]CEI: [Ô] & PosicionaTexto(Mid(RecuperaCampoEmpresa([Ô]CEI[Ô]), 1, 18), 18, 1, True, True, [Ô] [Ô]) & [Ô] [Ô]
Else
GravalinhaAux = [Ô]CNPJ/CPF: [Ô] & PosicionaTexto(Mid(RecuperaCampoEmpresa([Ô]CNPJCPF[Ô]), 1, 18), 18, 1, True, True, [Ô] [Ô])
End If
GravalinhaAux = GravalinhaAux & [Ô]IE: [Ô] & PosicionaTexto(Mid(RecuperaCampoEmpresa([Ô]INSCESTADUAL[Ô]) & [Ô] |[Ô], 1, 15), 16, 1, True, True, [Ô] [Ô])
GravaLinha = GravaLinha & Space(qtcolunas - RetornaTamanhoCampo(GravaLinha, 0) - RetornaTamanhoCampo(GravalinhaAux, 0)) & GravalinhaAux
LinhaAtual += 1
PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics))
e.Graphics.DrawString(GravaLinha, FonteNormal, Brushes.Black, 0, PosicaoDaLinha, New StringFormat())
GravaLinha = [Ô][Ô]
End If
If ImpLinha3 Then
GravaLinha = [Ô]|Endereço: [Ô] & RecuperaCampoEmpresa([Ô]ENDERECO[Ô]) & [Ô] [Ô] & RecuperaCampoEmpresa([Ô]NUMERO[Ô])
GravalinhaAux = PosicionaTexto(Mid([Ô]Cidade: [Ô] & Mid(RecuperaCampoCidade(RecuperaCampoEmpresa([Ô]CIDADE[Ô])), 1, 43) & [Ô] - [Ô] & Mid(RecuperaCampoEmpresa([Ô]ESTADO[Ô]), 1, 2), 1, 48), 46, 1, True, True, [Ô] [Ô]) & [Ô]|[Ô]
GravaLinha = GravaLinha & Space(qtcolunas - RetornaTamanhoCampo(GravaLinha, 0) - RetornaTamanhoCampo(GravalinhaAux, 0)) & GravalinhaAux
LinhaAtual += 1
PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics))
e.Graphics.DrawString(GravaLinha, FonteNormal, Brushes.Black, 0, PosicaoDaLinha, New StringFormat())
GravaLinha = [Ô][Ô]
End If
GravaLinha = IIf(ImpEmissao, [Ô]|Emissão.: [Ô] + IIf(DataEmissao = [Ô][Ô], [Ô][Ô], DataEmissao), [Ô][Ô])
GravalinhaAux = [Ô]Página: [Ô] + Format(PaginaAtual, [Ô]00000[Ô]) & [Ô]|[Ô]
If RetornaTamanhoCampo(Trim(GravaLinha), 0) > RetornaTamanhoCampo(Trim(GravalinhaAux), 0) Then
GravalinhaAux = PosicionaTexto(GravalinhaAux, RetornaTamanhoCampo(Trim(GravaLinha), 0), 2, False, True, [Ô] [Ô])
ElseIf RetornaTamanhoCampo(Trim(GravaLinha), 0) < RetornaTamanhoCampo(Trim(GravalinhaAux), 0) Then
GravaLinha = PosicionaTexto(GravaLinha, RetornaTamanhoCampo(Trim(GravalinhaAux), 0), 1, False, True, [Ô] [Ô])
End If
QtColunasAux = qtcolunas - RetornaTamanhoCampo(GravaLinha, 0) - CDbl(RetornaTamanhoCampo(GravalinhaAux, 0) + 1)
TituloLinha4 = Mid(TituloLinha4, 1, QtColunasAux)
GravaLinha = GravaLinha & PosicionaTexto(TituloLinha4, QtColunasAux, 3, True, True, [Ô] [Ô])
GravaLinha = GravaLinha & Space(QtColunasAux - RetornaTamanhoCampo(PosicionaTexto(TituloLinha4, QtColunasAux, 3, True, True, [Ô] [Ô]), 0))
GravaLinha = GravaLinha & GravalinhaAux
LinhaAtual += 1
PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics))
e.Graphics.DrawString(GravaLinha, FonteNormal, Brushes.Black, 0, PosicaoDaLinha, New StringFormat())
GravaLinha = [Ô][Ô]
If CodigoClienteNaLicenca = [Ô]0[Ô] Or RetornaTamanhoCampo(Trim(CodigoClienteNaLicenca), 0) = 0 Then
GravaLinha = PosicionaTexto([Ô] SOFTWARE PARA AVALIAÇÃO - NÃO LICENCIADO [Ô], qtcolunas, 3, False, True, [Ô]#[Ô])
Else
GravaLinha = StrDup(qtcolunas, [Ô]-[Ô])
End If
LinhaAtual += 1
PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics))
e.Graphics.DrawString(GravaLinha, FonteNormal, Brushes.Black, 0, PosicaoDaLinha, New StringFormat())

LinhaAtual += 1
While (LinhaAtual < LinhasPorPagina AndAlso LinhaTabela < Leitor.Rows.Count)
StrRelatorio = Leitor.Rows(LinhaTabela)(0).ToString()
PosicaoDaLinha = MargemSuperior + (LinhaAtual * FonteNormal.GetHeight(e.Graphics))
e.Graphics.DrawString(StrRelatorio, FonteNormal, Brushes.Black, 5, PosicaoDaLinha, New StringFormat())
LinhaAtual += 1
LinhaTabela += 1
End While

If (LinhaAtual > LinhasPorPagina) Then
e.HasMorePages = True
Else
e.HasMorePages = False
End If

Catch ex As Exception
TratarErro([Ô]frmRelPlanodeContas[Ô], [Ô]rptErro[Ô], Err.Number, Err.Description, Erl)
End Try
End Sub
Tópico encerrado , respostas não são mais permitidas