Página 2 de 2

Enviado: 16 Mar 2007 23:19
por Clipper
Então faça assim :

clipper %1
if not errorlevel 1 rtlink file %1,timeslic.obj lib xpto

Até logo.

Marcelo

Enviado: 19 Mar 2007 12:58
por ederxc
então pessoal mais alguma dica!

Enviado: 22 Mar 2007 07:45
por ederxc
Pessoal , consegui linkar a lib xPto mas o prog ainda ñ imprime as barras , nem na epson nem na deskjet 640c :(Neg

Enviado: 23 Mar 2007 13:50
por sygecom
Fala amiguinho..conforme lhe prometi tou postando a baixo como faço para usar codigo de barra.....eu particularmente uso o padrão EAN13.....pq a leitora que eu tava usando jah estava configurada para ler o padrão EAN13.....bom eu usei para uso interno em um dos meus CLIENTES....essa rotina abaixo não é valida para uso externo como esses codigos que vc ve nos supermercados.....espero que ajude...qualquer duvida posta ai que nos resolve !!

Obs: eu não uso LIB alguma para gerar o codigo de barra ....mas uso uma pequena rotina que valida o codigo de barra....que foi passada pelo nosso colega MALIGNO...e uso o PRWIN do nosso colega VAGUCS para imprimir os codigo de barra tanto em EPSON,HP e CANON.

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
Espero ter ajudado e qualquer coisa posta ai !!!

Abraços