N° DO COD DE BARRA BOLETO

WARG 21/07/2014 09:06:04
#439698
Olá amigos.

Estou com uns problemas em gerar o numero de cod de barras para boleto bancario no VB6
minha duvida/erro ocorre creio eu no calculo do dv10 e 11 , na verdade eu até gero o numero mas quando vou consultar em algum banco ele me retorna erro no digito verificador , ja li o manual fornecido pelo banco mas nao obtive sucesso, meu problema consiste somente no numero do cod de barras ja que para criar a linha digitavel nao tive problema algum, mas a como o numero do cod de barras esta errado , a linha digitavel apesar da formataçao correta... tambem retorna erro.

Alguem por um acaso poderia me ajudar e me dar uma luz na hora de criar esse numero ?
O banco em questão e o Bradesco. [Ô]se isso ajudar em algo mais...[Ô]

Desde já agradeço.
JCM0867 21/07/2014 11:47:49
#439703
Provavelmente tu não colocou corretamente o cálculo do digito verificador

O numero digitável muda de um banco para outro, no manual de cobrança do banco mostra a posição de todos os dígitos do número digitável

a posição do código de barras não é a mesma do número ditável, também mostra no manual de cobrança do respectivo banco
Normalmente a geração do código de barras a partir do número digitável é igual para todos os bancos
Sei fazer usando o crystal reports os Boletos que só precisa inserir uma fórmula dentro do crystal, uma DLL e a fonte do código de barras no windows

Eu uso essa formula para criar o dv geral do número digitável que é o mesmo pra todos os bancos, ve se consegue entender:

text de 1 a 8 são os grupos do número digitável
Text9 são os digitos do Código de barras
Texto7 receberá o digito verificador geral

[ô]*********************
BarCode = Text1 & Text2 & Text3 & Text4 & Text5 & Text6 & [Ô]X[Ô] & Text8 [ô]Aqui ainda não tem digito verificador
Text9 = Mid(BarCode, 1, 4) & Mid(BarCode, 33, 15) & _
Mid(BarCode, 5, 5) & Mid(BarCode, 11, 10) & _
Mid(BarCode, 22, 10)

[txt-color=#0000f0]Text7 = Str(DigitoCodigoBarras())[/txt-color]

BarCode = Text1 & Text2 & Text3 & Text4 & Text5 & Text6 & Text7 & Text8 [ô]Aqui já tem digito verificador
Text9 = Mid(BarCode, 1, 4) + Mid(BarCode, 34, 15) + _
Mid(BarCode, 5, 5) + Mid(BarCode, 11, 10) + _
Mid(BarCode, 22, 10)

[txt-color=#0000f0]Public Function DigitoCodigoBarras()
Dim i, j As Byte
Dim somador As Integer
Dim NumeroBarras As String

NumeroBarras = Left(Text9, 4) & Mid(Text9, 6, 39)

j = 5
somador = 0
For i = 1 To 43
j = j - 1
If j = 1 Then j = 9
somador = somador + (Mid(NumeroBarras, i, 1) * j)
Next i
somador = 11 - (somador - Int(somador / 11) * 11)
If somador = 0 Or somador = 10 Or somador = 11 Then somador = 1
DigitoCodigoBarras = somador
End Function[/txt-color]

NumeroDigitavel = Text1 & [Ô].[Ô] & Text2 + [Ô] [Ô] & Text3 & [Ô].[Ô] & Text4 & [Ô] [Ô] & Text5 & [Ô].[Ô] & Text6 & [Ô] [Ô] & Trim(Text7) & [Ô] [Ô] & Text8
CodigoBarras = Text9 [ô] Converter para Barras


[Ô]Não corrigir nossas falhas é o mesmo que cometer novos erros.[Ô]
Confúcio
WARG 21/07/2014 12:23:38
#439704
Vou Fazer os testes aqui com as dicas que você me passou amigo , mas caso não vá tomar seu tempo poderíamos conversar um pouco mais sobre esse assunto ?
Eu sou meio novo no VB , e na real em programação no geral... porem quanto a criação do boleto no crystal eu já me resolvi isso até achei bem fácil usando o mesmo exemplo que você utiliza mas com o numero errado essa aplicaçao tem se tornado meio [Ô]inutil[Ô]

Mas MUITO obrigado mesmo pela atenção

Até breve.
WARG 22/07/2014 12:36:49
#439729
Acho que o calculo esta correto mas eu que estou usando o Meu numero de forma errada...

o que eu gero Segue:
N° Cod Barra : XXX98614100001772450409060000000102801038745
Linha Digitavel : XXX90.40906 60000.000103 28010.387455 8 61410000177245

Porem eu tenho um boleto de conferencia aqui que e ele me retorna :

N° Cod Barra : XXX97614100001772450409060000000102801038740
Linha Digitavel : XXX90.40906 60000.000103 28010.387406 7 61410000177245

Logo:
Linha Digitavel : XXX90.40906 60000.000103 28010.3874 <55 8> 61410000177245 = Meu codigo
Linha Digitavel : XXX90.40906 60000.000103 28010.3874 <06 7> 61410000177245 = Boleto Do banco


Cod Barra : XXX9 < 8 > 61410000177245040906000000010280103874 < 5 > = Meu codigo
Cod Barra : XXX9 < 7 > 61410000177245040906000000010280103874 < 0 > = Boleto Do banco

Aparentemente são as únicas que que diferem ,e Aparentemente são os mais importantes no codigo...

Eu chego a fazer os testes nesse site http://evandro.net/codigo_barras.html nao me retorna erro algum
mas no site do Bradesco quando vou pagar algumas tentativas geram erro quando uso o Cod de barras ja com a linha digitavel nao me retornou nenhum erro mas eu tenho medo de fechar o programa e acabar fazendo algo errado quando eu for pagar o boleto..
TUNUSAT 22/07/2014 13:35:52
#439732
Warg,

Por favor, veja este código postado aqui no VBMania:
http://www.vbmania.com.br/index.php?modulo=detalhe&id=7405

[][ô]s,
Tunusat.
WARG 22/07/2014 14:23:59
#439735
Já estou conferindo amigo,
Mas aqui ele me deu uns erros quando vou executar , [Ô] ActiveX component cant create object[Ô]

Era so eu adicionar as Class ao projeto e e ativar o AxtiveX 6.1 , DAO 3.1 e Ativar as fontes , Nao?


Obrigado!!!!
WARG 22/07/2014 15:35:03
#439740
Consegui!
Utilizei o Calculo e a formatação no meu código , estou indo ao banco paga-lo!
Espero que de tudo certo!
TUNUSAT 23/07/2014 08:02:40
#439753
Warg,

Legal.
Espero que tenha conseguido.
Dica: Se você utilizou impressora laser para imprimir o boleto vai funcionar.
Para impressoras jato de tinta não é sempre que funciona.

[][ô]s,
Tunusat.
JCM0867 23/07/2014 09:51:41
#439758
Fazendo uma conferência pelos meus sistemas
o [txt-color=#e80000]5[/txt-color]5 que tu usa está errado
O ultimo 5 é digito verificador
só que o penultimo 5 em vermelho está errado, ele será sempre 0 (zero), no meu sistema esse digito é fixo (zero), não vem de nenhum lugar.
logo esse 5 estando errado ele erra o digito verificador desse conjunto e o digiito verificador geral.

tenho quase certeza que é esse o erro
não olhei o manual para lembrar pq esse campo é zero
WARG 23/07/2014 10:56:35
#439763


JMC : Sim , aqui ele sempre me retorna 0 agora , Muito obrigado cara! meu erro pelo que vi era na montagem do campo livre, quanto a isso ja esta tudo 100%

TUNUSAT : Já estava ciente deste detalhe , na real eu paguei somente pelo numero
mas o seguinte....a linha digitavel esta correta , o numedo do cod de barras tambem ,porém , quando uso a linha digitavel vai direto, mas quando uso o cod de barras no site ele me retorna a linha digitavel com uma formatação muito estranha , mas acredito que isso seja coisa do site de bradesco mesmo ... ou voce tbm teve esse problema ?


T+++ e abraços!
Faça seu login para responder