Página 1 de 2

Codigo de barras !

Enviado: 12 Mar 2007 13:51
por ederxc
galera , alguem teria um prg gerador de codigo de barras , ñ queria uma coisa mega master prod advanced , apenas gerar os codigos !

Enviado: 12 Mar 2007 16:51
por ederxc
tudo bem eu desisto , pode ser algo complexo mesmo ... o que me mandarem ta valendo !

Enviado: 12 Mar 2007 22:44
por Clipper
Prezado Eder

Que tipo de impressora você quer usar ?

Que tipo de código você quer imprimir (EAN, 2de5 , 3de9 , UPC, ...) ?

O que você quer impresso nas etiquetas ?

Dependendo do que queira existem muitas ou poucas opções.

Diga-me o que tu queres que eu te direi...dá ou não...

Até logo.

Marcelo

Enviado: 13 Mar 2007 07:21
por ederxc
Marcelão , o que eu quero é imprimir nas etiquetas usando impressora matricial epson fx2170

obs: Cara eu nem sabia que existia assim tantos tipos de codigo de barra , pra mim codigo de barra era unico e pronto , então nesse caso vou pedir para vc me passar o que mais é usado ou mais simples de se fazer pois andei pegando umas fontes e minhas idéias estão meio bagunçadas , o que vc tiver me manda e se possivel me da help para que eu intenda um pouco mais o funcionamento disso ! té++

Enviado: 13 Mar 2007 08:48
por Clipper
Vou tentar explicar algumas coisas rapidamente :

EAN
O padrão usado geralmente é o EAN, que podem ser EAN13, EAN14, EAN8 (existem outros mas não creio que seja seu caso)
O EAN é o padrão comercial usado no Brasil.

EAN13 - É o usado em 98% dos produtos industrializados, praticamente todo produto de varejo já vem com ele, ele é basicamente formado assim :
xxx xxxxxxxxx x
Pai Empres+Item D
Pai=Código do País onde foi fabricado (Brasil=789)
Empres+Item = Código da empresa+código do item
D = Digito verificador

O código da empresa é variável, esse código é estabelecido pela EAN Brasil, empresas que produzem muitos itens recebem código menor para sobrar mais para os itens, empresas que produzem poucos itens recebem código maior.

EAN14 - A mesma coisa do EAN13 só que recebe um digito na frente, é usado para embalagens de distribuição, vejamos um exemplo :

AGUARDENTE DE CANA CLIPPER 1 LITRO
EAN13 = 7895241250019
AGUARDENTE DE CANA CLIPPER 1 LITRO CAIXA COM 12
EAN14 = 1 7895241250019
AGUARDENTE DE CANA CLIPPER 1 LITRO CAIXA COM 6
EAN14 = 2 7895241250019

Ou seja no cadastro de produtos da empresa deverá se estabelecer que todo EAN14 começado por 1 significa embalagem com 12 e começado por 2 significa embalagem com 6

EAN8 = Esse é usado para embalagens pequenas, chiclete, tic-tac, cigarro, etc... é controlado pela EAN Brasil e só pode ser colocado se autorizado pela instituição, isso se deve pois só podem existir 9.999 produtos com esse código em todo o país. É formado assim :

999 9999 9
Pai Item D

Código 2 de 5 intercalado

Pode-se usar livremente, serve para uso interno da empresa, pode ser colocado em crachás, itens que não tem EAN, carteirinhas, filmes para locação, ou seja, em quase tudo, não tem padronização, sendo assim pode-se usar :
0001, 0002, 00000001, 100001, 215478

Obs : Algumas impressoras de códigos de barras não aceitam o 2 de 5 menor que 6 caracteres

Eu geralmente uso ele quando não tem ou não dá para usar o EAN

Code 39 ou 3 de 9

Basicamente a mesma coisa do 2 de 5, só que esse eu não sei se tem alguma regra, creio que não.

Ps. Você estar se perguntando, mas no supermercado como faz para as verduras, legumes, carnes que são pesados na hora.
Neste caso a EAN estabelece o código 200 para esse fim, exemplo :

ABACATE
200 000000235 1

O que estiver entre o 200 e o digito verificador será o preço ou peso, cada um escolhe o que imprimir. No caso pode ser 235 gramas ou R$ 2,35. No cadastro de produtos deverá ter um campo que identifica se é por peso ou preço.

Resumindo

Se você não vai trabalhar com indústria, não se preocupe com o EAN, pois ele já vem em quase todos os produtos. Se vai trabalhar com indústria então é bom se preocupar, pois, apesar de você poder emitir um 2de5 e colocar no produto, quase ninguém aceita.

Se é para uso dentro da empresa deve usar o 2de5 ou 39, inclusive se quiser em produtos que já tenham o EAN embora isso seja meio burro (pra não dizer todo)

Existem diversos outros tipos, UPC-A, UPC, ISSN, ISBN, CODABAR, 128
mas dá um livro e não tô afim de escre um não...

Até logo.

Marcelo

Enviado: 13 Mar 2007 09:42
por ederxc
valeu marcelo !

Enviado: 13 Mar 2007 14:53
por ederxc
consegui este codigo mas creio que ñ ter as libs necessarias para compilar , alguem sabe quais são ela ?


*****************************************************************************
*** NOME : Cod_Barr.PRG
*** UTILIZA€AO : Impressao de codigos de barra
*** AUTOR :
*** INICIO : 12/11/2001
*** REVISAO :
*** :
*****************************************************************************
Set Epoch to 1960

COPIAS:=100
CLS
xcod:=SPAC(4)
@ 4,5 GET XCOD PICT '9999'

xtex:=xte1:=SPAC(30)
@ 6,5 GET XTEX PICT '@K'
@ 8,5 GET COPIAS PICT "999"
READ
XCOD:="78966157"+XCOD+STR(DIGITO(XCOD),1)
SET DEVICE TO PRINT
SET PRINT ON
SET CONSOLE OFF

TWINIC()
TWDEFCODE(TWEAN13)
TWDEFLBARS(2,6)
TWDEFSALTO(8)
FOR W:=1 TO COPIAS STEP 3
@ prow(),00 say ""
FOR j:=1 TO 4 // ALTURA DA BARRA
FOR i:=1 TO 2 // DENSIDADE DA BARRA
@ PROW(),05 SAY ' '
TWIMPCOD(Xcod)

@ PROW(),32 SAY ' '
TWIMPCOD(Xcod)

@ PROW(),59 SAY ' '
TWIMPCOD(Xcod)
NEXT
@ PROW()+1,05 SAY ' '
NEXT
FOR X:=1 TO 2
@ PROW(),06 SAY SUBS(XCOD,1,3)+" "+SUBS(XCOD,4,5)
@ PROW(),PCOL()+1 SAY SUBS(XCOD,9,4)+" "+SUBS(XCOD,13,1)

@ PROW(),33 SAY SUBS(XCOD,1,3)+" "+SUBS(XCOD,4,5)
@ PROW(),PCOL()+1 SAY SUBS(XCOD,9,4)+" "+SUBS(XCOD,13,1)

@ PROW(),60 SAY SUBS(XCOD,1,3)+" "+SUBS(XCOD,4,5)
@ PROW(),PCOL()+1 SAY SUBS(XCOD,9,4)+" "+SUBS(XCOD,13,1)
NEXT

? chr(27)+"!"+chr(4)
?
FOR X:=1 TO 2
@ PROW(),010 SAY XTEX

@ PROW(),056 SAY XTEX

@ PROW(),102 SAY XTEX
NEXT
? chr(27)+"!"+chr(0)
? repl("-",80)
If int(W/27) # (W/27) //-> prow() > 66
* @ 66,00 say ""
?
setprc(00,00)
End
NEXT
SET DEVICE TO SCREEN
SET PRINT OFF
SET CONSOLE ON

***************
FUNCTION DIGITO
***************
PARAMETERS COD
M1:=SUBS(COD,1,1)
M2:=SUBS(COD,2,1)
M3:=SUBS(COD,3,1)
M4:=SUBS(COD,4,1)
TOTAL:=STR(7+24+9+18+6+3+5+21+VAL(M1)+(VAL(M2)*3)+VAL(M3)+(VAL(M4)*3),5)
DIG:=10-VAL(SUBS(TOTAL,5,1))
DIG:=IF(DIG=10,0,DIG)
RETURN(DIG)
*
* Fim do programa cod_barr.prg
*

Enviado: 13 Mar 2007 15:31
por Clipper
Essas funções são da XPTO.LIB, pegue ela no link abaixo, vai com manual no formato Word.

XPTO53 para o Clipper 5.3
XPTO para 5.2

Ela imprime em matricial, laser e deskjet, desde que sejam paralelas, nunca testei em USB.

www.phrep.com.br/xpto.zip

Divirta-se

Até logo

Marcelo

Enviado: 14 Mar 2007 12:02
por ederxc
marcelo , preciso linkar essas libs ou simplesmente coloco na pasta lib do meu clipper ? coloquei na pasta lib do clipper mas na hr de imprimir imprime o codigo e as barras ñ imprimem , a impressora é deskjet 640c jato de tinta paralela .

Enviado: 15 Mar 2007 12:29
por sygecom
ederxc:
Peguei o barco andando mas referente a LIB vc deve sim linkar ela ao seu sistema...se não ele não vai achar a função que vc deve estar chamando....outra coisa...esses tempos atras passei por uma BARRA com os CODIGO DE BARRA.....eu aqui não uso LIB nenhuma.....eu uso o padrão EAN13 e crio os meus proprios codigos....e valido eles com uma pequena rotina que o Maligno me passo...ah e claro...imprimo os codigo em matricial e jato de tinta com o PRWIN do Vagucs...

Bom não sei qual a sua finalidade...com os CODIGO DE BARRA .mas se for para uso interno e quiser usar o padrão EAN13 me avisa que te mando a rotina !!!
abraços

Enviado: 16 Mar 2007 07:54
por ederxc
Fala ae leonardo , cara vc poderia me mandar essa sua rotina ! vlw

Enviado: 16 Mar 2007 08:24
por Clipper
Não está imprimindo porque você não definiu o tipo de impressora, alias, essa rotina paraece conter mais erros ainda, para definir o tipo de impressora use TWDEFPRINT(), para maiores detalhes dê uma lida no manual, está todo em português.

Ps. Já testei essa lib usando uma HP 640 e funcionou sem problemas.

Até logo.

Marcelo

Enviado: 16 Mar 2007 13:19
por ederxc
marcelo , como faço para linkar esta lib , o timeslice linkey junto com meu cl.bat que vem junto do clipper5.2 seria da mesma forma ?

Enviado: 16 Mar 2007 14:07
por Clipper
Poste aqui a forma como você linka, usa algum script ou é direto, qual linker você usa ?

Até logo.

Marcelo

Enviado: 16 Mar 2007 15:18
por ederxc
Faço assim com o timeslic.obj , é a unica coisa que esta linkado a meu clipper



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