Página 1 de 1
Impressão em várias portas
Enviado: 29 Nov 2005 00:35
por rbonotto
Me parece que é facil...mas...
Seguinte, tenho um banco de dados onde o usuario aponta: este item vai na impressora em lpt1, este na com1, este na com2, este....
A rede será novell e no programa escrevi assim:
** porta será igual a um campo chamado PORTA no DBF
WHILE !EOF()
IF ALLTRIM(porta) == "LPT1"
SET PRINTER TO LPT1
@PROW()+1,.....
ELSEIF ALLTRIM(porta )== "COM1"
SET PRINTER TO COM1
@PROW()+1,.....
ELSEIF ALLTRIM(porta) == "COM2"
SET PRINTER TO COM2
@PROW()+1,.....
ETC...
SKIP
END
Ou to numa "furada"....
Enviado: 29 Nov 2005 04:38
por evaldo
Você pode fazer da seguinte forma:
SET PRINTER TO (cPorta)
onde cPorta vai receber a porta que vai imprimir.
cPorta := "LPT1"
OK
Enviado: 29 Nov 2005 04:50
por rochinha
Amiguinho
Pode funcionar sim mas não pode esquecer do comando SET PRINTER TO para liberar a porta.
Mas no meu entender voce se daria melhor se usasse arquivos externos que receberiam tias dados e no final da rotina disparar o conteudo inteiro para cada saida.
Da forma como vc coloca se por acaso a COM1 der pau, vai atrapalhar ou travar a impressão nas portas seguintes detonando a sequencia.
Veja o exemplo:
...
Arq1 := FCREATE( "ARQUIVO1.TXT" )
Arq2 := FCREATE( "ARQUIVO2.TXT" )
Arq3 := FCREATE( "ARQUIVO3.TXT" )
DO WHILE !EOF()
IF ALLTRIM(porta) == "LPT1"
FWRITE( Arq1, M->SuaStringDeDados1 )
ELSEIF ALLTRIM(porta )== "COM1"
FWRITE( Arq2, M->SuaStringDeDados2 )
ELSEIF ALLTRIM(porta) == "COM2"
FWRITE( Arq3, M->SuaStringDeDados3 )
ENDIF
SKIP
END
FCLOSE( Arq1 )
FCLOSE( Arq2 )
FCLOSE( Arq3 )
__run( "command.com /c copy /b " + ARQUIVO1.TXT + " LPT1" )
__run( "command.com /c copy /b " + ARQUIVO2.TXT + " COM1" )
__run( "command.com /c copy /b " + ARQUIVO3.TXT + " COM2" )
...
cERTO.
@BRAÇOS :?)
Enviado: 29 Nov 2005 09:35
por rbonotto
Valeu !
Vou testar hoje dos dois modos.
Abraços,
Enviado: 29 Nov 2005 16:17
por conegundes
Estou usando um esquema igual a cinco anos, usando rede novell um loja com 4 máquinas no balcão o vendedor pode emitir n.fiscal que vai para lpt3 ou pedido que vai para lpt2.
2 das máquinas são servidores de impressão, uma para notas fiscais e outra
para pedidos
no autoexec de todas as máquinas após o login do vendedor, as portas são capturadas para a fila de impressão correspondente:
CAPTURE L=2 Q=REQUISICAO /NB /NT TI=10 /AU /NO FORMFEED
CAPTURE L=3 Q=NOTA /NB /NT TI=10 /AU /NO FORMFEED
Entre em contato ajudarei no que for possível.
João