Página 1 de 2
cliente XP com impressao em outro cliente 98
Enviado: 02 Out 2006 17:19
por RenatoReis
Tenho uma rede com máquinas em Win 98. Algumas possuem impressoras e outras não. Meus programas são em CLIPPER52 e quando desejo imprimir (pelo sistema) em alguma impressora da rede, há uma rotina que faz um set printer para a impressora desejada e que está instalada em cada máquina.
Chegaram novos equipamentos com Win XP e cada impressora adicionada tem um registro de porta diferente de LPT1, LPT2, etc. São registradas assim (\\Maquina\Impressora).
Meus direcionamentos são para LPT1, LPT2, LPT3... e portanto não consigo imprimir nestas impressoras na máquina com XP.
Já tentei o seguinte comando: Set printer to \\maquina\impressora e
net use lpt1 \\maquina\impressora e nada funcionou!
Os procedimentos estão corretos? Alguém poderia me orientar?
Obrigado!
Enviado: 02 Out 2006 17:43
por sygecom
Tche, segue abaixo como eu uso as impressao na rede e funciona tanto em 95,98,XP,2000.
Código: Selecionar todos
*************
FUNC CHAMAIMP
*************
xTIPOIMP=SPACE(1)
save screen
aWin := Win( 08, 25, 15, 54, "Relacao de Impressora", WT_VERDE2BRANCO,WD_VERDE2BRANCO)
SETCOLOR( "N/*W,N*/W, , , N*/W" )
@ 10,26 say " 1 = Financeiro Matricial "
@ 11,26 say " 2 = Balanca Matricial "
@ 12,26 say " 3 = Bandeira Jato de Tinta"
@ 13,26 say " 4 = Impressora Local "
SET CONFIRM OFF
@ 14,26 say " Opcao => "
@ 14,38 GET xTIPOIMP PICT "!" valid(xTIP69$"1234") when DwnMsg( "Escolha a Impressora que deseja Imprimir" )
READ
IF xTIPOIMP="1" // MATRICIAL DO FINANCEIRO
NETREDIR("LPT1","\\MAQUINA1\IMPRESSORA1") //CHAMANDO A IMPRESSORA NA REDE
set device to print
set printer to lpt1
ELSEIF xTIPOIMP="2" // MATRICIAL DA BALANCA
NETREDIR("LPT1","\\MAQUINA2\IMPRESSORA1") //CHAMANDO A IMPRESSORA NA REDE
set device to print
set printer to lpt1
ELSEIF xTIPOIMP="3" // JATO DE TINTA DO BANDEIRA
NETREDIR("LPT1","\\MAQUINA3\IMPRESSORA2") //CHAMANDO A IMPRESSORA NA REDE
set device to print
set printer to lpt1
ELSEIF xTIPOIMP="4" // IMPRESSORA LOCAL
set device to print
set printer to lpt1
ENDIF
RESTORE SCREEN
*CANCELANDO IMPRESSAO
SET PRINTER TO
set device to screen
NETCANCEL("LPT1")
Obs: A CT.LIB ou CTP.LIB deve estar linkada com o seu sistema...
Abraços
Enviado: 06 Out 2006 12:40
por RenatoReis
(Sygecom) obrigado por responder a minha solicitação!
A rotina que utilizo é parecida com a que vc me enviou, porém não conhecia o NETREDIR. Como devo saber se o CT.LIB ou CTP.LIB estão anexadas? Qual o comando? seria include CT.LIB #
Abraços, Valeu!!
Enviado: 06 Out 2006 12:55
por sygecom
Se vc usa o BLINKER basta vc linkar ao seuprograma.lnk a CT.LIB ou CTP.LIB ..!!!
A CT.LIB é pra modo real e a CTP.LIB é pra modo EXTENDIDO..
Abraços
Enviado: 06 Out 2006 18:58
por RenatoReis
Sygecom
Perdoe-me a insistência, mas eu estou usando o clipper52, tem alguma diferença pro que vc me passou? onde informo, qual sintexe para anexar a ct.lib ou ctp.lib?
Abcs. Renato
Enviado: 06 Out 2006 19:04
por sygecom
Amigunho,
Não faz diferença alguma, basta vc linkar a CT.LIB se estiver usando o BLINKER em modo REAL ou a CTP.LIB em modo EXTENDIDO.
Abraços
Enviado: 07 Out 2006 17:26
por RenatoReis
Sygecom, amigo,
Procurei pelo CT.LIB e CTP.LIB e não os encontrei na pasta do clipper5 e suas subpastas.
Reparei também que seus direcionamentos de "set printer to" são sempre para LPT1.
Nas minhas maquinas com Win 98, todas as impressoras da rede são instaladas, nas portas lpt1, lpt2, lpt3, lpt4, lpt5 e lpt6. O sistema deve permitir que qualquer máquina imprima em qualquer impressora da rede, sendo que as maq. com Xp precisam de tratamento diferenciado, porém sem prejudicar o funcionamento das outras. A rotina precisa ser generica para todas as máquinas.
Veja se pode me ajudar. Abcs. Renato
Refazendo minha pergunta
Enviado: 08 Out 2006 13:10
por RenatoReis
Há alguns dias eu postei uma msg referente a problemas com impressão. É mais ou menos como os problemas apresentados. Diante da solução que vc passou eu gostaria de saber se vc saberia como me ajudar: Tenho uma rede com 10 maq., 9 com Win98 e 1 com Win Me e quatro delas tem impressoras. Tenho no sistema uma rotina de escolha em qual impressora se deseja imprimir, como a seguir:
function searchimp()
aviso2(24,"Impressoras F1-Local F4-Reg F5-Geo F8-Ros F10-Bal")
SET CONSOLE OFF
SET PRINT ON
SET DEVICE TO PRINT
if lastkey()=28
set printer to lpt1
elseif lastkey()=-3
set printer to lpt2
elseif lastkey()=-4
set printer to lpt3
elseif lastkey()=-7
set printer to lpt4
elseif lastkey()=-9
set printer to lpt5
endif
return
Em cada uma das 10 maquinas as impressoras foram adicionadas desta forma: Lpt1 - para a impressora mais proxima de cada maq. e as outras foram padronizados as Lpts restantes.
Maq01- c/ impressora local tem dois Lpts destinados a mesma impressora, o Lpt1 e Lpt3
Maq02- s/ impressora local tem o lpt1 para a impressora + próxima e outras opções de lpt
E segue assim por diante.
Lpt1-sempre a local ou a mais próxima para as maq. Sem imp. Local)
Lpt2-para a imp. Reg
Lpt3-para a imp Geo
Lpt4-para a imp Ros
Lpt5-para a imp Bal
Pois bem, chegaram 2 novos micros, com windows XP. Ao instalas estas impressoras verifiquei que as portas Lpt1, lpt2 e lpt3 (que são as únicas q ele apresenta) não recebiam as impressoras da minha rede e sim, era criado um caminho \\maquina\impressora.
Já troquei mensagens com outros usuários mas nada consegui resolver ainda e sinceramente estou precisando resolver este problema. Uso o Clipper5.2 e na última tentativa, me indicaram usar o NETREDIR através da ct.lib ou ctp.lib, só que eu acho que esta lib não tem nesta versão q eu estou usando, não a encontrei na pasta do clipper.
Prossegui usando o NET USE, que foi outra sugestão e não apresentou erros, testei de várias formas, consegui impressão pelo XP, porém, quando fui testar em outra máquina com Win 98 a mesma rotina, escolhendo outra impressora da rede, a impressão foi direcionada para a LPT1, não sei se foi por falta de cancelar este direcionamento. Até concordo, pois no comando há este direcionamento fixo. (veja o comando).
RUN CMD.EXE /C NET USE LPT1 \\MAQ08\ROS /Y >NULL
Caso tenha como me ajudar envie exemplos de codigo e dados do arquivo das impressoras que vc criou e como exatamente vc as trata.
Aguardo por ajuda, obrigado. Renato (
multcoop@oi.com.br)
Enviado: 09 Out 2006 20:01
por sygecom
Tche
Abaixo postei um exemplo completo de como faço pra imprimir tanto em 95/98/XP/2000 .....
Código: Selecionar todos
*INICIA A IMPRESSAO
NETREDIR("LPT1","\\MICRO\IMPRESSORA")
SET DEVICE TO PRINT
set print to lpt1
@ prow(),01 SAY "BLA,BLA,BLA,BLA,BLA,BLA,BLA"
@ prow(),PCOL()+1 SAY "BLA,BLA,BLA,BLA,BLA,BLA,BLA"
*TERMINA A IMPRESSAO
SET PRINTER TO
set device to screen
NETCANCEL("LPT1")
Obs:O nome do MICRO deve ser igual ao nome do micro na REDE. e IMPRESSORA deve ser o nome criado para compartilhar a impressora.
Eu particular mente uso o BLINKER 7.0 para compilar meus sistemas entaum abaixo vou postar como adiciono a CTP.LIB em meus sistemas.
Atraves do NOMEDOSISTEMA.LNK
Código: Selecionar todos
NOBELL
Blinker Incremental Off
Blinker Cache EMS 50%,50%
Blinker Cache XMS 50%,50%
Blinker Demonstration Date 2007/03/20
Blinker Link EMS ON
Blinker Link XMS ON
Blinker Exec Clipper //Dynf:8 //F:254
Blinker Exec Comp 1
Blinker Exec Exte
Blinker Memo Pack 60
Search BlxRatex
Search BlxClp53
Blinker Incr Pad 256
Blinker Over Page On
Blinker Over Opsi 60
Blinker Procedure Depth 70
OutPut NOMEDOSISTEMA.EXE
FILE SISTEMA
FILE MENUS
FILE ROTINA
FILE CADASTRO
FILE BAL
FILE BALV
FILE FINANCE
FILE SENHA
FILE ESTOQUE
FILE FOLHA
FILE __WAIT
FILE MSGPOR
FILE BALANCA
FILE SERIAL
FILE TIMESLIC
LIB CLIPPER,EXTEND,VL2,CTP,DBFCDX,_DBFCDX
Abraços
Leonardo Machado
Ok copiado!
Enviado: 10 Out 2006 01:45
por RenatoReis
Leonardo,
já postei pra vc em outros pos mais recentes, como falei vou testar no cliente e depois te respondo qual foi. Obrigado. Renato.
Sucesso!
Enviado: 10 Out 2006 15:40
por RenatoReis
:{ Pessoal em postagem mais recente parabenizo meus amigos do forum!
Refiz minha rotina de impressão parecida com a do sygecom, segui a sugestão do Marchiore quanto ao netcancel("lpt1") antes dos netredir e....
Sucesso!
Pra quem ainda não conseguiu, não desista! as sugestões foram perfeitas e tudo correu perfeitamente!
Brigadão a todos e se alguém precisar de alguma dica, tb tentarei ajudar. Abcs.Renato
RENATO / TODOS DO FURUM
Enviado: 14 Nov 2006 07:57
por ederxc
CARA O SYGERCOM LHE PASSOU UMA ROTINA PARA VC USAR O NETREDIR EM SEU CLIPER 5.2 CORRETO??? ONDE VC ENCREMENTOU ESSA ROTINA FIQUEI MEIOQ UE BOIANDO NA PARADA .. SE ALGUEM PUDER ME DAR UM LOOK AGRADEÇO :xau
Enviado: 14 Nov 2006 12:07
por ederxc
Alguem pode me dar uma auxilio .. apenas me dar uns detalhes ! por favor
Enviado: 16 Jan 2007 11:58
por menga
Bom dia para todos.
Não consegui compreender como conseguir as libs ctp.lib e/ou ctp.lib, que contem a rotina NETREDIR ?
Enviado: 16 Jan 2007 17:01
por rochinha
Amiguinho Ederxc( parece nome de um robô de guerra nas estrelas, hehehe )
Veja o NETREDIR() é uma função constante na CA-Tools(é isso mesmo?) e tem funcionamento identico a:
RUN CMD.EXE /C NET USE LPT1 \\MAQ08\ROS /Y
Se voce não possuir a CT.LIB pode usar o comando acima lembrando que se estiver usando Win95/98/ME troque CMD.EXE por COMMAND.COM.
Quem não tiver as libs me envie um email para
irochinha@itelefonica.com.br
Só lembrando CTP.LIB é para modo PROTEGIDO e o amiguinho SygeCOM confundiu, hehehe.