Enviado: 16 Mar 2007 23:19
Então faça assim :
clipper %1
if not errorlevel 1 rtlink file %1,timeslic.obj lib xpto
Até logo.
Marcelo
clipper %1
if not errorlevel 1 rtlink file %1,timeslic.obj lib xpto
Até logo.
Marcelo
Código: Selecionar todos
************
FUNC CADFUNC
************
LOCAL aCAD_CLI100 := savenv( 01, 00, 23, 79 ) // uso com a visual lib
LOCAL nButton := 1
LOCAL nOpcao := 0
CLEAR TYPEAHEAD // limpa sujeira no teclado
vSOMA=0
vLEO5=78910030
DBCLOSEALL()
SELE 1
USE DADOS\FUNCI ALIAS CAG_FUN SHARED
SET INDEX TO DADOS\CAG_FUN1,DADOS\CAG_FUN2
DO WHILE .T.
Clrted() // limpa tela
SELE CAG_FUN
VCOD=0
VNOM=SPACE(40)
vREG=0
vSOMA=vSOMA+1
vCOD=STRZERO((RECCOUNT()+1),4)
vBARRA1 =SPACE(13)
vTESTE=STR(vSOMA)
IF vSOMA=9
vSOMA=0
vLEO5=vLEO5+1
ENDIF
vBARRA1=STR(vLEO5)+ vCOD +ALLTRIM(vTESTE)
vLEO=Len((vBARRA1 := AllTrim(vBARRA1)))=13 .and. Right(vBARRA1,1) == CalcEAN13(vBARRA1)
IF vLEO=.F.
LOOP
ENDIF
@ 03,02 say "C¢digo:"
@ 03,09 SAY vCod picture "9999"
@ 03,14 say "Funcionario.:"get vNOM picture "@!X"
@ 05,02 say "Cod. Barra:"
@ 05,13 SAY vBARRA1 PICT "@!"
READ
SELE CAG_FUN
APPEN BLAN
VCOD=RECCOUNT()
REPL COD WITH vCOD
REPL NOM WITH VNOM
REPL CODBARRA WITH vBARRA1
dbcommit()
EXIT
ENDDO
RstEnv (aCAD_CLI100) // uso com a visual lib
DBCLOSEALL()
RETURN
function CalcEAN13(cEAN)
local nSoma := 0
local i
for i := 1 to 12
nSoma += Val(SubStr(cEAN,i,1)) * if(i%2>0,1,3)
next
return if(nSoma%10=0, "0", Str(((Int(nSoma/10)+1)*10)-nSoma,1))
******************
FUNCTION IMPCRACHA
******************
LOCAL aRELCLI100 := savenv( 01, 00, 23, 79 ) // uso com a visual lib
LOCAL nButton := 1
LOCAL nOpcao := 0
local vBARRA
CLEAR TYPEAHEAD // limpa sujeira no teclado
DBCLOSEALL()
SELE 1
USE DADOS\FUNCI ALIAS CAG_FUN READONLY
SET INDEX TO DADOS\CAG_FUN1,DADOS\CAG_FUN2,DADOS\CAG_FUN3
Clrted() // limpa tela
vCOD=0
VNOM=SPACE(50)
vBARRA=SPACE(13)
vRESP=SPACE(1)
vLIN=0
@ 03,05 SAY "ImpressÆo Geral ou Individual:"
@ 03,35 GET vRESP PICT "!" valid(vRESP$"GI")
READ
IF vRESP="I"
@ 04,05 SAY "C¢digo Funcionario.:"
@ 04,25 GET vCOD PICT "99999"
READ
SET ORDER TO 1
SEEK vCOD
vNOM=NOM
vBARRA=CODBARRA
@ 04,25 SAY vCod picture "99999"
@ 04,32 say vNOM picture "@!"
READ
@ 05,05 SAY "Inicia na Coluna: e Linha:"
@ 05,33 GET vLIN PICT "9"
READ
IF vLIN > 8 .OR. vLIN=0
ERROREG()
RSTENV(aRELCLI100)
DBCLOSEALL()
RETURN
ENDIF
IF vLIN=1
vLIN=2
ELSEIF vLIN=2
vLIN=10
ELSEIF vLIN=3
vLIN=20
ELSEIF vLIN=4
vLIN=28
ELSEIF vLIN=5
vLIN=37
ELSEIF vLIN=6
vLIN=46
ELSEIF vLIN=7
vLIN=55
ELSEIF vLIN=8
vLIN=64
ENDIF
ENDIF
set printer to C:\barras.prn
set device to printer
@ prow(),pcol() say "$IMP$=1;$SPO$=SAGI;" // PRWIN
@ PROW()+1,0 SAY ""
IF vRESP="I"
@ PROW()+vLIN,05 SAY vNOM
@ prow()+2,05 say ["C]+vbarra+[;T7;A13;O0"] // PRWIN
@ prow()+1,0 say "" // para o PRWIN entender que o relat¢rio acabou
ELSE
SELE CAG_FUN
SET ORDER TO 3
GOTO TOP
vCOD=COD
vNOM=NOM
vBARRA=CODBARRA
vSTATUS=STATUS
vLEO=1
Do while !eof()
vLIN=0
IF vLEO=1
vLIN=3
ELSEIF vLEO=2
vLIN=7
ELSEIF vLEO=3
vLIN=7
ELSEIF vLEO=4
vLIN=7
ELSEIF vLEO=5
vLIN=7
ELSEIF vLEO=6
vLIN=7
ELSEIF vLEO=7
vLIN=7
ENDIF
vCOD=COD
vNOM=NOM
vBARRA=CODBARRA
vSTATUS=STATUS
IF !EMPTY(vBARRA) .AND. vSTATUS="ATIVO"
@ prow()+vLIN,05 SAY vNOM
@ PROW()+2,05 say ["C]+vbarra+[;T7;A13;O0"]
vLEO=vLEO+1
IF vLEO=8
@ PROW()+1,0 SAY "EJECT"
vLEO=1
ENDIF
ENDIF
SELE CAG_FUN
SKIP
ENDDO
@ prow()+1,0 say "" // para o PRWIN entender que o relat¢rio acabou
ENDIF
SET PRINTER TO
set device to screen
NETCANCEL("LPT1") // CT.LIB ou CTP.LIB
ENDIF
RSTENV(aRELCLI100) // uso com a visual lib
DBCLOSEALL()
RETURN