PROBLEMA AO IMPRIMIR

USUARIO.EXCLUIDOS 04/04/2007 19:32:37
#210417
Private Sub CmdImprimir_Click()
Dim i As Integer
Dim j As Integer
Dim h As Integer
Dim Lin As Single
Dim Cont_Lin As Single
Dim Y As Single
Dim Pag As Integer
'Dim Total_Pag As Single
Dim Bairro As String
Dim F As Integer
Dim g As Integer
Dim PaginaInicial, Paginafinal, numerodecopias, K
CommonDialog1.CancelError = True

'mostra a janela para impressora
CommonDialog1.ShowPrinter

'Captura os valores definidos pelo usuário na janela
If Total_Pag <> 0 Then
PaginaInicial = 1
End If
If Total_Pag = 1 Then
Paginafinal = Total_Pag
End If
numerodecopias = CommonDialog1.Copies
For K = 1 To numerodecopias
j = 1
F = 2
g = 1
i = 1
Printer.FontName = "Draft"
Printer.FontSize = 9
'Printer.PrintQuality = vbPRPQHigh
Printer.ColorMode = 1
Printer.ForeColor = &HFF0000
Lin = 0
Cont_Lin = 0
Pag = 1


Lin = FlexRel.Rows - 1



If FlexRel.Rows <> 0 Then

While Not FlexRel.TextMatrix(i, 1) = ""


Cont_Lin = Cont_Lin + 1
Bairro = FlexRel.TextMatrix(i, 6)
If Cont_Lin = 1 Then
Printer.Print
Printer.Print

Printer.Print Tab(5); "RELATÓRIO"
'Printer.FillColor = 10
Printer.ForeColor = Blue
Printer.Print Tab(5); Bairro;
Printer.Print Tab(5); "Total de Registros Localizados:"; Lin; Tab(125); "Pag"; Pag; "/"; Total_Pag;
Printer.Print
Printer.Print


Printer.Print Tab(5); FlexRel.TextMatrix(i, 8)


Printer.Print Tab(5);



Printer.Print
Printer.Print Tab(5); "Codigo"; Tab(15); "Proprietário"; Tab(55); "Número"; Tab(70); "Espécie"; Tab(90); "Nome"; Tab(110); "Raça";
Printer.Print Tab(15); "Sexo"; Tab(30); "Porte"; Tab(45); "Pelagem"; Tab(60); "Cor"; Tab(90); "Idade"; Tab(99);
Printer.Print
Printer.Print


Printer.Print Tab(4); "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";


Printer.Print

End If

Printer.Print

Printer.Print Tab(5); FlexRel.TextMatrix(i, 9); Tab(15); FlexRel.TextMatrix(i, 1); Tab(55); FlexRel.TextMatrix(i, 4); Tab(70); FlexRel.TextMatrix(i, 11); Tab(90); FlexRel.TextMatrix(i, 12); Tab(110); FlexRel.TextMatrix(i, 22);
Printer.Print Tab(15); FlexRel.TextMatrix(i, 14); Tab(30); FlexRel.TextMatrix(i, 15); Tab(45); FlexRel.TextMatrix(i, 16); Tab(60); FlexRel.TextMatrix(i, 17); Tab(90); FlexRel.TextMatrix(i, 18); Tab(99); FlexRel.TextMatrix(i, 19);
Printer.Print Tab(15); "( ) Vacinado"; Tab(30); "( )Cadastrado e Não Vacinado"; Tab(65); "( )Mudou"; Tab(80); "( )Óbito"; Tab(95); "( )Não Localizado"; Tab(120); "Data____/___/___";

Printer.Print Tab(4); " ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------";

If Cont_Lin <> 13 Then
Printer.Print Tab(5);

End If

If Cont_Lin = 13 Then
Printer.NewPage
Pag = Pag + 1
Cont_Lin = 0
End If


i = i + 1
j = j + 1
On Error GoTo verror
If FlexRel.TextMatrix(i, 6) = FlexRel.TextMatrix(j - 1, 6) Then
Else

Printer.NewPage
Pag = Pag + 1
Cont_Lin = 0
j = i + 1
End If

If FlexRel.TextMatrix(i, 8) = FlexRel.TextMatrix(j - 1, 8) Then
Else
Printer.NewPage
Pag = Pag + 1
Cont_Lin = 0

End If
If j > i Then
j = j - 1
End If
Wend
verror:
Select Case Err.Number
Case Err.Number = 381
Resume Next
End Select

End If
Next
Printer.EndDoc
CmdLimpar_Click
End Sub
Este é o código que to usando pra imprimir os relatórios, só na impress. matricial, à cada página que passa vai iniciando sempre mais pra baixo.
Tipo a 1ê começa certo, a segunda já inicia + abaixo e assim por diante.
Alguem tem alguma idéia do q ta acontecendo, pra me ajudar.
NLSOLUCOES 04/04/2007 21:29:35
#210425
Colega de cara, criaria uma rotina para verificar a quantidade de registros impressos pós cabeçalho de relatório;

Aih é só vc definir na função á criar, o número de registros máximos pós cabeçalho detectado por vc e então colocar Printer.Newpage.

Bom vc alterar o looping para While e assim detectar, tanto nova página quanto fim de registros a ser impressosÂÂ'o processo é até mais rápido.

[]ÂÂ's
Tópico encerrado , respostas não são mais permitidas