USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Boleto bancário e manuais de cobrança
caco
Pontos: 2843

SP - BRASIL
ENUNCIADA !
Postada em 05/03/2005 06:01 hs            
Olá!
 
Estou enviando o link para um projeto Open Source feito em Delphi para geração de boletos bancários. Estão disponíveis também os manuais de cobranças de alguns bancos com as instruções de como devem ser geradas as cobranças.
 
 
Abraços!

Messenger: vbdev@uol.com.br

   
Roger
não registrado
ENUNCIADA !
Postada em 09/03/2005 15:22 hs   
Estou traduzindo esse codigo para Vb mas ando meio sem tempo. Se alguem quiser ajudar eu acho que seria bem legal. Quem estiver dentro, avisa.
   
Me$$o HAL9000
Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 11/03/2005 15:36 hs            
Vcs Conhecem algum do mesmo estilo sendo Nota Fiscal

atte
 
Emerson Silva Emoções
.net Developer
   
Snake
Pontos: 2843
ITAJUBÁ
MG - BRASIL
ENUNCIADA !
Postada em 17/03/2005 09:31 hs         
Roger, caso queira uma ajuda pode contar comigo .
 
sem mais,
   
Marcelobao
CAMPO NOVO DO PARECIS
MT - BRASIL
ENUNCIADA !
Postada em 02/04/2005 11:00 hs            
Espero ajudar vcs com esse codigo aki...
 
Option Explicit
Dim nossonumero As String
Dim codigobarras As String
Dim linhadigitavel As String
Dim sql As String
Private Function Monta_CodBarras(Banco As String, Moeda As String, valor As Single, vencimento As Date, Livre As String)
Dim codigo_sequencia As String
Dim database As Date
Dim fator As Integer
Dim intDac As Integer
'database para calculo do fator
database = CDate("7/10/1997")
fator = DateDiff("d", database, Format(vencimento, "dd/mm/yyyy"))
valor = Int(valor * 100)
Livre = Format(Livre, "0000000000000000000000000")
' sequencia sem o DV
codigo_sequencia = Banco & Moeda & fator & Format(valor, "0000000000") & Livre
' calculo do DV do codigo de barras
intDac = calcula_DV_CodBarras(codigo_sequencia)
' monta a sequencia para o codigo de barras com o DV
Monta_CodBarras = (Left(codigo_sequencia, 4) & intDac & Right(codigo_sequencia, 39))
' monta sequencia da linha digitavel com os dvs
linhadigitavel = Linha_Digitavel(txtnumeroBanco & "9" & txtNumeroConvenio & nossonumero, CStr(intDac), CCur(text3(7)))
End Function
Private Sub cmdgeracodigos_Click()
   'calculo do nosso numero
   nossonumero = Calculo_NossoNumero(txtNumeroConvenio)
  'calculo do codigo de barras
   codigobarras = Monta_CodBarras(txtnumeroBanco, "9", CCur(text3(7)), CDate(text3(5)), txtNumeroConvenio & nossonumero & "21")
   text3(8).Text = codigobarras
   text3(9).Text = linhadigitavel
End Sub
Private Sub cmdimprimir_Click()
    cr1.DataFiles(0) = App.Path & "oleto2001.mdb"
    cr1.WindowState = 2
    cr1.WindowControlBox = True
    cr1.ReportFileName = App.Path & "oleto.rpt"
    cr1.Destination = 0
    cr1.Action = 1
End Sub
Private Sub Command2_Click(Index As Integer)
  Select Case Index
    Case 0  ' inclui
         Data1.Recordset.AddNew
         text3(0).SetFocus
         Command2(2).Enabled = True
         Command2(1).Enabled = False
    Case 1  ' exclui
         Data1.Recordset.Delete
         Data1.Recordset.MovePrevious
    Case 2  ' grava
         Data1.Recordset.Update
         Command2(2).Enabled = False
         Command2(1).Enabled = True
    Case 3  ' sai
         Unload Me
  End Select
End Sub
Private Function calcula_DV_CodBarras(sequencia As String) As Integer
Dim intcontador, intnumero, intTotalNumero As Integer
Dim intMultiplicador, intResto, intresultado As Integer
Dim caracter As String
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
intResto = intTotalNumero Mod 11
intresultado = 11 - intResto
If intresultado = 10 Or intresultado = 11 Then
    calcula_DV_CodBarras = 1
Else
    calcula_DV_CodBarras = intresultado
End If
   
End Function
Function Linha_Digitavel(sequencia As String, DV_CodBarras As String, valor As Single) As String
Dim seq1 As String
Dim seq2 As String
Dim seq3 As String
Dim dv1, dv2, dv3 As Integer
'separa a sequencia e prepara o valor
seq1 = Left(sequencia, 9)
seq2 = Mid(sequencia, 10, 10)
seq3 = Right(sequencia, 10)
valor = Int(valor * 100)
' calcula os dvs
dv1 = Val(Calculo_DV10(seq1))
dv2 = Val(Calculo_DV10(seq2))
dv3 = Val(Calculo_DV10(seq3))
'formata a sequencia
seq1 = Left(seq1 & dv1, 5) & "." & Right(seq1 & dv1, 5)
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
Function Calculo_DV10(strNumero As String) As String
'declara As variáveis
Dim intcontador, intnumero, intTotalNumero, intMultiplicador, intResto As Integer
' se nao for um valor numerico sai da função
If Not IsNumeric(strNumero) Then
  Calculo_DV10 = ""
  Exit Function
End If
'inicia o multiplicador
intMultiplicador = 2
'pega cada caracter do numero a partir da direita
For intcontador = Len(strNumero) To 1 Step -1
'extrai o caracter e multiplica prlo multiplicador
intnumero = Val(Mid(strNumero, intcontador, 1)) * intMultiplicador
' se o resultado for maior que nove soma os algarismos do resultado
If intnumero > 9 Then
  intnumero = Val(Left(intnumero, 1)) + Val(Right(intnumero, 1))
End If
'soma o resultado para totalização
intTotalNumero = intTotalNumero + intnumero
'se o multiplicador for igual a 2 atribuir valor 1 se for 1 atribui 2
intMultiplicador = IIf(intMultiplicador = 2, 1, 2)
Next
'calcula o resto da divisao do total por 10
intResto = intTotalNumero Mod 10
'verifica as exceções ( 0 -> DV=0 )
Select Case intResto
  Case 0
     Calculo_DV10 = "0"
  Case Else
     Calculo_DV10 = Str(intResto)
End Select
End Function
Function Calculo_DV11(strNumero As String) As String
'declara as variáveis
Dim intcontador, intnumero, intTotalNumero, intMultiplicador, intResto As Integer
' se nao for um valor numerico sai da função
If Not IsNumeric(strNumero) Then
  Calculo_DV11 = ""
  Exit Function
End If
'inicia o multiplicador
intMultiplicador = 9
'pega cada caracter do numero a partir da direita
For intcontador = Len(strNumero) To 1 Step -1
'extrai o caracter e multiplica prlo multiplicador
intnumero = Val(Mid(strNumero, intcontador, 1)) * intMultiplicador
'soma o resultado para totalização
intTotalNumero = intTotalNumero + intnumero
'se o multiplicador for maior que 2 decrementa-o caso contrario atribuir valor padrao original
intMultiplicador = IIf(intMultiplicador > 2, intMultiplicador - 1, 9)
Next
'calcula o resto da divisao do total por 11
intResto = intTotalNumero Mod 11
'verifica as exceções ( 0 -> DV=0    10 -> DV=X (para o BB) e retorna o DV
Select Case intResto
  Case 0
    Calculo_DV11 = "0"
  Case 10
    Calculo_DV11 = "X"
  Case Else
    Calculo_DV11 = Str(intResto)
End Select
End Function
Function Calculo_NossoNumero(sequencia As String) As String
 'montamos o nosso numero com o numero do convenio ( 6 posicoes)
    Dim dv As Integer
 
    dv = Calculo_DV11(sequencia)
    Calculo_NossoNumero = Format(sequencia & dv, "00000000000000000")
   
End Function
Private Sub limpa_registros()
Dim i As Integer
   For i = 0 To 7
      text3(i).Text = ""
   Next
   txtBoletoID.Text = ""
End Sub
Private Sub Command3_Click()
  Data2.Recordset.AddNew
End Sub
Private Sub Command4_Click()
  Data2.Recordset.Delete
  Data2.Recordset.MovePrevious
End Sub
Private Sub Command5_Click()
   Data2.Recordset.Update
End Sub
Private Sub Form_Load()
   Command2(2).Enabled = False
End Sub
 

Emoções( "Marcelobão" )Emoções
   
xvinny
CURITIBA
PR - BRASIL
ENUNCIADA !
Postada em 07/04/2005 20:14 hs         
valeu pela dica, já baixei a versão 2.1 do boleto e algumas documentações também, espero poder implantar ele no sistema que estou desenvolvendo brevememte..
valeu!!
   
Página(s): 1/2      PRÓXIMA »


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página