Imprimir na Rede

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

alemao
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 12 Set 2005 17:11

Imprimir na Rede

Mensagem por alemao »

Amigos,

Tenho uma dúvida. Existe apenas uma impressora instalada na máquina principal, onde roda o sistema, e compartilhada na rede, permitindo impressões em programas windows através das outras máquinas da rede normalmente.

Mas quando tento imprimir algum relatório do sistema através de outra máquina, o sistema não localiza a impressora da rede, retornando o erro:

ERROR TERM/0 PRINT ERROR.

Existe algum SET que preciso ajustar para que ele reconheça a impressora compartilhada da rede?

Ou tenho que compartilhar a impressora via DOS ?
Visitante

Mensagem por Visitante »

Você terá que mapear a impressora ligando-a a uma porta LPT

Você pode fazer isso via Windows ou via DOS. Você escolhe

Digite no DOS NET USE/? para obter as sintaxes.

Um Clip Abraço
alemao
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 12 Set 2005 17:11

Mensagem por alemao »

Prefiro mapear via windows (XP), se for possível.

Qual a dica? Já tentei algumas opções aqui, mas não funcionou.
Avatar do usuário
software_facil
Usuário Nível 3
Usuário Nível 3
Mensagens: 211
Registrado em: 23 Fev 2005 12:19
Localização: Curitiba/PR
Contato:

Mensagem por software_facil »

Prezado,

Já teve postagem sobre o assunto, mas como a busca não está retornando, envio abaixo uma forma de imprimir em qualquer impressora de uma rede, usando uma função da biblioteca CA-TOOLS.

Antes do código do seu relatório, insira o texto abaixo :
NetRedir( "LPTx:", "\\Servidorxxx\HPxxx" )
Set Device To Print
Set Printer To LPTx

Após terminado o relatório, insira o texto abaixo :
Set Printer To
Set Device To Screen
NetCancel( "LPTx:" )

Funciona perfeitamente e fica transparente para o usuário final.

Abraços

PS: Serve também para mapear unidades de rede.
messenger : software_facil@hotmail.com
alemao
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 12 Set 2005 17:11

Mensagem por alemao »

Soft fácil,

Certo... Parece boa e confiável a dica. Só que eu terei de escrever essas linhas nas +- 20 rotinas de relatórios do sistema. Ou criar uma procedure e chamar a mesma nas 20 rotinas, o que dá na mesma em relação à mão-de-obra.

Isso não poderia ser feito no arquivo principal onde defino todos os SET´s do sistema e ficar valendo para toda vez que o SET DEVICE TO PRINT for solicitado? Ou seja, no arquivo principal eu coloco:

NetRedir( "LPTx:", "\\Servidorxxx\HPxxx" )

E fica valendo pra tudo... será que funciona? Senão tenho que modificar todas as procedures de relatórios, uma a uma.

Lembrando também que já tenho uma linha no principal definindo SET DEFAULT TO \\máquina01\pasta_sistema
Avatar do usuário
software_facil
Usuário Nível 3
Usuário Nível 3
Mensagens: 211
Registrado em: 23 Fev 2005 12:19
Localização: Curitiba/PR
Contato:

Mensagem por software_facil »

Prezado,

Nunca utilizei da forma como vc deseja, mas levando a lógica em consideração, uma vez capturada em LPTx a impressora que vc deseja, basta nos seus relatórios direcionar a impressão para a porta LPTx, portanto, funcionará.
Não esqueça de quando sair do programa, liberar LPTx. Eu nunca usei da forma descrita por vc, para não haver o problema de sempre checar LPTx, visto que o usuário tinha mania de sair do programa usando CTRL+ALT+DEL e finalizar aplicativo.

Abraços
messenger : software_facil@hotmail.com
alemao
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 12 Set 2005 17:11

Mensagem por alemao »

Ok. Vou testar dessa forma e te digo se funcionou. Acredito que sim, uma vez definida a porta LPT, vale pra tudo, creio eu. E apenas libero quando encerrar o sistema, mas se o cara teclar ctrl+alt+del ela não vai liberar a porta... vamos ver... te digo já se funcionou.
alemao
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 12 Set 2005 17:11

Mensagem por alemao »

Nada feito meu caro.

1º - NetRedir( "LPTx:", "\\Servidorxxx\HPxxx" ) - Essa função NetRedir() ele não reconheceu.

2º - Tentei usar apenas SET PRINTER TO [impressora] - Quando mando imprimir não dá nem sinal.
Avatar do usuário
software_facil
Usuário Nível 3
Usuário Nível 3
Mensagens: 211
Registrado em: 23 Fev 2005 12:19
Localização: Curitiba/PR
Contato:

Mensagem por software_facil »

Tem um pequeno detalhe, linkar a lib da CA-Tools junto.

Abraços
messenger : software_facil@hotmail.com
alemao
Usuário Nível 1
Usuário Nível 1
Mensagens: 15
Registrado em: 12 Set 2005 17:11

Mensagem por alemao »

Não tenho essa LIB aqui.... Onde posso encontrar? (desculpe abusar)
Visitante

Mensagem por Visitante »

Me envie um e-mail para marcus@lizander.net que eu te envio uma lib chamada Nantucket Tools II que tem a função netredir (a mesma que o software facil te recomendou), além de muitas outras. E ainda te mando o ng dela.

Um Clip Abraço.

Liz@nder
Pedro Junior
Usuário Nível 1
Usuário Nível 1
Mensagens: 34
Registrado em: 20 Ago 2003 00:54
Localização: Recife/PE

Mensagem por Pedro Junior »

Cara cria um bat como está descrito abaixo

@echo off
net use lpt1 \\backup04\HPLASERJ

Coloca este bat para ser executado no iniciar do windows e manda imprimir qualquer coisa pelo dos que você vai ter sucesso nas impressões com certeza.

\\backup04 é o computador onde a impressora está instalada
\HPLASERJ é o nome da impressora que instalada no computador
Um abraço
Pedro Junior
L&F Informatica
Usuário Nível 1
Usuário Nível 1
Mensagens: 14
Registrado em: 19 Abr 2007 15:03
Localização: Sacramento/MG

Imprimir na Rede

Mensagem por L&F Informatica »

Estou com um problema. Estou usando o comando NET USE LPT1 \\CAIXA\LX-300. Ai dou o comando de DIR >PRN e imprime normalmente, mas se acesso o sistema e mando imprimir aparece o erro "Error TERM/0 Print Error". No sistema estou usando os comandos:
SET DEVICE TO PRINTER
SET PRINTER TO LPT1
Este problema está acontecendo num cliente que usa o servidor com windows server 2008 e a impressora está no computador do caixa com windows 7 SP1. O acesso ao programa é pelo Terminal Server. A impressora é uma Epson LX-300.
Se alguém puder me dar uma luz, eu agradeço muito. Não sei mais o que fazer. Tentei de todas as formas e não dá certo.

Grato.

Fernando Borges.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Imprimir na Rede

Mensagem por sygecom »

Migra esse projeto para Harbour, em poucos dias faz isso, e tem milhares de benefícios...pense nisso.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

Imprimir na Rede

Mensagem por ANDRIL »

L&F Informatica escreveu:Estou usando o comando NET USE LPT1 \\CAIXA\LX-300. Ai dou o comando de DIR >PRN e imprime normalmente
Voce esta mapeando LPT1 na rede e dando DIR > PRN para o dispositivo local.
Já tentou DIR > LPT1

Importante: Se der acesso negado. Vá no PC onde a sua impressora estiver instalada fisicamente e libere acesso ao usuário TODOS na pasta C:\WINDOWS\SYSTEM32\SPOOL\PRINTERS, clique em propriedades desta pasta e vá na guia segurança e add o usuário todos com permissão total.

Até+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Responder