Através da ajuda de vocês já caminhei bastante nessa minha luta para fazer a conversão. Passei a noite em claro e consegui resolver vários probleminhas, só que agora caí em outra situação: No velho Clipper, o mesmo captava todas as impressoras da rede, porém no Harbour está mostrando uma listagem que eu desconheço. Talvez os colegas entendam melhor o que está acontecendo(Num faço a melhor ideia do que é isso). Eu confesso a vocês que não tenho um grande domínio de programação dessa linguagem. Por isso conto muito com a ajuda desse fórum para resolver esses probleminhas. Como as imagens fala melhor do que 1000 palavras, resolvi colocar as duas imagens:
Feito no CLIPPER....Está perfeito do jeito que eu quero.

Feito no Harbour....Listagem sem sentido.

Código:
Código: Selecionar todos
FUNCTION FUN_IMP1
DO CASE
CASE LASTKEY()=27
RETURN 0
CASE LASTKEY()=-1
VSTRING=SPACE(78)
SET CURSOR ON
@ 24,11 SAY "Procurar por: "
@ 24,25 GET VSTRING PICT "@S44"
READ
SET CURSOR OFF
IF !LASTKEY()=27
IF !EMPTY(VSTRING)
LOCATE FOR UPPER(ALLTRIM(VSTRING)) $ &(VINDEX)
IF FOUND()
FOR I=1 TO FCOUNT()
IF ALLTRIM(VSTRING) $ FIELDGET(I)
KEYBOARD CHR(26)+REPLICATE(CHR(4),I-1)
EXIT
ENDIF
NEXT
ENDIF
ENDIF
ENDIF
CASE LASTKEY()=-2 .AND. VALTYPE(VSTRING)="C"
SKIP
LOCATE REST FOR ALLTRIM(VSTRING) $ &(VINDEX)
IF FOUND()
FOR I=1 TO FCOUNT()
IF ALLTRIM(VSTRING) $ FIELDGET(I)
KEYBOARD CHR(26)+REPLICATE(CHR(4),I-1)
EXIT
ENDIF
NEXT
ELSE
KEYBOARD CHR(0)
ENDIF
CASE LASTKEY()=-5 // F6
FICA:=.T.
DO WHILE FICA=.T.
nVias:=1
cTela2:=SAVESCREEN(20,33,23,48)
GWEXPLODE(20,34,22,46,200,"T","BG+/B")
MENSAGEM("Informe a quantidade de vias a serem impressas")
@ 20,35 SAY PADC(" N§ vias ",9,"Ä") COLOR "BG+/B"
SET CURSOR ON
@ 21,39 GET nVias PICT "9" COLOR "W+/N"
READ
IF LASTKEY()=27
FICA:=.F.
ELSE
IF nVias=0
if alert("Deseja cancelar a impress„o ?",{"N„o","Sim"})=2
return 1
endif
ELSE
FICA:=.F.
ENDIF
ENDIF
SET CURSOR OFF
RESTSCREEN(20,33,23,48,cTela2)
ENDDO
if IMPRESSORA="Impressora"
aPrinters:=GETPRINTERS(.T.)
VT:=LEN(aPrinters)
IF VT=0
IMPRESSORA:="Paralela (local)"
cImp:="LPT1" /* ou p/impres.em rede colocando o caminho:
cImp:="\\pc3\epson
*/
FOR I=1 TO nVias
COPY FILE(ARQUIVO+".PRN") TO (cImp)
NEXT
ELSEIF VT=1
IMPRESSORA:=aPrinters[1,2]
cImp:=CHARREM(":",aPrinters[1,3])
ELSE
aImpressora:={}
FOR I=1 TO VT
AADD(aImpressora,aPrinters[I,2]) // Controi VETOR da MATRIZ
NEXT
cColor:=SETCOLOR()
ctela1:=SAVESCREEN(14,15,23,64)
JANELA1(14,16,VT+15,63,"Selecao de impressora")
SETCOLOR(CONTECOR[4])
IF (OP:=ACHOICE(15,17,22,62,aImpressora))!=0
IMPRESSORA:=aImpressora[OP]
cImp:=CHARREM(":",aprinters[OP,3])
ELSE
// Verifica qual ‚ a impressora padrão
OP:=0
FOR I=1 TO VT
IF aPrinters[I,1] := .T.
OP:=I
ENDIF
NEXT
IMPRESSORA:=aPrinters[OP,2]
cImp:=CHARREM(":",aPrinters[OP,3])
ENDIF
SETCOLOR(cColor)
RESTSCREEN(14,15,23,64,ctela1)
ENDIF
endif
DELETE FILE("LOG.TXT")
SWPRUNCMD("WAPI -PRINT:"+CHR(34)+IMPRESSORA+CHR(34)+";"+CHR(34)+ARQUIVO+".PRN"+CHR(34)+";"+CHR(34)+"Clientes - Tipo Ficha"+CHR(34)+";F;"+CHR(34)+"A"+CHR(34)+";F;"+str(nVias,1,0)+";F;LOG.TXT",0,"","")
lSucesso:=.f.
IF FILE("LOG.TXT")
IF ALLTRIM(MEMOREAD("LOG.TXT"))="0"
lSucesso:=.t.
ENDIF
DELETE FILE("LOG.TXT")
ENDIF
IF lSucesso:=.f.
ALERT("Falha na tentativa de impressao")
ENDIF
CASE LASTKEY()=1
GOTO TOP
CASE LASTKEY()=6
GOTO BOTT
ENDCASE
@ VULT_POS,78 SAY CHR(176) COLOR "W+/B"
VULT_POS=3+(((RECNO()*100)/VQUAN_REG)/5)
IF RECNO()=1
VULT_POS=3
ENDIF
IF VULT_POS=23
VULT_POS=22
ENDIF
@ VULT_POS,78 SAY CHR(219) COLOR "GR+/B"
RETURN 1
Josmar

