sig_gilberto Posted June 23, 2009 Report Share Posted June 23, 2009 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...." Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted June 23, 2009 Author Report Share Posted June 23, 2009 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...." Quote Link to comment Share on other sites More sharing options...
rubensma Posted June 23, 2009 Report Share Posted June 23, 2009 Ola Gilberto, usando o módulo 11, obtive o resultado 2, não sei se é coincidencia, mas pode ser que seja a solução. Rubens Martins rubens.martins@brfree.com.br FW20 + Clipper 5.2e + Workshop + Blinker 60 Quote Link to comment Share on other sites More sharing options...
rubensma Posted June 23, 2009 Report Share Posted June 23, 2009 Esquece, inverti os valores. Na verdade o resultado da 9 pelo modulo 11, sorry Rubens Martins rubens.martins@brfree.com.br FW20 + Clipper 5.2e + Workshop + Blinker 60 Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted June 24, 2009 Author Report Share Posted June 24, 2009 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...." Quote Link to comment Share on other sites More sharing options...
clipeiro Posted June 24, 2009 Report Share Posted June 24, 2009 Olá Gilberto. O q vc quer é receber um número de tamanho 8 e calcular o digito verificar dos registro do Correio ??? tipo RE000000014BR onde RE00000001 é o numero e 4 é o dÃgito ??? Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted June 25, 2009 Author Report Share Posted June 25, 2009 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 Quote Link to comment Share on other sites More sharing options...
clipeiro Posted June 25, 2009 Report Share Posted June 25, 2009 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_peso) * 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_peso) * 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.) ***************************************************************************** Quote Link to comment Share on other sites More sharing options...
sig_gilberto Posted June 25, 2009 Author Report Share Posted June 25, 2009 é 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...." Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.