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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Codigo de Barras - Incrementar numeros gerados
CarlinhosBrown
ALTO PARAÍSO DE GOIAS
GO - BRASIL
Postada em 28/10/2004 11:11 hs            
bom dia amigos,
 
tenho um codigo que gera codigos de barras, vejam:
 
no modulo:

'VARIÁVEIS PARA O CÓDIGO DE BARRAS

Public GRCODBAR As String                      '44 P. CODIGO DA BARRA

Public GRCBOXES As String                      '48 P. CODIGO / LINHA DIGITAVEL

Public GRVVALOR As Currency  '11 DIGITOS       'VALOR TOTAL DO CODIGO

'Valor: 55,00

Public GRIDENTI As String    '4 DIGITOS        'CONVENIO

'0000

Public GRCODCON As String    '13 DIGITOS       'CODIGO DO CONTRIBUINTE

'Contribuinte: 100.002.0003.004

Public GRCODPAR As String    '2 DIGITOS        'CODIGO DA PARCELA

'Parcela: 01

Public GRDATAVE As String    '8 DIGITOS        'DATA DE VENCIMENTO

 

Public GA As String

 

Public GB As String

 

Public GC As String

 

 

'DataVencimento: 03/04/2004

'Public GRCBANCO As String   '3 DIGITOS        'BANCO

'Banco: 031

'Public GRAGENCI As String   '4 DIGITOS        'AGENCIA

'Agencia: 114

 

'-------------------------CODIGO PRONTO---------------------------

'OBRIGATORIO  VALOR        CONVENIO   SEUS DADOS

'8165         00000009211  0173       8772200303310110780867000

'18 + O DIGITO GERAL

 

'ANTES DE FICAR PRONTO ELE FICA ASSIM-----------------------------

'816000000092110173 8772200303310110780867000

 

'VC TEM 25 DIGITOS PARA SEU USO. POR ISSO O BANCO A AGENCIA NAO PODERA IR JUNTO

'VOU ACRESCENTAR 2 ZEROS A ESQUERDA DO CONTRIBUINTE - LEMBRE-SE DISSO NA HORA DE BAIXAR

 

 

'OBS.: TODOS OS DADOS ACIMA DEVERAO SER TRATADOS, OU SEJA ELES SO VEM PARA

'      AS VARIAVEIS COM O SEU VALOR FINAL - SOMENTE NUMEROS

 

'CODIGO BARRAS..............................................................................

Public Function CODBAR()

   'GRIDENTI = "0137"        'CÓDIGO DO CONVENIO - DEIXE AQUI O NUMERO DO CONVENIO

   Dim GD As String

   Dim GE As String

   Dim GF As String

   Dim GG As String

   Dim GCOD As String

   Dim goma As Double

   Dim g1 As Double

   Dim g2 As Double

   Dim gdig As Double

   Dim pos As Double

   Dim GRVIGGGG As Double

   Dim box1, box2, box3, box4 As String

   Dim XDG, XD1, XD2, XD3, XD4 As String

   GA = "8"               'MUDE AQUI PARA O PADRAO QUE A FEBRABAN TE PASSOU

   GB = "1"               'CADA UM DESSES NUMEROS TEM UM SIGNIFICADO

   GC = "6"               'ESSES TAMBEM SAO FIXOS

   GCENTS = GRVVALOR - Int(GRVVALOR)

   If Len(GCENTS) = 1 Then GCENTS = "00"

   If Len(GCENTS) = 3 Then GCENTS = Right(GCENTS, 1) & "0"

   If Len(GCENTS) = 4 Then GCENTS = Right(GCENTS, 2)

   GE = "00" & GCENTS & Int(GRVVALOR)

   GE = "00" & Right(1000000000 + Int(GE), 9)

   GF = GRIDENTI

   GRDATAVE = "00" & GRDATAVE

   GG = GRDATAVE & GRCODPAR & GRCODCON

   GCOD = GA & GB & GC & GE & GF & GG

   TEXTOSIM = GCOD

   XDG = Left(TEXTOSIM, 4): XDG = Right(XDG, 1)       'digito geral

   TEXTOSIM = Left(TEXTOSIM, 3) & Right(TEXTOSIM, 40) 'sem o digito geral

   box1 = Left(GCOD, 10)

   box2 = Left(GCOD, 21): box2 = Right(box2, 11)

   box3 = Left(GCOD, 32): box3 = Right(box3, 11)

   box4 = Right(GCOD, 11)

   'VERIFICAMDO O DIGITO GERAL

   Dim posi, soma, mulp As Double 'posicao do digito

   Dim Cont As String

   Dim somg As Double

   Dim ACAO, condicao As Double

   posi = 0 'posicao do texto

   soma = 0 'soma o conteudo da posicao e multiplica pelo multi

   somg = 0 'soma geral

   mulp = 2 'multiplicador 2ou1

   ACAO = 0: condicao = 0

   Do While ACAO < 5

      ACAO = ACAO + 1

      condicao = 11

      If ACAO = 1 Then condicao = 43 'VERIFICA O DIGITO GERAL

      If ACAO = 2 Then TEXTOSIM = Left(box1, 3) & XDG & Right(box1, 7) ' MsgBox Len(TEXTOSIM) 'VERIFICA O DIGITO 1 BOX

      If ACAO = 3 Then TEXTOSIM = box2 ' MsgBox TEXTOSIM 'VERIFICA O DIGITO 2 BOX

      If ACAO = 4 Then TEXTOSIM = box3 ' MsgBox TEXTOSIM 'VERIFICA O DIGITO 3 BOX

      If ACAO = 5 Then TEXTOSIM = box4 ' MsgBox TEXTOSIM 'VERIFICA O DIGITO 4 BOX

      posi = 0 'posicao do texto

      soma = 0 'soma o conteudo da posicao e multiplica pelo multi

      somg = 0 'soma geral

      mulp = 2 'multiplicador 2ou1

      Do While posi < condicao

         posi = posi + 1

         Cont = Left(TEXTOSIM, posi): Cont = Right(Cont, 1)

         soma = Val(Cont) * mulp

         If soma >= 10 Then

            xsom = soma

            somg = somg + Val(Left(xsom, 1)) + Val(Right(xsom, 1))

            soma = Val(Left(xsom, 1)) + Val(Right(xsom, 1))

         Else

            somg = somg + soma

         End If

         If mulp = 2 Then

            mulp = 1

         Else

            mulp = 2

         End If

      Loop

      If somg > 10 Then

         a = somg / 10        ' divisao

         b = Int(a) * 10      ' multiplicando para chegar ao resultado

         c = somg - b         ' achando o resto

         If c > 0 Then

            somg = 10 - c

         Else

            somg = 0

         End If

      Else

         somg = 10 - somg

      End If

      If ACAO = 1 Then 'ACAO -ACHANDO O DIGITO GERAL

         XDG = somg

         GRCODBAR = Left(box1, 3) & XDG & Right(box1, 7) & box2 & box3 & box4

      End If

      If ACAO = 2 Then 'ACAO -ACHANDO O DIGITO 1 BOX

         box1 = Left(GCOD, 10)

         box1 = Left(box1, 3) & XDG & Right(box1, 7) & " " & somg

      End If

      If ACAO = 3 Then 'ACAO -ACHANDO O DIGITO 2 BOX

         box2 = box2 & " " & somg

      End If

      If ACAO = 4 Then 'ACAO -ACHANDO O DIGITO 3 BOX

         box3 = box3 & " " & somg

      End If

      If ACAO = 5 Then 'ACAO -ACHANDO O DIGITO 4 BOX

         box4 = box4 & " " & somg

      End If

      DoEvents

   Loop

   GRCBOXES = box1 & "  " & box2 & "  " & box3 & "  " & box4

End Function

 

 

 

funcao no form:

 

'calculo o valor da parcela unica

Dim CodUnica As String

Dim ParUnica As String

Dim datUnica As String

Dim valorUnica As String

CodUnica = ""

ParUnica = ""

valorUnica = "0"

CodUnica = Format(TabelaPag("CodContribuinte"), "")      'valor do codigo do contribuinte

ParUnica = "00"                                          'valor para parcela unica

datUnica = Format(TabelaPag("DatParcUnica"), "yyyymmdd") 'valor da data da parcela

valorUnica = Replace(TabelaPag("ValParcUnica"), ",", "")     'valor da parcela unica

 

'funcao para o codigo de barras

   GRCODCON = CodUnica                  'CONTRIBUINTE

   GRCODPAR = ParUnica                  'PARCELA

   GRDATAVE = datUnica                  'VENCIMENTO

   GRVVALOR = valorUnica                'VALOR - ESSE CAMPO NAO PRECISA DE TRATAMENTO

   GRIDENTI = Seg & Conv

  

   CODBAR                               'GERA O CODIGO

 

 

esse codigo acima pegar os seguinte valores para gerar os numeros:

 

inscricao 100.001.0001.000

data venc. 15/03/2005

valor: 1325,25

parcela: 00 (unica)

 

que ficar assim:

81610001325254811370020050315001000010001000

 

como faço para que o codigo fique assim:

8161000132525   48113700  20050315   00  1000010001000

 

veja que onde é para ficar o valor ele termina na posicao 13 e era pra terminar na 15..

 

da onde saiu esse 48?

 

finalizando eu queria ele assim:

81610000013252500113720050315001000010001000

8161  00000132525  001137  20050315  00  1000010001000

 

ou seja:

numero do codigo: 8161

campo do valor: 00000132525

numero de identificacao: 001137

campo da data: 20050315

campo da parcela: 00

campo da inscricao do contribuinte: 1000010001000

 

esse sistema é de IPTU.

 

alguem poderia me ajudar a concertar isso, e que ele fique no padrao da febraban?

 

grato pela atencao.

     
CarlinhosBrown
ALTO PARAÍSO DE GOIAS
GO - BRASIL
Postada em 29/10/2004 16:19 hs            
poxa alguem nao tem uma ideia por ai?
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

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

HTML DESLIGADO

     
 VOLTAR

  



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