Estou utilizando o NODOSIMP mas estou com alguns problemas:
- Não imprime a ultima linha da pagina nem a ultima linha do arquivo;
- Sempre pula uma pagina no final da impressão. Ex: se o relatorio tem 3 folhas ele imprime a folha 4 em branco.
Será que eu estou fazendo algo errado ou se já tem uma nova versão com as correções.
Atenciosamente,
José Malta Lócio
Falha na Impressão utilizando o NODOSIMP
Moderador: Moderadores
Falha na Impressão utilizando o NODOSIMP
Editado pela última vez por Maligno em 01 Nov 2010 11:53, em um total de 1 vez.
Razão: O presente tópico foi movido da seção CA-Clipper, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com o Clipper.
Razão: O presente tópico foi movido da seção CA-Clipper, uma vez que seu conteúdo não tem relação com os objetivos daquela seção, onde só podem constar dúvidas técnicas de programação diretamente relacionadas com o Clipper.
O NODOSIMP procura o CR+LF para entender que é o final da linha e enviar para a impressora. Por isso ele não esta imprimindo sua última linha da página.
Coloque uma linha em branco no final de cada página.
Soltar uma página em branco no final do relatório é um efeito colateral.
Se vc envia um FF/CHR(12) no final do arquivo, será pulada uma página. O NODOSIMP deve pular uma página no final do arquivo impresso tb.
Não fiz o teste ainda.
Espero ter ajudado. Boa sorte.
Coloque uma linha em branco no final de cada página.
Soltar uma página em branco no final do relatório é um efeito colateral.
Se vc envia um FF/CHR(12) no final do arquivo, será pulada uma página. O NODOSIMP deve pular uma página no final do arquivo impresso tb.
Não fiz o teste ainda.
Espero ter ajudado. Boa sorte.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
{POG - Programação Orientada a Gambiarra}
-
Josmar dos Santos
- Usuário Nível 3

- Mensagens: 277
- Registrado em: 11 Jan 2006 18:36
- Localização: Botucatu-SP
Re: Falha na Impressão utilizando o NODOSIMP
Persistir em fazer essa pergunta novamente, porque no tópico anterior não tive resposta. Esse tópico já está muito grande !. Fiz uma pesquisa, e achei esse que envolve a pergunta que eu queria fazer: É característica do "NODOSIMP" saltar uma folha em branco, ou há solução para isso ??
Josmar
Josmar
Re: Falha na Impressão utilizando o NODOSIMP
Como eu uso muito o NODOSIMP, apresento a minha forma de saltar página e evitar o relatado acima.
Logicamente a minha rotina de impressão abrange outras formas de apresentação de relatórios, tais como usar RTF para o WORD, gravar em SPOOL, apresentação na tela. Mas vai abaixo a forma para LPT1 ou USB via NODOSIMP.
Definir antes como será feita a impressão:
1 - Impressão na LPT1 direta
2 - Impressão pelo NODOSIMP na impressora USB
colocar esse valor na variável modo
***************************************************
Definir também quantos caracteres por linha terá o relatório, se for usar o NODOSIMP
80 -> colocar 60
Ppara os outros valores ir aumentando o valor para 65, ....
Teste de acordo com a sua impressora para ocupar o máximo possível do formulário e economizar papel
Colocar esse valor na variável total_linhas
*********************************************************************
Caso for usar o NODOSIMP definir também o arquivo a ser usado pelo SET PRINTER TO
De-lhe o nome de REL, por exemplo.
*************************************************************************
Logicamente a minha rotina de impressão abrange outras formas de apresentação de relatórios, tais como usar RTF para o WORD, gravar em SPOOL, apresentação na tela. Mas vai abaixo a forma para LPT1 ou USB via NODOSIMP.
Definir antes como será feita a impressão:
1 - Impressão na LPT1 direta
2 - Impressão pelo NODOSIMP na impressora USB
colocar esse valor na variável modo
***************************************************
Definir também quantos caracteres por linha terá o relatório, se for usar o NODOSIMP
80 -> colocar 60
Ppara os outros valores ir aumentando o valor para 65, ....
Teste de acordo com a sua impressora para ocupar o máximo possível do formulário e economizar papel
Colocar esse valor na variável total_linhas
*********************************************************************
Caso for usar o NODOSIMP definir também o arquivo a ser usado pelo SET PRINTER TO
De-lhe o nome de REL, por exemplo.
*************************************************************************
Código: Selecionar todos
setprc(0,0) // zera linha e coluna
use arqx // arquivo a ser listado
go top
do while ! eof()
if prow() < 5
cabecalho() // imprimir cabeçalho do relatório
endif
@ prow()+1, 1 say ....
@ prow(), 10 say ....
dbskip() // avança no arquivo
if prow() > total_linhas // definir esta variável pela quantidade de linhas que o NODOSIMP poderá
// imprimir em função da quantidade de caracteres = padrão 60 para 10 CPI
[b] avanc_pag(modo)[/b]
endif
enddo
.....
[b]fim_rela[/b](modo,l[b]imite)[/b] // limite = usar os valores aceitos pelo NODOSIMP que são 80, 96, 120, 140 e 160 de
// acordo com cada relatório a ser impresso
********************************
* Rotinas auxiliares
*******************************
PROCEDURE [b]avanc_pag(modo)[/b]
if modo == 1 // [b]LPT1[/b]
eject [b]
else //[/b] USB
@ prow()+1,0 say space(1) // descarrega a última linha ainda sem avanço
eject // faz o salto de formulário e para na próxima folha que poderá ser ou não
// impressa, dependendo do do while considerar EOF() ou não
endif
return .t.
PROCEDURE [b]fim_rela[/b](modo,tamanho)
local telin := savescreen()
if modo == 1 // LPT1 direto
avanc_pag() //
@ 0,0 say space(1)
else
@ prow(),pcol() say chr(13) //
endif
set printer on
set console on
set printer to
set device to screen
set cursor on
set printer off
if modo == 1 // tratamento apenas para o NODOSIMP
if tamanho == 80
run nodosimp &rel. 80 /pre/sel/ver
elseif tamanho == 96
run nodosimp &rel. 96 /pre/sel/ver
elseif tamanho == 120
run nodosimp &rel. 120 /pre/sel/ver/apa/mar9
elseif tamanho == 140
run nodosimp &rel. 120 /pre/sel/ver/apa/mar5
elseif tamanho == 160
run nodosimp &rel. 160 /pre/sel/ver/apa/mar15
endif
msg_tecla("Tecle algo para continuar no sistema.")
run del &rel.
endif
restscreen(,,,,telin)
Editado pela última vez por Maligno em 01 Nov 2010 11:52, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
O bom do computador é que ele resolve os problemas, sem nunca levantar nenhum.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.
Hoje atuo mais com Clipper 52E, e um pouquinho com XHarbour.


