P. 1
Gerando Boletos Bancários com o VB e Crystal Reports

Gerando Boletos Bancários com o VB e Crystal Reports

|Views: 1.323|Likes:
Publicado porclaudio lobo

More info:

Published by: claudio lobo on Apr 13, 2012
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/20/2013

pdf

text

original

02/04/12

Gerando Boletos Bancarios com 0 VB e Crystal Reports

Gerando Boletos Bancarios com 0 VB e Crystal Reports I
que correco

o

e preciso

para gerar Boletos sencencs : 0 que e um boleto bancario ?

? Bela pergunta

nao

e mesmo

, Que tal correcar

pelo

Provavelmente voce ja deve conhecer um boleto bancarlo , Quem nao teve um boleto em 1T1i30s ara p pagar? Se voce um desses poucos felizardos que nunca viram um boleto bancario , permita- me apresenta-lo , na figura abaixo temos um prototipo de um boleto bancario:

e

Autenticat;ao

rnecanlca

""B;~~~" ~"B~~~ii" "001""" d T""
Local de Pagamenlo: Cedenle/Sacador

!C'o."f!c

1tI\;)'i ,t{itI'.~iNI ,Po\i!"U,_t~~l\;)'i!l'lill

r""""""""""""""""""~

~"~ ~";~";~"~ ~"~"";~"~ ~"~ ~"~ ~"~ ~"~~"" "~ ~ ;"~;","~"~ ~"~;"~" ~"~ ~~ ~~

Pagavel em qualquer agencia bancaria ate
CONSUL TORIA LTDA
No, do documenlo

0

vencimento

Vencimenlo

28/05/2001
Agencia/C6digo Cedenle

JCMSOFT

00057-4101127765"2
Especie doc, RC Quanlidade Aceile N Data Processamento 28/04/2001 (x) Valor Nossa Nurnero

Dala do documenlo 28104/2001 Usa do Banco

00000031
Carteira CNR Especie Moeda R$ do cedente)

0010000303455
(=) Valor do Documenlo

180,00
(-) DesconlosiAbalimenlo (-) Oulras Deduc;:oes (+) Mora/Mulla (+) OutrosAcrescimos

lnstrucees

(Texto de responsabilidade

Ap6s vencimento Mora dia R$ 0,43

, multa de 10%

Protestar ap6s a 50 dia util ap6s a vencimento
Sacado:Arnaldo Lisa Rua dosAndradas401 Sao Paulo - SP

(=) Valor Cobrado

Ficha de Compensat;ao
Autenticacao Mecanica

Embora haja pequenas dlferencas de banco para banco a layout acima pode ser considerado como um padrao para a boleto bancario. 0 boleto bancario que adotaremos como referencia a usado pelo Banco do Brasil, ,(Se voce vai gerar para outro banco deve solicitar ao banco a docurrentacao do boleto). Vamos as principais partes de um boleto bancarlo:

e

01. Especifica.,;oes do Boleto Bancario
a) nurn e ro de vias ou partes - 2 (duas), sendo: ( Obs: A ficha de caixa foi abo/ida)

I - Ficha de Com pe nsa cao ; II - Recibo do sacado. b) dis po sicde s das vias ou partes: via deve ser a Ficha inferior do papel; de

I - se sob a forma de vias carbonadas ou auto-copiativas, a primeira II - nos demais casos, a Ficha de Co m pe ns a cao deve ficar na parte

co mpe

nse cao :

Banco do Brasil 341 . previsto do item 12. aos PRIMEIRO.76581 29000. 237-Bradesco .52800. conforme exemplo ..CCCCCd D VVVVVVVVVVVVVV B . ela e utilizada para identificar 0 boleto e deve ser digitada quando 0 codiqo de barras nao pode ser lido ou quando voce vai fazer 0 pagamento do boleto na internet. codigo da moeda (poslcao 4 do codlqo de barras).composto pelo fator de vencimento (po sicde s 6 a 9 do codiqo de barras) e pelo valor nominal do documento (po sictie s 10 a 19 do codiqo de barras).real) V . etc .Banco Itau . Obs: editar com ponto. conforme exemplo . SEGUNDO e TERCEIRO campo nao sao representados .Temos aqui 0 nome ou 0 logotipo do banco e 0 nurrero de ldentlflcacao do banco na camera de ccrrpensacao lnterbancaria ( cada banco possui um nurrero que 0 identifica: 001.00192.nurrero do banco M .composto pelo codigo do Banco (po sicde s 1 a 3 do codigo de barras). ) .ao 5 do cndlqc de barras).783459 a 15 (de clrn a quinta) do campo livre (posicde s 25 a 34 do c) TERCEIRO CAMPO .o equivalente h) a disposicao dos dados na linha dlqttavel referentes nao se apresenta i) os digitos verificadores barras..Digito verificador do codlqo de barras d- digito verificados 0 da linha diqitavels da linha digitavel deve seguir 0 Assim para Banco do Brasil a corrposlcao seguinte corrposlcao: Linha digitavel: Composic. a 01 caracter.ao (sem ponto ou virgula).02/04/12 GerandoBoletosBancarioscom 0 VB e CrystalReports Descrevendo 1 as partes do Boleto Bancario : 1 Banco do Brasil 001-9 1 39992. Obs: editar com ponto. com a indica cao de zeros entre eles ate compor as 14 pcsicce s do campo e sem edic.895335 a 25 (vlq eslm a quinta) do campo livre (posicde s 35 d) QUARTO CAMPO .0 'pequeno nurrero' que voce ve do lade direito a famosa linha digitavel . Obs: observar 0 rnetodo de calculo de DV modulo 11 especifico para Co diqo de Barras.depende do banco D .Digito Verificador geral do Co dlqo de Barras (posic.valor C .A Linha diqitavel tem 0 seguinte layout: e BBBMC. na mesma ordem encontrada no codigo de barras.CCCCd onde: CCCCC.000009 00303. conforme exemplo .composto pelas postcoes 6 (sexta) codlqo de barras) e digito verificador deste campo.CCCCCd CCCCC. Quando se tratar de bloqueto sem dlscrirn lna cao de valor no codigo de barras a re pre se nta cao deve ser com zeros. no codlqo de g) entre cada campo devers haver espac.campo livre . as cinco primeiras po sicde s do campo livre (po sicde s 20 a 24 do codiqo de barras) e digito verificador deste campo.iio dos campos: a) PRIMEIRO CAMPO . f) editar os tre s primeiros campos com um ponto. e) QUINTO CAMPO .34566 b) SEGUNDO CAMPO .Moeda (sempre 9 .composto pelas posrcoe s 16 (decirna sexta) a 44 do codigo de barras) e digito verificador deste campo.97856.000020 1 180001 . Obs: editar com ponto.

Por ultimo temos 0 codiqo de barras e 0 espaco reservado para autenticacao rrecanlca..SP . etc .Depois temos uma area reservada para que 0 cedente coloque tnstrucoes Geralmente tntorrracoes sobre multa . geralmente possui 17 posicoes e (-)Descontos'Abati menta (-)OutrasDaducoes (+) (+) Mora/Multa OutrosAcrescimos Valor Cobrado relativas ao boleto. desconto..A seguir temos 0 local de Pagamento . a especie de documento ( podemos ter: DM-Duplicata Mercantil DS-Duplicata de Servlco s RC-Recibo NP-Nota Promiss6ria . 0 boleto pode ser pago em .43 Protestar apes 0 50 0 banco. indicando se 0 comprador 'aceitou' 0 titulo.Temos tamoem a data de vencimento (quando a boleto vence) .00 .ao) 0 nurrero do documento .Os valores para Descontos/Abatimentos e Outras finalmente 0 Valor a ser cobrado do sacado.Temos aqui a data do documento (data de gera<. multa de 10% Mora dia R$ 0. estamos pagando a boleto) 0 nurrero da Agencia Bancaria (0057-4) banco.ao do sac ado e a ldentiflcacao da via.. . geralmente ate qualquer banco. 0 indicativo da carteira ( cada banco usa de modo diferente este campo: No BB temos carteira t t-co branca simples 17-cobran<. dia util apes 0 venclrnento (=) .a direta com registro 18cobranca sem registro ) a especie da moeda ( geralmente R$ ) a quantidade e 0 Valor do documento.0 Nosso Numero e 0 nurrero que identifica 0 titulo perante e composto pelo nurrero do convenio ( seis posicbes ) lnstrucoes (Textode responsabilidade do cedente) Apes \tencimento . etc . Datado documento 28/04/2001 0 e nome do Cedente (A empresa para quem 0 codiqo atribuido ao Cedente pelo No.do documento 00000031 18 R$ Especiedoc.. Sacado:ArnaldoLisa RuadosAndradas401 sao Paulo. Mora/Multa e Outros Acrescirros e 0 Ficha de Compensa. . protesto..02/04/12 GerandoBoletosBancarios coma VBe CrystalReports Local de Pagamento: Cedente/Sacador JCMSOFT Pagavel em qualquer agencia bancaria ate CONSUL TORIA LTDA 0 vencimento Vencimento 28/05/2001 Agencia/C6digoCedente 00057 -4/01127765-2 . RC Aceite DataProcessamento N 28/04/2001 NossoNOmero 0010000303455 (=) Usado Banco Carteira EspecieMaeda Quantidade (x)Valor Valor do Documento 180. Ficha de Corrpensacao. ) .. AutantlcacaoMecanica endereco . . (Alguns bancos nao deixam isto bem claro ..Agora temos 0 peducoes .0 Campo Aceite . ) 0 vencimento. no caso .

(quinta) postcao USAGE Display Display Display Display Display Display CONTEUDO 001 9 (Real) DV (*) Fator de Vencimento Valor CAMPO LIVRE 11 especffico 9/003/ 9/001/ 9/001/ 9/004/ 9/008/v99 9/025/ Obs: a) a dfgito verificador e calculado atraves de modulo b) a fator de vencimento e calculado atraves de metodologia descrita no manual Calculo do fator de vencimento: Metodologia de calculo para Podem ser adotadas 0 fator de vencimento para a calculo : a nurn ero de dias entre essa data e a do vencimento (data de vencimento duas formulas a) data base de 07. significa que 5 (cinco) barras definem que as espac. de maneira a nalo qa as barras.(2 de 5) intercalado.10. Codigode Barras a) a Codigo de Barras utilizado b) (2 de 5) intercalado c) intercalado significa e do tipo 1-25 . f) deixar espac.02/04/12 GerandoBoletosBancarioscom a VB e Crystal Reports 03. 01 (um) ca racte r. N.os entre as barras tarn bern tern significado. a dista ncia de 12 mm desde a margem d) deve ser observada de Barras.:OES PICTURE 001 a 003 004 a 004 005 a 005 006 a 009 010 a 019 020 a 044 da 5E. leiaute do codigo de barras passa a ser: POSl(.77213// 30530. o Layout 01 02 a) b) 03 04 05 06 do Codigo de Barras: 0 A partir de 01. iniciando pelo fator 1000. pelo Banco Central do Brasil e comum a todos as bancos.150082//18975.1997. e VENCIMENTO 03/07/2000 05/07/2000 01/05/2002 17/10/2010 21/02/2025 99997. h) a conte udo do campo obriq a te rio e determinado i) a conte udo do (Campo Livre) e especffico para a Banco do Brasil.04-07-2000 DATA BASE .2000.2000.o livre (zona de silencio ) de 5mm entre a margem g) a codiqo de barras e composto par dais campos: do papel ate a infcio do Co diqo de Barras. que corresponde a data de vencimento 03.07-10-1997 FATOR DE VENCIMENTO 1001 b) tabela de corretacao assim sucessivamente: FATOR 1000 1002 1667 4758 9999 Exemplo: data X fator.000003// 3//10010000035000 . sendo que duas delas sao barras largas. calculando menos data base e igual a fator): VENCIMENTO .09.07. campo o briqato rio e campo livre.. e) comprimento inferior da Ficha de Co m pe ns acao ate a centro do Co diqo total igual a 103 (cento e tre s) mm e altura total igual a 13 (treze) esquerda mm.

. se se se no 00 + 72 + 35 .0 total da soma d) Os resultados das m ultiplicactie s sao somados: onze.Soma-se os resultados. Para correcar teremos que usar tuncoes para calcular 0 digito verificador ( DV ) da agencia . a segundo par 8 e assim sucessivamente. codiqo do cedente e nosso-nurrero. . da direita para a esquerda. 0 resto e 0 digito. que serao impressos no fichamento de cobranc.7. por 2.Divide-se por 11.. sao impressos nos bloquetos e nao devem estar representados barras e linha digitavel. do nossonurrero e da linha diqitavel. conforme segue: 179/11 resto igual a 3. Fun~ao para calcular MODULO 11 PARA 0 DV da agencia . calculados com base no rn6dulo 11 .8 e 9 sucessivamente. codigo do cedente e do nosso-narnero. CODIGO DE CEDENTE E NOSSO-NUMERO CALCULO DE DiGITO o X 7 1 X 8 1 X 9 2 X 2 9 X 3 o X 4 o X 5 4 X 6 5 X 7 9 X 8 o X 9 ________ 00 72 35 24 00 00 27 04 09 08 00 179 _____________ __________________ _______________________ ____________________________ _________________________________ ______________________________________ ___________________________________________ ________________________________________________ _____________________________________________________ __________________________________________________________ Total_ _ a) 0 mod ulo 11 utiliza do pa ra manta ge m dos cam pas nosso nUm e ro. 179. Calculo do Digito Verificador do C6digo de Barras (quinta poslcao) . VERIFICADOR DE AGENCIA.6. tratando-se portanto as 14 (catorze) po sicde s como valor. siqnlflca ra que esse titulo nao centers a fator de vencimento no cadigo de barras/linha dlqltavef . do codigo do cedente . ... exemplo acima a dfgito verificador sera igual a 3.3. OBS: os dfgitos verificadores dos campos agencia.Pega-se as 43 posrcces (44 menos a quinta).5. a partir da ultima para a primeira. Se 0 resto for 10 ou 0. . + 8 + 0 (igual) e divido par a resto for menor que 10 (dez) a DV sera igual ao resto. c) 0 primeiro dfgito da direita para a esquerda e e pelo respectivo multiplicador (peso).02/04/12 GerandoBoletosBancarioscom a VB e CrystalReports 10 campo II 20 campo II 30 campo II dv II Fator venc/valor Obs: quando a primeira po sicao do campo //valor/! (fator de vencimento mais valor) for zero.a. a resto for igual a 10 (dez) a DV sera igual a X.Multiplica-se por 10. Os multiplicadores devers ser multiplicado par 9. Multiplica-se cada poslcao. b) Cada algarismo que com poe a nosso nurn e ro multiplicado (pesos) variam de 9 a 2. 0 digito eLSe nao.4. a resto for igual a 0 (zero) a DV sera igual a 0. cod igo do cede nte e prefixo da age ncia. no codiqo de Montando 0 c6digo de barras e a linha Digitavel Vamos agora mostrar como montar 0 codiqo de barras e a linha diqitavel.

'soma a resultado para tote liz acao intTotalNumero = intTotalNumero + intnumero 1)) * intMultiplicador 'se a multiplicador for maior que 2 decrementa-o caso contrario atribuir intMultiplicador = IIf(intMultiplicador > 2. MODULO 10 PARA CALCULO DE DiGITO VERIFICADOR DOS CAMPOS DA LINHA DIGITAVEL 2 9 0 1 0 2 4 5 9 0 - NtiMERO A SER CALCULADO DV MTJLTIPLICADORES 0 9 10 /1 4 0 0 ma i.02/04/12 Gerando Boletos Bancarios com a VB e Crystal Reports o codigo Visual Basic para a funt.1.ao If Not IsNumeric(strNumero) Then Calculo _ DV11 Exit Function End If 'inicia a multiplicador intMultiplicador =9 'pega cada caracter do numero For intcontador = Len(strNumero) a partir da direita To 1 Step -1 'extrai a caracter e multiplica prlo multiplicador intnumero = Val(Mid(strNumero. intcontador. intMultiplicador . se nao for um valor numerico sai da fun.s X 1 X 2 XX X 1 X 2 X 1 X 2 (PESOS) 0 9 0_ 1/ __ 1 4 0 0 L 9/ __9 2 ____________________ _______________________ _________________________ _____________________________ ________________________________ ___________________________________ _____________________________________ 18 /8 _________________________________________ 2 25 TOTAL .ao para calcular esses DV .s ma i.pode ser 0 seguinte: Function Calculo_DV11(strNumero 'declara as variave ls Dim intContador As Integer Dim intNumero As Integer As Integer As Integer As String) As String Dim intTotalNumero Dim intMultiplicador Dim intResto As Integer .Modulo 11 . 9) Next 'calcula a resto da divisao intResto = intTotalNumero do total par 11 Mod 11 10 -> DV=X (para a BB) e retorna valor padrao original 'verifica as exce cde s ( 0 -> DV=O Select Case intResto Case 0 Calculo_DV11 = "0" Case 10 Calculo_DV11 = "X" Case Else Calculo_DV11 = str(intResto) End Select End Function a DV Fun~ao para calculo do digito verificador da linha digitavel..

intTotalNumero 1)) + 1) 'verifica as excecde s ( 0 -> DV=O ) Select Case intResto Case 0 Calculo DV10 = "0" . 1 e 2. 2) Next Dim DezenaSuperior As Integer If intTotalNumero < 10 Then DezenaSuperior = 10 Else DezenaSuperior = 10 End If intResto = DezenaSuperior * (Val(Left(CStr(intTotaINumero). sera g) a resultado obtido do nurn ero .ao If Not IsNumeric(strNumero) Then Calculo DVI0 Exit Function End If 'inicia a multiplicador intMultiplicador =2 'pega cada caracter do numero a partir da direita For intContador = Len(strNumero) To 1 Step -1 'extrai a caracter e multiplica intNumero = Val(Mid(strNumero. com poe a ruirn e ro pelo cao seja maior que alternando-se (multiplicador). e) fazer f) subtrair a sorn a to rio dos a total apurado sera 9 (nove) deve rao ser somados as algarismos do produto. b) as multiplicadores c) multiplicar cada com a nurn e ro 2 (dais). se a resultado for maior que nove soma as algarismos do resultado If intNumero > 9 Then intNumero = Val(Left(intNumero. 1. que seu respectivo d) caso a resultado da m ultiptica reduzi-Io a um unico algarismo. imediatamente igual superior a 5.02/04/12 a) a modulo Gerando Boletos Bancarios com a VB e Crystal Reports 10 deve ra ser utilizado comec. 1)) * intMultiplicador . ate resultados no item a dfgito obtidos: anterior. ao total apurado: 30 .Modulo 10 . .25 e igual a 5. se nao for um valor numerico sai da func. verificador no exemplo da dezena a soma e igual a 25. 1)) + Val(Right(intNumero. pelo multiplicador intContador. 1)) End If 'soma a resultado para totauzacao intTotalNumero = intTotalNumero + intNumero 1 atribui 2 'se a multiplicador for igual a 2 atribuir valor 1 se for intMultiplicador = IIf(intMultiplicador = 2. o cndiqo Visual Basic para a funceo As String) para calcular esses DV .am algarismo para calcular a DV dos 03 (tre s) primeiros sempre pela direita. a dfgito verificador igual a 0 (zero).pode ser As String 0 seguinte: Function Calculo_DV10(strNumero 'declara As variave is Dim intContador As Integer Dim intNumero As Integer As Integer As Integer Dim intTotalNumero Dim intMultiplicador Dim intResto As Integer . DVe h) se a resultado da subtracao for igual a 10 (dez ). peso campos da linha dlqltave l.

devera ser multiplicado par 2. do Codlqo de Barras. j) nas po slco es 43 a 44 do codlqo de barras devers ser informado.diferente de 10 e 11 II.020863. c) multiplicar cada algarismo que com poe a num e ro pelo seu respectivo multiplicador po sica o e saltando a 5 po sica o : d) as multiplicadores (pesos) variam de 2 a 9. considerar: da subtrace o for: D.5. g) a total da soma devera ser dividido par 11 h) a resto da divisao devera ser subtraldo i) especificamente I . .igual a 10 .012345.V. A Func. po sicao do Cndiqc de Barras. igual a 1. Dim Dim Dim Dim codigo_sequencia As String database As Date fator As Integer intDac As Integer 'database para calculo do fator database = CDate("7/10/1997") fato r = Date Diff("d".34 Banco m dv fator valor no . po is ind icaria que a cod igo de ba rra s nao passu i ATENC.V. incluindo a D.10000000542068.se a resultado de 11 para a D. valor As Single.21 Temos que calcular 0 DV do cndiqo de barras para isto usamos e quatro) 0 seguinte algoritmo: a) a codlqo de barras possui 44 (quarenta postcces.9. D. . a segundo par 3 e assim sucessivamente. sendo: da postce o 1 a 4 e da po sicao 6 a 44.:Jl.17 posrcoe s tipo 001.V.a resultado deste calculo devera ser incluido na 5il.conve nio nosso nurn e ro . igual a 1.V. iniciando-se pela 44 e) a primeiro digito da direita para a esquerda f) as resultados das m ultiplica cde s devem ser somados.4. vencimento As As String. Esquematizando teremos: 123. sera a proprio digito. Farm at(ve ncim e nto. b) para calcular a D. sempre... considerar 43 poslco es do Cndiqo de Barras. data ba se .02/04/12 GerandoBoletosBancarioscom a VB e CrystalReports Case Else Ca Iculo_DV1 0 = Str(intResto) End Select End Function o C6digo de Barras Iremos montar 0 codiqo de barras para uma carteira 18 (sem registro) com nosso nurrero de 17 posicfies com Fator de vencimento.4.V. a tipo de servlco 21. (peso).ao que iremos usar para montar Private Function Monta_CodBarras(Banco Date.67890123456789012..V. "dd/m m/yyyy")) valor = Int(valor * 100) .47139120100002678.67890123456789. Livre As String) 0 codiqo de barras e dada a seguir: Moeda As String.ONaa se ra ad m itido a dig ito 0 (ze ro) na quinta postcao.igual a l1. digito verificador. D.

02/04/12 dv2 = Val(Calculo_DVlO(seq2)) dv3 = Val(Calculo_DVlO(seq3)) 'formata a sequencia seql = Left(seql &dvl." & Right(seql 5) &". meu objetivo gerar 0 codiqo de barras a e a linha dlqitavel e imprimir 0 boleto.ao que a partir do nurrero do converuo calculo 0 nosso nurrero com dv: Function Calculo_NossoNumero(sequencia As String) As String 'montamos a nosso numero com a numero do convenio ( 6 posicoes) Dim dv As Integer dv = Ca Icu lo_DVll (seq ue ncia) Calculo_NossoNumero = Format(sequencia End Function . Criando 0 Projeto para imprimir os boletos -Inicie 0 VB e no forrrulario padrao insira os controles conforme 0 layout abaixo: iii Gerando Boletos Bancaties no Crystal Reports I!!lIiI EJ Cedente JcmSoft Comultoria Nurnero do Convenio 111111 Banco . "00000000000000000") Bem. . agora vamos juntar tudo e emitir 0 boleto com 0 codiqo de barras e a linha diqitavel. fum.Inca a seu cargo e apenas mostrar como a pe rfelco a r e adaptar a projeto .Ele pode ser Abaixo temos a & dv. seq2 = Left(seq2 &dv2.um nurrero de ldentlftcacao composto pelo nurrero do converuo .. Especie ~ID_M_ _ 0023 -==lEl=1 001 Agencia J Sacado Sacado Endereco Text3 Text3 Text3 Text3 UF CEP Vencimento Text3 Emissao Text3 Valor Text3 C6digo de Barras Linha Digitavel ~--------------------------------------------~ T ext3 ~--------------------------------------------~ Text3 Nao vou me ater as rotinas de rranutencao/vaudacao dos dados .um nurrero atribufdo ao converuo que 0 ldentffica.ao para calcularmos 0 nosso nurrero . & dv3." & Right(seq3 &"" &seq2 &"" &seq3 &dvl. Linha_Digitavel End Function = seql Gerando Boletos Bancarios com a VB e Crystal Reports 5) &". seq3 = Left(seq3 & dv3. &"" 5) 6) 6) & DV_CodBarras &"" &valor Falta somente a fum." & Right(seq2 5) & ". &dv2.

1. Vamos desenhar 0 layout do boleto no Crystal Reports ( Eu estou usando a versao que vem com 0 VB6 a 4. unlco cuidado que voce deve ter com 0 campo para gerar 0 cndiqo de barras.TTf e u2lbcp.6 ) conforme especificado pelo Banco. 5. Tenha 0 cuidado de inserir os campos nos lugares corretos .dll para as pastas windows\fonts e windowsssvstem. Faca oseguinte: o e Como vamos usar 0 padrao 2 de 5 intercalado temos que usar uma tuncao que esta disponivel no Crystal Reports apos copiarmos os arquivos Cia_itft. Veja .(Fiz isto somente para voce ver 05 nurn e ro s ) Vamos criar um relatorio no Crystal Reports versao 4.codbar ) e clique em OK e selecione-a 0 3.6 ( se funcionar nessa vers. voce nao precisa necessariamente fazer isto no seu projeto. Informe 0 nome para esta formula ( Ex.3ofunciona em qualquer outra posterior) para que quando clicarmos no botao de irrpresseo 0 boleto seja gerado com 0 codiqo de barras e a linha diqitavel. ( Vamos usar as Fontesdo comentadas no artigo Usando codigo de barras Conceitos Eu armazenei os valores do codiqo de barras e da linha diqitavel no banco de dados para ficar mais facil para mim • 9 . Pronto voce acabou de montar uma formula com abaixo 0 campo gerado para 0 ccdiqo de barras.Flf) 4.02/04/12 Gerando oletosancarios com0 VBe Crystal B B Reports as suas necessidades) o projeto deve funcionar da seguinte forma: • • Voce inc lui um cedente e 0 respective sacado 0 Apos informar os dados do sacado voce vai clicar no botso para gerar diqltavel Os nurreros serao exibidos nas respectivas codiqo de barras e da linha • • caixas de texto.codbarras} 0 valor para codiqo de barras.B". No crystal Reports no local onde deseja que clique na opcao Formula Field 0 codiqo de barras seja exibido va no menu Insert e 2. A seguir na aba Fields clique no campo onde estamos armazenando No nosso caso sera {tbIBoletos. Na aba Functions localize a funcao BarcodeINTERLEAVED20FS(IITFO.

- Esta uma fonte TrueIvpe.linhaD igitavel tblBoletos. CedenteN umero Additional Functions: BarcodeANYTYPE ('»:xX-O.B" 6.67 Pitch Cancelar £m. B oletol D tblB oletos.rpt . . BarcodeCODE39 'C39-0.BHIA". Fonte Eonte: lIa OK Code39-D igits Comic Sans MS Copperplate Gothic B Copperplate Gothic Courier 1 0 Pitch Courier 16. Inclua a formula no local onde deseja exibir 0 codiqo de barras 0 8. codbarr as tblB oletos. Selecione a fonte CIA rTF Tall e pronto. e A mesma fonte sera usade para a 10. CedenteN ome Cedente. no botao Accept 7. se nao houver erros . Cedente. 0 relatorio esta pronto para ser usado. tela e para a impressora. Agora clique no botao Check e a seguir . Salve 0 seu relatorio com 0 nome de boleto. Veja a figura abaixo.BoletoVe .~~~:~:dO [n~iillllllllllil ~1"'~_P_re_to - -=~EJ~l II ~ r-Sc_~_Pt_: Ocidental 1'.02/04/12 Gerando Boletos Bancarios com a VB e Crystal Reports : Edit Formula: Fields: @codbar a Fld) Report Fields: tblB oletos. Mude a fonte para esta formula clicando com Change Font botao direito do mouse sobre e ela e selecionando 9.

..•.....•. . 'lsiJshtio'i '" ......•. . . ~:):Il~~~~~/~~~.. ....~~"""""'"' ' ' ' ' ' ' ' '"'~""'' ' "'' ' ""'"' ' ' Flcha"de't~omp'e'nsa~'~'o"'' "' "'"'...Destination =0 crl..ru...•... ••... . ..:...02/04/12 Gerando Boletos Bancarios com a VB e Crystal Reports Agora insira 0 componente Crystal Reports ao seu projeto ...~..WindowControlBox = True crl. .....~.~iJid¥...~. " " c~OOtt..~~~'' ~'"' ' ' ' ~' ~'...ReportFileName = App... .... .... .•. .....•......e~:.... .:..te~to.••..•...•... ....... ......Action =1 End Sub Rode 0 projeto e clique no botao que imprime como abaixo: 0 0 nome de boleto. l!~?.•......:. ............•...•.........rpt" crl...•....•...•.. JcmSofi Cnnsultoria ••• 'I'" 'I" "1'" 'I'" 'I" "1'" 'I'" 'I" "1'" 'I'" 'I" "1'" 'I'" 'I" "1'" 'I'" 'I" "1'" 'I'" 'I" "1'" 'I'" 'I" "1'" 'I'" 'I" "1'" 'I'··· p..•. ~.:....~. ...... .......~~~~.......•...... .........•..... ... ........ ...•........•..•. . ... ..... ....~ : .'5'5'5'54' '5'0'000: 0000'0'5"0'0'0'5'5:'555585"1"1'6'0'0'0' Local &!' p~:' """ " ""'" " "" '" " '''' '" " '''' '" " '''' '" " "" "... .....~~j~~": ...•....e "1'" 'I'" " " 00'515555551' ~~~%fA~:":'''':''''~?::~'~?~''':'i'':'''':''''~:e.." "" "'" '''' "'" '''' "'" '''' "'''' "".: ....... '""'"""'~'~~~'..e...... /.•....... . . (=) Cobrado '·R$1·6·O:O·O·'· ..•.....•. .... ..•. .•. . : ....•.•..gm...~~.............•.•.':'"':'''':''' ':'"':'''':''' ':'"':'''':''' ':'"':'''':''' ':'''' :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: . .•. ' '~·ii:i6····'···· :::::::::::::::::: ~.." "" "'" '''' "'" '''' "'" '''' "'" "" ".......•.."""""""'"'''''' ....Path & "\boleto........•.•. ..........------.... ~?.":.... Se voce fez tudo certo devera obter 0 boleto BAN'CO"iio"BRAS'iL "'I' "" 001 '~"9"'"'I"" "" "'' ' "'" "" "'' ' '" 00'195'.~?<~?...O~ ..~SP~l1S..•.... .•.. ........' "'"' ' " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " " .. Agora inclua 0 seguinte codiqo no evento click do botso de comando cmdimprimir..:Wcodjgo •• "1'" 'I'" 'I" ....•. ~~'~'" "'"'''' "'"'' 'i~~"I'~~~'~~~"'" '''' '" ""'''' '''' Y~'"'''''' '''' "'''' ~...•...----'O"-=-:'7""........... ... ......~" " " " N ~'y~.•. :::::::::::::::::: ~.. .•..(~t?<"":'I"~~'~''':'''' ~~.•..:".. .~.....•.-..\e~~t. se nao 0 fez ainda ..... .~ vJor --=-::--=---"".... •.•.... .....•...........•.........DataFiles(O) = App..... Private Sub crndimprimir_ClickO crl.--.i.....:.......--...~~~e~.:..•......•.. ............~. •. r.•.•.....•.....-j •. ...~~~~~~. .......•.. ..•.. ••............ . . ..•...~. '''' .. ____. ~....•. V"ru~' .):~..mdb" c rl. ...... .••.•.. ...:.•... ...•.•.... :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: .. . ...·'···k :proJ~&!:Moim....:.. ••. .... ... ....------..... e de a ele crl. . ..Path & "\boleto2001..~ "R$l'6'O:O'O'" I. ':'''':' . ... ~.. ... . •. ..............•.:.... Joao tarl..... ............•....•.. ..•...... ..... .....•. WindowState = 2 crl... •.•...

0 relatorio(. isto fica a seu crtterto.rpt) e a base de dados(. A altura deve ser de 13 mm e 0 comprimento 103 mm. Clique no link a seguir para copiar 0 codigo fonte(. Para usa comercial eu sugiro que voce adquira um componente de terceiro para gerar a seu co d iqo de barras.. (lULHO/2004) .zip 10 Kb ( 0 projeto completo e os arguivos das fontes usadas estao no super cd VB) Nota: 0 BB tem um novo modelo de "campo livre" para seus boletos. Para outros bancos podem haver algumas modificac:.. afinal meus artigos sao atualizados sempre na calada da noite a po s um longo dia de trabalho . quando 0 convenio tem 7 digitos. Veja mais detalhes no site do Banco do Brasil.:5es a fazer.Jose Carlos Macoratti e amigos da WEB . Nota: Eu nao gerei 0 recibo do sacado para ganhar tempo. em vez de 6..mdb) usada no artigo: Boleto. Cuidado ao utilizar a exemplo ele pode canter erros . O Copyright (e) 2001 .txt) . Veja tambem como gerar boletos bancarios a partir da linha digitavel sem componente algum: Boleto Banee) rio Nota: A Febraban recomenda um tamanho padrao para 0 c6digo de barras.02/04/12 Gerando Boletos Bancarios com a VB e Crystal Reports 1M PORTANTE: Todas as rotinas foram feitas levando em conta a do curn entacao para a Banco do Brasil. Para ajustar 0 tamanho do 6digo de barras gerado altere 0 tamanho da fonte. Ate 0 proximo artigo . Eu nao testei a codiqo gerado em uma rn a quina leitura de co diqo de barras .

Sm t r t ul 0 3333333333333333333333333333333 o 000000 Pa gi na a .

JN\I\)(J\/\)C.JNN\l\)(J\/\)C.JNVVWJNNNNV\)(J\/\I\)(J\NNVWJNNNNVVWJNV\)C.Sm t r t ul 0 NNVWJV\)C.J Pa gi na a .

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->