Só imprime quando sai do sistema
Moderador: Moderadores
-
Paulo Pereira
- Usuário Nível 2

- Mensagens: 79
- Registrado em: 28 Abr 2011 00:29
- Localização: Joinville / SC
Só imprime quando sai do sistema
Ola
Num cliente que tenho, rede windows, servidor server 2003,
sistema em clipper 5.2e, compilado com blinker
o sistema só imprime, na LPT1 ou gera arquivo apenas quando o usuario sai do sistema.imaginem o inconveniente...
porque isso ?
O comando é o classico
set device to print
set print to LPT1
Num cliente que tenho, rede windows, servidor server 2003,
sistema em clipper 5.2e, compilado com blinker
o sistema só imprime, na LPT1 ou gera arquivo apenas quando o usuario sai do sistema.imaginem o inconveniente...
porque isso ?
O comando é o classico
set device to print
set print to LPT1
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Só imprime quando sai do sistema
Olá!
Você está fechando o arquivo de impressão? Após a última linha impressa, emita os comandos:
Você está fechando o arquivo de impressão? Após a última linha impressa, emita os comandos:
Código: Selecionar todos
EJECT
SET PRINTER TO[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Só imprime quando sai do sistema
Só precisa do SET PRINTER TO pra "terminar" a impressão.
O EJECT, só se for necessário ejetar o papel.
O EJECT, só se for necessário ejetar o papel.
Só imprime quando sai do sistema
Prezado Colega
Outra mudança que resolve o problema é modificar no registro do Windows.
Entre no editor de registro do Windows - REGEDIT
Procure pelo valor LPT_TIMEOUT
Mude o dado do valor de 15 para 1
Continue a busca com F3 e vá alterando até que chegue ao final do registro.
Até logo.
Marcelo
Outra mudança que resolve o problema é modificar no registro do Windows.
Entre no editor de registro do Windows - REGEDIT
Procure pelo valor LPT_TIMEOUT
Mude o dado do valor de 15 para 1
Continue a busca com F3 e vá alterando até que chegue ao final do registro.
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
-
Paulo Pereira
- Usuário Nível 2

- Mensagens: 79
- Registrado em: 28 Abr 2011 00:29
- Localização: Joinville / SC
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Só imprime quando sai do sistema
Mas aconselho também a executar a indicação do Marcelo para ajustar o LPT_TIMEOUT.Paulo Pereira escreveu:o set printer to , resolveu..
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Só imprime quando sai do sistema
O TIMEOUT também funciona, mas é necessário apenas se o programa em DOS não tiver um comando para "avisar" ao SO que o trabalho de impressão terminou. Só que o Clipper tem esse comando, e ele é o SET PRINTER TO.
Quando uma linguagem NÃO tem um comando como este (ou ele é omitido), aí entra o TIMEOUT, ou seja: como o WIndows não sabe se um determinado trabalho de impressão já acabou, ele fica esperando o tempo definido em TIMEOUT. Passado esse tempo, nada acontecendo, ele "assume" que a coisa terminou e inicia a impressão.
Porque a impressão só é iniciada quando se sai do programa? Bem, quando o programa é terminado, todos os respectivos handles são fechados pelo Windows, incluindo o da porta da impressora (é exatamente o que o SET PRINTER TO faz), aí o Windows sabe que o trabalho de impressão foi terminado e inicia a impressão imediatamente.
Fonte: http://www.printfil.com/article/slow-do ... indows.htm. Está em inglês mas é só usar um tradutor.
Quando uma linguagem NÃO tem um comando como este (ou ele é omitido), aí entra o TIMEOUT, ou seja: como o WIndows não sabe se um determinado trabalho de impressão já acabou, ele fica esperando o tempo definido em TIMEOUT. Passado esse tempo, nada acontecendo, ele "assume" que a coisa terminou e inicia a impressão.
Porque a impressão só é iniciada quando se sai do programa? Bem, quando o programa é terminado, todos os respectivos handles são fechados pelo Windows, incluindo o da porta da impressora (é exatamente o que o SET PRINTER TO faz), aí o Windows sabe que o trabalho de impressão foi terminado e inicia a impressão imediatamente.
Fonte: http://www.printfil.com/article/slow-do ... indows.htm. Está em inglês mas é só usar um tradutor.
Só imprime quando sai do sistema
Trocando em miúdos significa que...
Se tem o fonte. Use o SET PRINTER TO
Se não tiver. Altere o LPT_TIMEOUT
Até logo.
Marcelo
Se tem o fonte. Use o SET PRINTER TO
Se não tiver. Altere o LPT_TIMEOUT
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Só imprime quando sai do sistema
O Paulo Pereira não mencionou "falta dos fontes", então o SET PRINTER TO é a resposta ao problema levantado no post.
Aliás, foi o que ele aplicou. E funcionou.
Aliás, foi o que ele aplicou. E funcionou.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Só imprime quando sai do sistema
Sim, já sabemos, aliás desde o começo já desconfiávamos que o problema estava em fechar o relatório. Mas como disse eu anteriormente, "também" seria conveniente acertar o TIMEOUT, justamente para outros casos. Mas que seja algo tão relevante. Por isso, eu sou sempre a favor de criar arquivo de impressão antes, salvo em algumas situações que preciso imprimir em modo gráfico. Mas como estamos na seção Clipper, deduzimos que não é o caso...
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Só imprime quando sai do sistema
Pablo, desculpe, mas a pergunta do Paulo Pereira foi específica, então a resposta não deveria ser na mesma linha, pra não virar desvio de assunto? Ele não colocou o SET PRINTER TO (porque não sabia), tava dando problema, agora ele colocou e tá resolvido, então o que são esses "outros casos"? Alterar o registro do ruindows pra "outros casos"? Desculpe, não entendi porque "seria conveniente também acertar o Timeout" para o Paulo Pereira.Mas como disse eu anteriormente, "também" seria conveniente acertar o TIMEOUT, justamente para outros casos. Mas que seja algo tão relevante.
O Alexandre Santos, lá no começo, já matou o problema. Exceto pelo EJECT a mais...
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Só imprime quando sai do sistema
Do jeito que está se abordando este assunto do TIME OUT, sim está sendo desvio de assunto. Porque estaríamos aprofundando no assunto. Eu apenas complementei que seria interessante, não para esse caso em que ele não estava imprimindo. Eu apenas quis complementar para outros casos em que muitos dos programadores em Clipper ainda imprimem diretamente à impressora, aliás a porta paralela da impressora. Aí sim a questão de reduzir o tempo do TIME OUT se justificaria. Então, o conselho não foi somente pro Paulo e sim para todos aqueles que ainda imprimem direto, não como neste caso do Paulo que está direcionando a saída de impressão para arquivo.
Lembra quando imprimíamos no Win98, não demorava quase nada para começar a sair a impressão... bem quando saiu o XP já notava-se a demora.
https://pctoledo.org/forum/fileba ... t=s&page=1
Lembra quando imprimíamos no Win98, não demorava quase nada para começar a sair a impressão... bem quando saiu o XP já notava-se a demora.
Sim, por quê não ? Alterar o registro do Windows é muitas vezes necessário. Aqui no fórum foram abordado muitas vezes essa questão da demora na impressão e com respeito ao acesso de dbfs. Eu até disponibilizei um utilitário que altera o registro nesses pontos, considerando vários tópico que indicavam a prática. Um deles é do mestre Rochinha. Veja aqui para download:Alterar o registro do ruindows pra "outros casos"?
https://pctoledo.org/forum/fileba ... t=s&page=1
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Só imprime quando sai do sistema
Ah, agora ficou perfeitamente claro.
É que eu não tinha atentado ao título do post, "Só imprime quando sai do sistema".
Agora entendi.
É que eu não tinha atentado ao título do post, "Só imprime quando sai do sistema".
Agora entendi.
Só imprime quando sai do sistema
Prezados Colegas
Eu complementei a resposta foi pensando nos futuros colegas que poderão vir a precisar, talvez alguns deles não tenham os fontes ou mesmo nos casos que se tenha os fontes mas eles não estejam disponíveis no momento. Sendo assim o post fica mais completo e serve para ambos os casos. Além é claro de enriquecer didaticamente o fórum e os colegas.
Até logo.
Marcelo
Eu complementei a resposta foi pensando nos futuros colegas que poderão vir a precisar, talvez alguns deles não tenham os fontes ou mesmo nos casos que se tenha os fontes mas eles não estejam disponíveis no momento. Sendo assim o post fica mais completo e serve para ambos os casos. Além é claro de enriquecer didaticamente o fórum e os colegas.
Até logo.
Marcelo
Programador que é programador, quando tá de folga vai inventar função nova, fazer testes, ou seja... se divertir
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Cobra 210 - Drive de 8" 1.024 KB - 64 KB RAM - Impressora de Linha Cobra - Visicalc - Fortran - Dialog - Sistema Operacional SP/M (é sp/m mesmo - era o cp/m da cobra)
Só imprime quando sai do sistema
Marcelo Clipper, desculpe se me expressei mal, entendo a sua atitude e a respeito, mas meu ponto é o seguinte: o Paulo Pereira foi específico em sua pergunta, então porque não dar a resposta específica?
O título do post é "Só imprime quando sai do sistema", então qual a resposta específica do Clipper pra isso? O Alexandre Alxsts sacou o problema e sugeriu a resposta certa, matou a pau: SET PRINTER TO (exceção ao EJECT a mais). Tanto que resolveu o problema do Paulo Pereira. Fim.
A sugestão que vc deu, embora de alguma forma também resolva o problema, pode levar a crer que o Clipper não tem resposta apropriada pro problema e a saída é mexer no registro do Windows. Será que o Paulo Pereira e outros não poderiam ser induzidos a achar que essa sua sugestão era também necessária, em conjunto ou como alternativa ao SET PRINTER TO? Na minha experiência, não é. Eu nunca mexi no registro do Windows em nenhum cliente. Imagina numa rede com algumas dezenas de PCs, vc ter que mexer no registro de todos eles só porque faltou (ou não) o SET PRINTER TO...
Se amanhã um outro colega entrar no post e dizer que não tem os fontes pra incluir o SET PRINTER TO, aí sim eu concordo que caberia uma intervenção como a que vc fez.
É isso. Desculpe novamente se me expressei mal. Abraço!
O título do post é "Só imprime quando sai do sistema", então qual a resposta específica do Clipper pra isso? O Alexandre Alxsts sacou o problema e sugeriu a resposta certa, matou a pau: SET PRINTER TO (exceção ao EJECT a mais). Tanto que resolveu o problema do Paulo Pereira. Fim.
A sugestão que vc deu, embora de alguma forma também resolva o problema, pode levar a crer que o Clipper não tem resposta apropriada pro problema e a saída é mexer no registro do Windows. Será que o Paulo Pereira e outros não poderiam ser induzidos a achar que essa sua sugestão era também necessária, em conjunto ou como alternativa ao SET PRINTER TO? Na minha experiência, não é. Eu nunca mexi no registro do Windows em nenhum cliente. Imagina numa rede com algumas dezenas de PCs, vc ter que mexer no registro de todos eles só porque faltou (ou não) o SET PRINTER TO...
Se amanhã um outro colega entrar no post e dizer que não tem os fontes pra incluir o SET PRINTER TO, aí sim eu concordo que caberia uma intervenção como a que vc fez.
É isso. Desculpe novamente se me expressei mal. Abraço!