LINHA DIGITAVEL DO SANTANDER

MAXCIM 28/10/2010 11:52:18
#356139
Ola amigos!
alguem tem ai por gentileza o modulo de calculo da linha digitavel do Santander?

desde já agradeço
RICARDO.RAPA 30/10/2010 03:29:42
#356317
Resposta escolhida
[ô] dados Real/Santander

[ô]DECLARAR

Dim rdv1
Dim rdv2
Dim rdv3
Dim rdvL
Dim rdnD
Dim rdvG
Dim digitao
Dim vc As Boolean

Private Sub dv1Real()

Dim valor, div, subt, dv
Dim d(9) As Integer
Dim resultado(9) As Integer
Dim peso

valor = [Ô]3569[Ô] & Boleto2.agencia.Caption & Mid(Boleto2.cod, 1, 1)
TOTAL = 0
peso = 2

For i = 9 To 1 Step -1

d(i) = Mid(valor, i, 1)

If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If

If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If

TOTAL = TOTAL + resultado(i)

Next i

div = TOTAL Mod 10
subt = 10 - div

If subt = 0 Then
dv = 0
rdv1 = dv
[ô]MsgBox [Ô]BLOCO 1 - DV1: [Ô] & valor & rdv1
Exit Sub
End If

If subt > 9 Then

Dim a2, b2, c2
a2 = Mid(subt, 1, 1)
b2 = Mid(subt, 2, 1)
c2 = a2 + b2

div = c2 Mod 10

If div = 0 Then
rdv1 = div
[ô]MsgBox [Ô]BLOCO 1 - DV1: [Ô] & valor & rdv1
Exit Sub
End If

subt = 10 - div

End If

dv = subt
rdv1 = dv

[ô]MsgBox [Ô]BLOCO 1 - DV1: [Ô] & valor & rdv1

End Sub

Private Sub DigitaoCobranca()

Dim valor, div, subt, dv As Integer
Dim d(18) As Integer
Dim resultado(18) As Integer
Dim peso

valor = Mid(Boleto2.nnumero.Caption, 7, 7) & Boleto2.agencia.Caption & Boleto2.cod.Caption

TOTAL = 0
peso = 2

For i = 18 To 1 Step -1

d(i) = Mid(valor, i, 1)

If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If

If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If

TOTAL = TOTAL + resultado(i)

Next i

div = TOTAL Mod 10
subt = 10 - div

If subt = 0 Then
digitao = 0
Exit Sub
End If

If Int(subt) > 9 Then
digitao = 0
Exit Sub
End If

dv = subt
digitao = dv

End Sub

Private Sub dv2Real()

Dim valor, div, subt, dv
Dim d(10) As Integer
Dim resultado(10) As Integer
Dim peso

valor = Mid(Boleto2.cod, 2, 6) & digitao & Mid(Boleto2.nnumero, 1, 3)
TOTAL = 0
peso = 2

For i = 10 To 1 Step -1

d(i) = Mid(valor, i, 1)

If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If

If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If

TOTAL = TOTAL + resultado(i)

Next i

div = TOTAL Mod 10
subt = 10 - div

If subt = 0 Then
dv = 0
rdv2 = dv
[ô]MsgBox [Ô]BLOCO 2 - DV2: [Ô] & valor & rdv2
Exit Sub
End If

If subt > 9 Then

Dim a2, b2, c2
a2 = Mid(subt, 1, 1)
b2 = Mid(subt, 2, 1)
c2 = a2 + b2

div = c2 Mod 10

If div = 0 Then
rdv2 = div
[ô]MsgBox [Ô]BLOCO 2 - DV2: [Ô] & valor & rdv2
Exit Sub
End If

subt = 10 - div

End If

dv = subt
rdv2 = dv

[ô]MsgBox [Ô]BLOCO 2 - DV2: [Ô] & valor & rdv2

End Sub

Private Sub dv3Real()

Dim valor, div, subt, dv
Dim d(10) As Integer
Dim resultado(10) As Integer
Dim peso

valor = Mid(Boleto2.nnumero, 4, 10)
TOTAL = 0
peso = 2

For i = 10 To 1 Step -1

d(i) = Mid(valor, i, 1)

If peso = 2 Then
resultado(i) = (d(i) * 2)
peso = 1
Else
resultado(i) = (d(i) * 1)
peso = 2
End If

If resultado(i) > 9 Then
Dim A, B, c
A = Mid(resultado(i), 1, 1)
B = Mid(resultado(i), 2, 1)
c = A + (0#) + B
resultado(i) = c
End If

TOTAL = TOTAL + resultado(i)

Next i

div = TOTAL Mod 10
subt = 10 - div

If subt = 0 Then
dv = 0
rdv3 = dv
[ô]MsgBox [Ô]BLOCO 3 - DV3: [Ô] & valor & rdv3
Exit Sub
End If

If subt > 9 Then
Dim a2, b2, c2
a2 = Mid(subt, 1, 1)
b2 = Mid(subt, 2, 1)
c2 = a2 + b2

div = c2 Mod 10

If div = 0 Then
rdv3 = div
[ô]MsgBox [Ô]BLOCO 3 - DV3: [Ô] & valor & rdv3
Exit Sub
End If

subt = 10 - div

End If

dv = subt
rdv3 = dv

[ô]MsgBox [Ô]BLOCO 3 - DV3: [Ô] & valor & rdv3
End Sub

Private Sub dvGReal()

Dim vlr, div, subt, dv
Dim d(43) As Integer
Dim resultado(43) As Integer
Dim peso
Dim totalG

vlr = [Ô]3569[Ô] & Fator(Boleto2.vencimento.Caption) & SequenciarValor(Boleto2.valor.Caption) & Boleto2.agencia.Caption & Boleto2.cod & digitao & Boleto2.nnumero.Caption
totalG = 0
peso = 2

For i = 43 To 1 Step -1

d(i) = Mid(vlr, i, 1)

resultado(i) = (d(i) * peso)

totalG = totalG + (0#) + resultado(i)

peso = peso + 1

If peso > 9 Then peso = 2

Next i

div = totalG Mod 11
subt = 11 - (0#) - div

If subt >= 11 Then
subt = 11 - subt
End If

If subt = 10 Or subt = 0 Or subt = 1 Then
rdvG = 1
[ô]MsgBox [Ô]DV GERAL2: [Ô] & rdvG
Exit Sub
End If

dv = subt
rdvG = dv

[ô]MsgBox [Ô]DV GERAL: [Ô] & rdvG
End Sub


Function FatorREAL(data As Date) As String

Dim sMsg As String
Dim Dinicial As Date

Dinicial = [Ô]23/07/2000[Ô]
sMsg = DateDiff([Ô]d[Ô], Dinicial, data)

FatorREAL = sMsg

End Function
Public Function SequenciarValor(valorSeq As String)

Dim a1, b1, c1, Tot, ver

ver = Len(valorSeq) - (0#) - 1

a1 = InStr(valorSeq, [Ô],[Ô])

b1 = Left(valorSeq, a1 - 1)

c1 = Mid(valorSeq, ver, 2)

Tot = b1 & c1

SequenciarValor = Format(Tot, [Ô]0000000000[Ô])

End Function


ESTOU TE MANDANDO O CODIGO DO MEU SISTEMA PARA VOCÊ ADAPTAR AO SEU.

Ate.......


MAXCIM 30/10/2010 08:26:09
#356323
Valeu Ricardo! muito obrigado
Tópico encerrado , respostas não são mais permitidas