Jump to content
Fivewin Brasil

CODE 128


sig_gilberto

Recommended Posts

Olá Desenvolcedores, Boa Tarde!

Preciso achar a formula para calcular o digito verificador padrão CODE128. Isso se chama Etiquetas Lógicas para Carta Registrada.

Já procurei na NET mas as informações são vagas.

O meu cliente este me passando uma sequencia de numeros onde eu tenho que realizar o calculo, por exemplo :

38571963-2 ==> 2 é o digito.....

Me será passado o número 38571963 e eu terei que calcular o DV=2...

e então...

________________________

Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP

JAVA + xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 8.05 + xDev v0.65

"Não Desenvolvo Software, crio arte Binaria...."

Link to comment
Share on other sites

Olá Desenvolcedores, Boa Tarde!

Preciso achar a formula para calcular o digito verificador padrão CODE128. Isso se chama Etiquetas Lógicas para Carta Registrada.

Já procurei na NET mas as informações são vagas.

O meu cliente este me passando uma sequencia de numeros onde eu tenho que realizar o calculo, por exemplo :

38571963-2 ==> 2 é o digito.....

Me será passado o número 38571963 e eu terei que calcular o DV=2...

e então...

________________________

Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP

JAVA + xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 8.05 + xDev v0.65

"Não Desenvolvo Software, crio arte Binaria...."

Link to comment
Share on other sites

A idéia é a seguinte :

Pega-se o CEP e apartir dele se gera este código de barras...

________________________

Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP

JAVA + xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 8.05 + xDev v0.65

"Não Desenvolvo Software, crio arte Binaria...."

Link to comment
Share on other sites

Fala menino.....é isso mesmo!!!!!

Inclusive achei um manual. Trabalho numa gráfica/correio e a Prefeitura de Jacarei-SP, nos pediu para informar este registros nas postagens tipo A.R. das Notificações de Dividas Ativas.

Exemplo : RL400261015BR

Olha os calculos:

*--------------------------------------

* Funcao retorna o digito verificador

* da sequencia da etiqueta logica para

* postagem de documento tipo A.R

* Usar padrao CODE128

* Parametro = sequencia numerica de 8 posi‡oes

*--------------------------------------

Static Function Etq_Logica(vparam)

vP1 = 8

vP2 = 6

vP3 = 4

vP4 = 2

vP5 = 3

vP6 = 5

vP7 = 9

vP8 = 7

vCc = 0

vNum= StrZero(vparam,8,0)

For vSeq = 1 to 8

vPeso= "vP"+StrZero(vSeq,1,0)

vCc+= &vPeso * Val(Substr(vNum,vSeq,1))

Next

vResto = Mod(vCc,11)

If vResto=0

vDig=5

ElseIf vResto = 1

vDig=0

Else

vDig=11-vResto

Endif

Return(StrZero(vDig,1,0))

--------------------------------------

Mas é isso ai, vlw!!!!!!!

________________________

Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP

JAVA + xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 8.05 + xDev v0.65

"Não Desenvolvo Software, crio arte Binaria...."

Editado por - sig_gilberto on 25/06/2009 07:27:40

Link to comment
Share on other sites

Então, amigo, tinha ficado com dúvida por q vc falou em pegar o CEP, tambem trabalho grafica\correios.

Segue exemplo de como uso a rotina de criar o digito e outra pra checar o digito, qdo ja recebo com numero completo.

Abraços,

*****************************************************************************

FUNCTION CalcDig(c_num)

**----------------------

LOCAL i,n_cont, v_peso[9]

FOR i = 1 TO 9

v_peso := SUBSTR(c_num,(1+(i-1)),1)

NEXT

n_peso1 := VAL(v_peso[1]) * 8

n_peso2 := VAL(v_peso[2]) * 6

n_peso3 := VAL(v_peso[3]) * 4

n_peso4 := VAL(v_peso[4]) * 2

n_peso5 := VAL(v_peso[5]) * 3

n_peso6 := VAL(v_peso[6]) * 5

n_peso7 := VAL(v_peso[7]) * 9

n_peso8 := VAL(v_pesoicon_smile_8ball.gif) * 7

n_peso9 := VAL(v_peso[9])

n_soma := n_peso1+n_peso2+n_peso3+n_peso4+n_peso5+n_peso6+n_peso7+n_peso8

n_soma := n_soma % 11

IF n_soma = 0 .OR. n_soma = 1

DO CASE

CASE n_soma = 0

n_soma := 5

CASE n_soma = 1

n_soma := 0

ENDCASE

ELSE

n_soma := ABS(n_soma - 11)

ENDIF

RETURN(n_soma)

******************************************************************************

FUNCTION Check_num(c_num)

**----------------------

/*

Objetivo.....: Testa o digito do objeto registrado

Parametros...: c_num - numero do objeto a testar o digito

Returna......: .T. ou .F.

*/

LOCAL i,n_cont

DECLARE v_peso[9]

FOR i = 1 TO 9

v_peso := SUBSTR(c_num,(1+(i-1)),1)

NEXT

n_peso1 := VAL(v_peso[1]) * 8

n_peso2 := VAL(v_peso[2]) * 6

n_peso3 := VAL(v_peso[3]) * 4

n_peso4 := VAL(v_peso[4]) * 2

n_peso5 := VAL(v_peso[5]) * 3

n_peso6 := VAL(v_peso[6]) * 5

n_peso7 := VAL(v_peso[7]) * 9

n_peso8 := VAL(v_pesoicon_smile_8ball.gif) * 7

n_peso9 := VAL(v_peso[9])

n_soma := n_peso1+n_peso2+n_peso3+n_peso4+n_peso5+n_peso6+n_peso7+n_peso8

n_soma := n_soma % 11

IF n_soma = 0 .OR. n_soma = 1

DO CASE

CASE n_soma = 0

n_soma := 5

CASE n_soma = 1

n_soma := 0

ENDCASE

ELSE

n_soma := ABS(n_soma - 11)

ENDIF

IF n_peso9 # n_soma

RETURN(.F.)

ENDIF

RETURN(.T.)

*****************************************************************************

Link to comment
Share on other sites

é isso ai!!

Qual o nome da sua gráfica onde vc trabalha...?

Eu trabalho na www.marpress.com.br

________________________

Gilberto Herminio - Programador Pleno III - Mogi das Cruzes-SP

JAVA + xxHB build 1.1.0 (SimpLex) & BCC 5.5.1 & FW 8.05 + xDev v0.65

"Não Desenvolvo Software, crio arte Binaria...."

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...