Página 1 de 2
sobre impressão
Enviado: 04 Jul 2007 16:56
por Everton
Olá turma, gostaria de mais uma vez contar com a ajuda de vcs. tenho que mudar os meus programas para imprimir em impressoras diferentes, pois até hj imprimo no modo normal lpt1, lpt2, lpt3...., agora queria ver com vcs como posso fazer para mapear impressoras da seguinte formas. O cliente manda um pedido ele imprime em uma impressora de pedidos, manda uma noata fiscal vai pra outra impressora, e assim vai, mas todos da rede fazem isso, eu antigamente estava usando a novell e resolvia redirecionando as Lpts para cada fila de impressão, agora estou passando tudo pra server 2003, ai não funciona mais assim, alguem poderia me dar uma ídeia como devo proceder, grato pela atenção..
Enviado: 04 Jul 2007 17:08
por Maligno
Uma vez cadastradas as impressoras no Windows, você poderia mandar imprimir pelo spooler. Há várias soluções de colegas que permitem isso: USB.EXE, USBPRINT, WAPI, etc.
Aliás, não sendo impressora USB, você também tem a opção de fazer um redirecionamento. A LIB CATools tem uma função pra isso que, segundo o que eu testei, funciona muito bem: NetRedir(). Ela equivale ao comando externo NET do DOS.
Agora, no que tange à nota fiscal, o ideal é que continue a imprimir diretamente e não pelo spooler. Não raro, o usuário pode querer imprimir diversas notas fiscais em seqüência. No sistema, o normal é que a NF seja numerada automaticamente após a impressão. Se for assim no seu caso, ao mandar imprimir, digamos, 10 NFs pelo spooler, todas estarão numeradas no sistema antes mesmo da primeira ser impressa. Se der problema (enroscar, por ex.), você terá vários formulários estragados e
todas as NFs numeradas.
Enviado: 04 Jul 2007 17:17
por sygecom
Buenas....olha que facil fazer isso usando a CT.LIB ou CTP.LIB...:
Código: Selecionar todos
IF TIPOIMP="NOTA"
NETREDIR("LPT1","\\NOMEMICRONOTA\NOMEIMPNOTA")
SET DEVICE TO PRINT
set print to lpt1
ELSEIF TIPOIMP="PEDIDO"
NETREDIR("LPT1","\\NOMEMICROPED\NOMEIMPPED")
SET DEVICE TO PRINT
set print to lpt1
endif
Abraços
Leonardo Machado
Enviado: 04 Jul 2007 17:19
por Maligno
Esqueceu de dizer que o terceiro parâmetro possivel de NetRedir() é uma senha, para o caso do servidor exigí-la.
Enviado: 04 Jul 2007 17:25
por Everton
Obrigado pela ideia, vc colocar em pratica e coloco aqui o resultado, valeu mesmo, conte comigo quando precisar
Enviado: 04 Jul 2007 17:33
por Maligno
No caso de precisar da CATools, vou subir os arquivos pro meu site e informar o link na seção de bate-papo. Já tinha no meu site, mas troquei de hoster e perdi alguns arquivos.
No demais, boa sorte. Caso precise, volte ao tópico com suas dúvidas.
Enviado: 04 Jul 2007 18:14
por sygecom
Maligno escreveu:Esqueceu de dizer que o terceiro parâmetro possivel de NetRedir() é uma senha, para o caso do servidor exigí-la.
Puxa...verade...como eu nunca usei com senha...acabei me esquecendo...mas para quem quiser acho que pode dar uma olhada na NG...deve ter referencias falando da NetRedir().
Abraços
Leonardo Machado
Enviado: 04 Jul 2007 19:27
por Maligno
sygecom escreveu:mas para quem quiser acho que pode dar uma olhada na NG...deve ter referencias falando da NetRedir().
Claro que tem. No pacote que vou subir, que é completo, acompanha os dois NGs da biblioteca.
Enviado: 05 Jul 2007 08:41
por Maligno
Enviado: 05 Jul 2007 16:16
por Grings
Maligno escreveu:
No sistema, o normal é que a NF seja numerada automaticamente após a impressão. Se for assim no seu caso, ao mandar imprimir, digamos, 10 NFs pelo spooler, todas estarão numeradas no sistema antes mesmo da primeira ser impressa. Se der problema (enroscar, por ex.), você terá vários formulários estragados e
todas as NFs numeradas.
Essa eu não entendí. Numerar a nota fiscal após a impressão ? Quer dizer que depois de impressa vc volta o formulário para imprimir o número da nota lá em cima ?
Enviado: 05 Jul 2007 16:26
por Maligno
Grings escreveu:Essa eu não entendí. Numerar a nota fiscal após a impressão ?
Quando digo numerar a NF me refiro à gravação do número no banco de dados.
Enviado: 17 Set 2007 12:05
por Everton
Ola Leonardo.
Fiz os teste aqui usando o NetRedir() funcionou +-, pois no final da rotina de impressão coloco o NetCancel() e ai ele mata a impressão no meio dela, pois a execução do sistema é bem mais rápido do que da impressora, e gostaria como posso resolver isso, pois estou direcionando algumas impressão somente pra determinada impressora e outras ´são impressas locamente, grato pela atenção.
Obs.: Para teste estou usando o windows XP e imprimindo no windows 98.
Enviado: 17 Set 2007 12:26
por sygecom
Aqui, tenho funções rapidas que não acontece isso !!! post a função que esta acontecendo isso !!!
Enviado: 17 Set 2007 14:28
por Eolo
Acho que o NETCANCEL() está a mais, não precisa: o "cancelamento" do primeiro NETREDIR() será feito pelo próximo NETREDIR()...
Com o NETCANCEL(), vc derruba o direcionamento, aí ferra mesmo.
Pegando o exemplo do Leonardo:
Código: Selecionar todos
NETREDIR("LPT1","\\NOMEMICRONOTA\NOMEIMPNOTA")
SET DEVICE TO PRINT
set print to lpt1
* impressão da nota1
* impressão da nota2
* blablabla
*
NETREDIR("LPT1","\\NOMEMICROPED\NOMEIMPPED")
SET DEVICE TO PRINT
set print to lpt1
* impressão do pedido1
* blablabla
Enviado: 17 Set 2007 15:41
por Everton
Boa tarde Leonardo.
Fiz alguns teste aqui e não dei mais esse problema, mas vou fazer bastante teste, pois acho que funciona legal mesmo, qualquer coisa lhe aviso.
Olá Eolo. como esta SC, pois aqui continua aquele calor de sempre, isso que o senhor me falou não dá certo, pois nos relatorios que uso no meu sistema uso a impressora local, e nesse caso so coloquei o NetRedir() em algumas funções que usem impressoras comuns, tipo, pedido, NF, boleto bancarios, entre outros. valeu