Escolar Documentos
Profissional Documentos
Cultura Documentos
DIGITVEL CREDISISCOBRANA
Padro de cdigo de barras para nosso nmero de 17 posies (carteira 18), com fator
vencimento:
...............................................................
N.
POSIES
PICTURE
USAGE
CONTEO
...............................................................
01
001 a 003
9/003/
Display
097
02
004 a 004
9/001/
Display
9 /Real/
03
005 a 005
9/001/
Display
DV /*/
04
006 a 009
9/004/
Display
fator de vencimento
05
010 a 019
9/008/v99
Display
Valor
06
020 a 044
9/025/
Display
CAMPO LIVRE
...............................................................
MONTAGEM DO CAMPO LIVRE
.............................................................
N.
POSICOES
PICTURE USAGE
CONTEUDO
.............................................................
01
020 a 025
9/006/
Display Fixo: 000000 (Zeros)
02
026 a 042
9/017/
Display NossoNmero, sem DV
03
043 a 044
9/002/
Display Fixo: 18
Exemplo do Cdigo de Barras
A
B C D
E
F
G
H
123.4.5.6789.0123456789.012345.67890123456789012.34
---.-.-.----.----------.------.-----------------.B .M.D.F
.
.
.
.T
A .O.V.A
.
. FIXO .
NOSSO NUMERO .I
N .E. .T
.
VALOR .
.
.P
C .D. .O
.
DO
. ZEROS.
.O
O .A. .R
. TITULO .
.
.
. . .
.
.
.
.
A)
B)
C)
D)
Exemplo de LINHA DIGITVEL para nosso nmero de 17 posies (carteira 18), com fator
vencimento:
BBBMC.CCCCd CCCCC.CCCCCd CCCCC.CCCCCd D VVVVVVVVVVVVVV
onde:
B - nmero do banco
M - Moeda (sempre 9 - real)
V - valor7
C - campo livre - depende do banco
D - Digito verificador do cdigo de barras
d - digito verificados da linha digitveis
Perceba que temos 5 sequncias de nmeros , cada sequncia com um significado :
Vamos identificar cada sequncia:
1. BBBMC.CCCCd -
2. CCCCC.CCCCCd -
convenio)
5. VVVVVVVVVVVVVV -
seq2 = Left(seq2 & dv2, 5) & "." & Right(seq2 & dv2, 6)
seq3 = Left(seq3 & dv3, 5) & "." & Right(seq3 & dv3, 6)
Linha_Digitavel = seq1 & " " & seq2 & " " & seq3 & " " & DV_CodBarras & " " & valor
End Function
Next
Dim DezenaSuperior As Integer
If intTotalNumero < 10 Then
DezenaSuperior = 10
Else
DezenaSuperior = 10 * (Val(Left(CStr(intTotalNumero), 1)) + 1)
End If
intResto = DezenaSuperior - intTotalNumero
'verifica as excees ( 0 -> DV=0 )
Select Case intResto
Case 0
Calculo_DV10 = "0"
Case Else
Calculo_DV10 = Str(intResto)
End Select
End Function
A funo que iremos usar para montar o cdigo de barras dada a seguir:
Private Function Monta_CodBarras(Banco As String, Moeda As String, valor As Single,
vencimento As Date, Livre As String)
codigo_sequencia = Banco & Moeda & fator & Format(valor, "0000000000") & Livre
' calculo do DV
intDac = calcula_DV_CodBarras(codigo_sequencia)
End Function
intMultiplicador = 2
For intContador = 1 To 43
caracter = Mid(Right(sequencia, intContador), 1, 1)
If intMultiplicador > 9 Then
intMultiplicador = 2
intNumero = 0
End If
intNumero = caracter * intMultiplicador
intTotalNumero = intTotalNumero + intNumero
intMultiplicador = intMultiplicador + 1
Next
intresultado = 11 - intResto
End Function