PROBLEMA AO IMPRIMIR
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.
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.
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
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