Página 1 de 1
Salto de página no formulário razão
Enviado: 08 Jul 2011 15:59
por Marcio_Carneiro
Olá, amigos
Estou imprimindo em formulário razão.
Antes de imprimir dou comando para configurar o tamanho 33 linhas
Ejeto a página
Depois de imprimir volto para tamanho 66.
O problema: ao ejetar a cabeça de impressão para no meio da página seguinte, e quando dou novamente comando
de impressão, ele avança para o início da mesma página, e quando chega lá, vai para a página seguinte.
Onde posso estar errando?;
O comando que estou dando é: chr(27)+"C"+Chr(33) <----- trinta e três linhas
Salto de página no formulário razão
Enviado: 09 Jul 2011 10:13
por Jairo Maia
Olá Marcio,
Por favor, esclareça as seguintes dúvidas para que possamos ajudar:
Marcio_Carneiro escreveu:Estou imprimindo em formulário razão.
Branco ou pré-impresso? Se for branco, o layout vc está montando, ai tem mais código envolvido, não só os de impressão.
Marcio_Carneiro escreveu:Depois de imprimir volto para tamanho 66.
Vc está fazendo isso após a impressão de cada formulário? Não deveria ser apenas quando encerrasse todas impressões?
Marcio_Carneiro escreveu:O comando que estou dando é: chr(27)+"C"+Chr(33) <----- trinta e três linhas
Para setar o tamanho da página, se impressora epson ou compatível está correto, este é o comando.
Quanto ao posicionamento do carro, vc pode fazer este controle, mas forneça estas informações primeiro para sabermos por onde começar.
Salto de página no formulário razão
Enviado: 09 Jul 2011 15:06
por rubens
Já verificou se a impressora não está configurada para efetuar o salto no picote...
Tem impressoras que estão com esta configuração ativa..
Tente também um setprc(0,0) no início da impressão
Rubens
Salto de página no formulário razão
Enviado: 21 Jul 2011 15:33
por Marcio_Carneiro
Obrigado pela atenção:
Respondendo as perguntas: o formulário é branco, sem marcação.
Ora utilizo prow(), ora informo a linha para imprimir.
Na minha lx 810 está dando certo, o erro ocorre principalmente na lx 300
A minha rotina de impressão:
Segue as rotinas (simplificadas) que utilizo:
Código: Selecionar todos
* imprimindo a lista
If (modelo # 1)
Tam_Folha(33)
If (modelo = 0)
CPI(12)
EndIf
EndIf
Nome_Relat("Lista P/Entrega")
If (modelo = 0)
Do_Relat("Info_Relat",.F.)
Else
Do_Relat("Info_Relat", .F.)
EndIf
If (modelo # 1)
Tam_Folha(66)
If (modelo = 0)
CPI(10)
EndIf
EndIf
Do Relat
///
* Imprime a linha superior do relat¢rio.
linha = 1
@linha, 0 Say linha1
* imprime o relat¢rio e finaliza
eject
* apos o eject ele para no meio da p gina do formul rio
e quando vou imprimir um outro relat¢rio ele avan‡a para o in¡cio da folha
e avan‡a para outra folha( o que est dando erro)
Tam_Folha(33)
If (FalhaImpressora())
Return
EndIf
Set Device To Print
*1
@0, 1 Say SubStr(borda, 1, 1) + Replicate(SubStr(borda, 2, 1), 37) + ;
SubStr(borda, 12, 1) + Replicate(SubStr(borda, 2, 1), 38) + ;
SubStr(borda, 3, 1)
Procedure Tam_Folha
Parameters quantidade_
If (comandos_ativados)
Private ypos_ := PRow(), xpos_ := PCol(), dev := Set(_SET_DEVICE)
ErrorBlock({|erro| ErroImpressora(erro)})
Set Device To Print
Begin Sequence
If (quantidade_ = Nil)
quantidade_ = 66
EndIf
@Prow(), Pcol() say chr(27)+"2"+chr(27)+"C"+chr(quantidade_)
End Sequence
Set(_SET_DEVICE, dev)
SetPrc(ypos_, xpos_)
RestauraErro()
EndIf
Return
Procedure CPI
Parameters atual
If (comandos_ativados)
Private dev := Set(_SET_DEVICE), xpos_ := PCol(), ypos_ := PRow()
ErrorBlock({|erro| ErroImpressora(erro)})
Set Device To Print
Begin Sequence
If (PCount() = 0)
@PRow(), PCol() Say Chr(27) + "M"
ElseIf (atual = 12)
@PRow(), PCol() Say Chr(27) + "M"
Else
@PRow(), PCol() Say Chr(27) + "P"
EndIf
End Sequence
Set(_SET_DEVICE, dev)
SetPrc(ypos_, xpos_)
RestauraErro()
EndIf
Return
Salto de página no formulário razão
Enviado: 22 Jul 2011 09:02
por Jairo Maia
Olá Marcio,
Como é formulário branco, nas linhas 54 a 56 do código vc está iniciando a montagem do layout. Provavelmente, vc o fecha na linha 33 do formulário, estou correto?
Seu código está um pouco confuso, nas linhas 33 e 34 do código, vc imprime na linha 1 do formulário, mas seu layout inicia na linha 54 do código. Entendo que seu problema é outro, é o problema do salto de página, mas adianto que se vc tiver fechando o layout na linha 33 do formulário, vc não pode usar o EJECT, já que a linha seguinte será a linha 0 do próximo formulário.
Leve em conta a dica do colega Rubens, e coloque antes do inicio da impressão, um SetPrc( 0, 0 ) também, e responda a minha pergunta acima, ela é importante para entendermos o que pode estar ocorrendo.
Salto de página no formulário razão
Enviado: 22 Jul 2011 13:59
por Marcio_Carneiro
Sim, finalizo na linha 33
Salto de página no formulário razão
Enviado: 22 Jul 2011 14:04
por Marcio_Carneiro
Respondendo a outra pergunta: este prg onde faço referência a linha 0 é de outro programa, digo, módulo. O primeiro é feito utilizando o relat. e o segundo imprimo diretamente.
Salto de página no formulário razão
Enviado: 22 Jul 2011 15:56
por SandroBelarmino
Marcio
Dê uma olhada no prg que eu anexei, eu costumava usar conforme o código abaixo e funcionava em qualquer epson.
Salto de página no formulário razão
Enviado: 23 Jul 2011 13:49
por Jairo Maia
Olá Sandro,
Vi os controles de impressora que vc passou. O problema me parece que isto está acontecendo pq ele está avançando para o próximo formulário, pelo menos é o que me parece.
Olá Márcio,
Marcio_Carneiro escreveu:Sim, finalizo na linha 33
Como vc está fazendo impressão em todo o formulário, coloque por segurança o SetPrc( 0, 0 ) antes de iniciar a impressão, e remova o EJECT e faça um teste. Veja o que acontece e reporte, ok?