Toledo, conforme eu havia comentando acima, no clipper esse meu código não dava problemas, mas no harbour gerou erros. Será que terei q alterar algum código?
Vou postar duas imagens e também o código:
Imagem do PCTerror:
Imagem após colocar a função: xhb_ErrorSys():
Fontes:
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()
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]) // Local onde está gera o erro
NEXT
cColor:=SETCOLOR()
ctela1:=SAVESCREEN(14,15,23,64)
JANELA1(14,16,VT+15,63,"Sele‡„o 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 impress„o")
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