Boletos do Banco Itaú
Moderador: Moderadores
-
Gerald
- Usuário Nível 1

- Mensagens: 39
- Registrado em: 06 Jul 2004 17:50
- Localização: Caldas Novas
- Contato:
Boletos do Banco Itaú
Alguem tem a rotina desses boletos, não ele pronto mas como descobrir o digito verificador e etc...?
Quando disserem que seu trabalho não é o de um profissional, lembre-se: Amadores construíram a arca de Noé, profissionais, o Titanic...
www.1grau.com\comunidadeclipper
skype = "gpfranca"
novo email: geraldo@usinfo.com.br
www.1grau.com\comunidadeclipper
skype = "gpfranca"
novo email: geraldo@usinfo.com.br
Ola galera,
nao desencoraja nao, mas o codigo de barra de boleto é um nó, é formado por um monte de informação, pode ter até o valor do titulo, a data de vencimento é o numero de dias apos um determinado dia em 1997 se nao me engano, etc, apesar de nao ter a menor ideia como se faz pra imprimir o boleto, acho que eh mais facil que o codigo de barra, se nao me engano tem no site www.febraban.org
valeu
nao desencoraja nao, mas o codigo de barra de boleto é um nó, é formado por um monte de informação, pode ter até o valor do titulo, a data de vencimento é o numero de dias apos um determinado dia em 1997 se nao me engano, etc, apesar de nao ter a menor ideia como se faz pra imprimir o boleto, acho que eh mais facil que o codigo de barra, se nao me engano tem no site www.febraban.org
valeu
Gerald,
Para calcular o nosso numero dos boletos bancarios, você deve pedir para o seu cliente solicitar junto a cobrança do Itau, ou qualquer banco que seja, o manual de cobrança eletronica, pois cada banco possui uma maneira diferente de calcular o NOSSO NUMERO. Necessariamente você não precisa imprimir os boletos, o Itau fornece o seu programa de cobrança eletronica, o SISCOB, onde você pode digitar os boletos, ou importar um arquivo texto gerado pelo seu sistema, ai o proprio SISCOB imprime os boletos com codigo de barras, etc...
Aqui na minha empresa assim como em varios clientes meu, o meu sistema financeiro emite as notas fiscais, depois eu entro no meu modulo de HOMEBANKING, seleciono quais titulos eu quero mandar para o banco, seleciono o banco, e qual modelo de arquivo de exportação, feito isso eu exporto todos os dados, depois entro no programa do banco, importo e imprimo todos os boletos. Vale lembrar, que no mesmo banco, de acordo com o tipo de cobrança, existem deversos lay-outs diferentes, por isso eu tenho um gerador, onde eu defino os lay-out dos arquivos dos bancos.
Eu possuo alguns manuais de cobranças, inclusive do ITAU, se você quise, dá um toque que eu te mando via email.
Nota de Moderação:
por [url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: (de acordo a sua ultima citação)
Enviar por email, resolver através de meios privados são práticas não aceitas aqui no fórum. Desestimulamos este tipo de procedimento, já que o objetivo do fórum é para servir como fonte centralizadora de informações, onde os usuários possam compartilhar de forma pública e não exclusiva. Favor ler a Regra Geral do Fórum (itens 10,11,12 e 13).
Abraços,
Dercide.
dercide@terra.com.br
Para calcular o nosso numero dos boletos bancarios, você deve pedir para o seu cliente solicitar junto a cobrança do Itau, ou qualquer banco que seja, o manual de cobrança eletronica, pois cada banco possui uma maneira diferente de calcular o NOSSO NUMERO. Necessariamente você não precisa imprimir os boletos, o Itau fornece o seu programa de cobrança eletronica, o SISCOB, onde você pode digitar os boletos, ou importar um arquivo texto gerado pelo seu sistema, ai o proprio SISCOB imprime os boletos com codigo de barras, etc...
Aqui na minha empresa assim como em varios clientes meu, o meu sistema financeiro emite as notas fiscais, depois eu entro no meu modulo de HOMEBANKING, seleciono quais titulos eu quero mandar para o banco, seleciono o banco, e qual modelo de arquivo de exportação, feito isso eu exporto todos os dados, depois entro no programa do banco, importo e imprimo todos os boletos. Vale lembrar, que no mesmo banco, de acordo com o tipo de cobrança, existem deversos lay-outs diferentes, por isso eu tenho um gerador, onde eu defino os lay-out dos arquivos dos bancos.
Eu possuo alguns manuais de cobranças, inclusive do ITAU, se você quise, dá um toque que eu te mando via email.
por [url=https://pctoledo.org/forum/memberlist.php?mode=viewprofile&u=100899][color=#00AA00]Pablo César[/color][/url]: (de acordo a sua ultima citação)
Enviar por email, resolver através de meios privados são práticas não aceitas aqui no fórum. Desestimulamos este tipo de procedimento, já que o objetivo do fórum é para servir como fonte centralizadora de informações, onde os usuários possam compartilhar de forma pública e não exclusiva. Favor ler a Regra Geral do Fórum (itens 10,11,12 e 13).
Dercide.
dercide@terra.com.br
-
Magno
- Usuário Nível 1

- Mensagens: 11
- Registrado em: 05 Ago 2004 13:19
- Localização: Belo Horizonte
- Contato:
Caro amigo,
A geração de boleta não é tão complicado quanto parece.
Basta ter um pouco de fôlego e analisar o código que está no site do Toledo.
Veja em
https://pctoledo.org/download/boletos.zip
Imprime Boletos Bancários em impressoras laser (Bancos: Brasil, Banespa, Bradesco, Itaú e Safra). Autor: Adriano Diógenes de Almeida
Faz os cálculos de todos os dígitos verificadores, tais como o do nosso número, dígito geral, cedente e banco.
Infelizmente ele não imprime boleto da CAIXA ECONÔMICA.
Contudo, analisando o lay out dos Códigos da CEF, fiz as alterações necessárias e deu certo. Por enaquanto, o meu único problema é consegiur o lay out da LOGOMARCA "caixa" (um arquivo do tipo msc).
A propósito, se alguém puder me ajudar, favor enviar.
Baixe o arquivo, analise e caso tenha alguma dúvida, entre em contato.
A unica restrição do programa é que ele gera somente em impressora laser. (utilizo a HP5m).
Atenciosamente
Carlos Magno.
A geração de boleta não é tão complicado quanto parece.
Basta ter um pouco de fôlego e analisar o código que está no site do Toledo.
Veja em
https://pctoledo.org/download/boletos.zip
Imprime Boletos Bancários em impressoras laser (Bancos: Brasil, Banespa, Bradesco, Itaú e Safra). Autor: Adriano Diógenes de Almeida
Faz os cálculos de todos os dígitos verificadores, tais como o do nosso número, dígito geral, cedente e banco.
Infelizmente ele não imprime boleto da CAIXA ECONÔMICA.
Contudo, analisando o lay out dos Códigos da CEF, fiz as alterações necessárias e deu certo. Por enaquanto, o meu único problema é consegiur o lay out da LOGOMARCA "caixa" (um arquivo do tipo msc).
A propósito, se alguém puder me ajudar, favor enviar.
Baixe o arquivo, analise e caso tenha alguma dúvida, entre em contato.
A unica restrição do programa é que ele gera somente em impressora laser. (utilizo a HP5m).
Atenciosamente
Carlos Magno.
Achei o tal manual do banco rural
acredito ser próprio do banco rural, porém acredito que deve haver alguma semelhanca com outros bancos:
o código de barras para a cobranca contem 44 posicoes
03 - banco, 104 cef, 237 bradesco, etc
01 - moeda: 9- real,
01 - digito verificador do codigo de barras
04 - fator de vencimento
10 - valor do documento
25 - campo livre
fator de vencimento: a data de referencia é 07/10/1997
o fator é o numero de dias apos esta data, por exemplo para ctod(''05/08/2004'') -ctod(''07/10/1997'') = 2494
digito verificador:
dispor o numeros na sequencia indicada abaixo e multiplicar por seus respectivos pesos:
exemplo:
104 9 x 2494 0000123456 (25 digitos campo livre) == cod barras
432 9 8765 4329876543 2987654329876543298765432 == pesos
multiplica os valores pelos respectivos pesos, soma e divide por 11, o digito sera 11 menos o resto da divisao
ja encontrei alguns campos livres com conteudos diferentes como:
1 - tipo de cobranca = 0
3 - agencia
9 - conta
1 - digito da conta
7 - nosso numero
1 - digito nosso numero
3 - zeros
ou ainda
1 - tipo de cobranca = 9
3 - agencia cedente
3 - codigo reduzido do cliente
15 - seu numero
3 - zeros
de forma geral pode verificar boletos impressos por usuario, que normalmente segue esta discriminacao
valeu
acredito ser próprio do banco rural, porém acredito que deve haver alguma semelhanca com outros bancos:
o código de barras para a cobranca contem 44 posicoes
03 - banco, 104 cef, 237 bradesco, etc
01 - moeda: 9- real,
01 - digito verificador do codigo de barras
04 - fator de vencimento
10 - valor do documento
25 - campo livre
fator de vencimento: a data de referencia é 07/10/1997
o fator é o numero de dias apos esta data, por exemplo para ctod(''05/08/2004'') -ctod(''07/10/1997'') = 2494
digito verificador:
dispor o numeros na sequencia indicada abaixo e multiplicar por seus respectivos pesos:
exemplo:
104 9 x 2494 0000123456 (25 digitos campo livre) == cod barras
432 9 8765 4329876543 2987654329876543298765432 == pesos
multiplica os valores pelos respectivos pesos, soma e divide por 11, o digito sera 11 menos o resto da divisao
ja encontrei alguns campos livres com conteudos diferentes como:
1 - tipo de cobranca = 0
3 - agencia
9 - conta
1 - digito da conta
7 - nosso numero
1 - digito nosso numero
3 - zeros
ou ainda
1 - tipo de cobranca = 9
3 - agencia cedente
3 - codigo reduzido do cliente
15 - seu numero
3 - zeros
de forma geral pode verificar boletos impressos por usuario, que normalmente segue esta discriminacao
valeu
-
Gerald
- Usuário Nível 1

- Mensagens: 39
- Registrado em: 06 Jul 2004 17:50
- Localização: Caldas Novas
- Contato:
Valeu amigos, era isso mesmo que eu estava procurando. Valeu.Trazom escreveu:Achei o tal manual do banco rural
acredito ser próprio do banco rural, porém acredito que deve haver alguma semelhanca com outros bancos:
o código de barras para a cobranca contem 44 posicoes
03 - banco, 104 cef, 237 bradesco, etc
01 - moeda: 9- real,
01 - digito verificador do codigo de barras
04 - fator de vencimento
10 - valor do documento
25 - campo livre
fator de vencimento: a data de referencia é 07/10/1997
o fator é o numero de dias apos esta data, por exemplo para ctod(''05/08/2004'') -ctod(''07/10/1997'') = 2494
digito verificador:
dispor o numeros na sequencia indicada abaixo e multiplicar por seus respectivos pesos:
exemplo:
104 9 x 2494 0000123456 (25 digitos campo livre) == cod barras
432 9 8765 4329876543 2987654329876543298765432 == pesos
multiplica os valores pelos respectivos pesos, soma e divide por 11, o digito sera 11 menos o resto da divisao
ja encontrei alguns campos livres com conteudos diferentes como:
1 - tipo de cobranca = 0
3 - agencia
9 - conta
1 - digito da conta
7 - nosso numero
1 - digito nosso numero
3 - zeros
ou ainda
1 - tipo de cobranca = 9
3 - agencia cedente
3 - codigo reduzido do cliente
15 - seu numero
3 - zeros
de forma geral pode verificar boletos impressos por usuario, que normalmente segue esta discriminacao
valeu
Quando disserem que seu trabalho não é o de um profissional, lembre-se: Amadores construíram a arca de Noé, profissionais, o Titanic...
www.1grau.com\comunidadeclipper
skype = "gpfranca"
novo email: geraldo@usinfo.com.br
www.1grau.com\comunidadeclipper
skype = "gpfranca"
novo email: geraldo@usinfo.com.br
Bom dia amigos
baixei esse exemplo que pesquisei no forum
https://pctoledo.org/download/boletos.zip
li ele e pintou uma dúvida, ele manda pra Lpt1, mas se direcionar pra arquivo vai funcionar com o Dosprinter por exemplo ??!!
Obrigado
BHS
baixei esse exemplo que pesquisei no forum
https://pctoledo.org/download/boletos.zip
li ele e pintou uma dúvida, ele manda pra Lpt1, mas se direcionar pra arquivo vai funcionar com o Dosprinter por exemplo ??!!
Obrigado
BHS
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Vc pode desenvoler em harbour/xaharbour tem umas soluções para Boleto bancario bem bacana...
http://sourceforge.net/projects/harbourboleto/
http://sourceforge.net/projects/harbourboleto/
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
Boleto Itau
Fiz PRG para gerar boleto Itau em HTML.
Após gerar , basta abrir com IExplorer e imprimir.
O ideal é ler o manual do banco para entender como gerar os dados.
Infelizmente não achei o manual , talvez consiga com o Itau.
Segue o PRG , mas para funcionar precisa dos GIF´S do codigo de barras ,
posso mandar por e-mail !
Boa sorte,
Hu
Após gerar , basta abrir com IExplorer e imprimir.
O ideal é ler o manual do banco para entender como gerar os dados.
Infelizmente não achei o manual , talvez consiga com o Itau.
Segue o PRG , mas para funcionar precisa dos GIF´S do codigo de barras ,
posso mandar por e-mail !
Boa sorte,
Hu
Código: Selecionar todos
#include "fileio.ch"
* tbo2.prg - Gera arq. padrao HTML para Boleto
priv __dir_banc,__dir_img,__lin_digi,__cod_barr,__cod_banc,__dat_venc
priv __val_nomi,__dat_refe,vcod := {},vlin := {},__vnm_docu
priv __aceite,__esp_docu,__nom_cede,__nom_saca
set date format 'DD-MM-YYYY'
cls
* Dados a serem definidos
__cod_banc := '341'
__cod_agen := 'nnnn' // string com n.o agencia bco
__cod_cart := '175'
__num_docu := '00000000'
__cta_cede := 'nnnnn' // string com n.o cta corrente
__cta_dgvf := '0'
__dat_refe := ctod('07-10-1997')
__dat_venc := ctod(' - - ')
__val_nomi := 0
__vnm_docu := val(__num_docu)
__nom_arqu := spac(30)
* 1234567890123456789012345678901234567890
__nom_saca := 'ACME DO BRASIL '
__dad_juro := spac(40)
__dad_mult := spac(40)
@05,05 say 'Cod. Banco .....:' get __cod_banc pict '999'
@06,05 say 'Cod. Agencia ...:' get __cod_agen pict '9999'
@07,05 say 'Cod. Carteira ..:' get __cod_cart pict '999'
@08,05 say 'N.o Documento ..:' get __vnm_docu pict '@r 99999999' valid !empty(__vnm_docu)
* 567890123456789012 34567
@09,05 say 'N.o Conta ......:' get __cta_cede pict '99999'
@09,28 say '-' get __cta_dgvf pict '9'
@10,05 say 'Valor Titulo ...:' get __val_nomi pict '@er 999,999,999.99' valid !empty(__val_nomi)
@11,05 say 'Data Vencimento :' get __dat_venc valid (__dat_venc > __dat_refe)
@12,05 say 'Nome Sacado ....:' get __nom_saca pict '@!'
@13,05 say 'Juros ..........:' get __dad_juro pict '@!'
@14,05 say 'Multa ..........:' get __dad_mult pict '@!'
@15,05 say 'Nome Arq. ......:' get __nom_arqu pict '@!' valid !empty(__nom_arqu)
read
if lastkey() = 27
quit
endi
__cod_moed := '9'
__nom_saca := alltrim(__nom_saca)
__nom_arqu := alltrim(__nom_arqu)
__num_docu := strzero(__vnm_docu,8)
__fat_venc := strzero(__dat_venc-__dat_refe,4)
__dat_venc :=dtoc(__dat_venc)
* Digito verif. "Nosso Numero"
__dgvf := mod_10(__cod_agen+__cta_cede+__cod_cart+__num_docu)
__aceite := ' Não '
__nom_cede := 'XXX' // string com nome cedente
__esp_docu := 'DP'
*aadd(vobs,'*** Não pagar este boleto ***')
*aadd(vobs,'É apenas uma demonstração')
* Seq. numerica ref. para calcular __dig_veri
__cod_barr := ''
__cod_barr += __cod_banc // 001-003 cod. banco
__cod_barr += __cod_moed // 004-004 cod. moeda 9 -> Real
*__cod_barr += __dig_veri // 005-005 dig. verificador
__cod_barr += __fat_venc // 005-008 fat. vencimento (n.o dias a partir data ref.)
__cod_barr += strzero(__val_nomi * 100,10) // 009-018 val. nominal do titulo
__cod_barr += __cod_cart // 019-021 cod. carteira
__cod_barr += __num_docu // 022-029 n.o documento
__cod_barr += __dgvf // 030-030 dig. verif. n.o docu
__cod_barr += __cod_agen // 031-034 cod. agencia
__cod_barr += __cta_cede // 035-039 conta cedente sem digito
__cod_barr += __cta_dgvf // 040-040 dig. verif. conta
__cod_barr += '000' // 041-043 zero fixo
* Calculando e inserindo dig. verificador
__dig_veri := mod_11(__cod_barr)
__cod_barr := stuff(__cod_barr,5,0,__dig_veri)
*memowrit('cod_bar.txt',__cod_barr)
aadd(vcod,__cod_banc) // 001-003 cod. banco
aadd(vcod,__cod_moed) // 004-004 cod. moeda 9 -> Real
aadd(vcod,__dig_veri) // 005-005 dig. verificador
aadd(vcod,__fat_venc) // 006-009 fat. vencimento (n.o dias a partir data ref.)
aadd(vcod,strzero(__val_nomi * 100,10)) // 010-019 val. nominal do titulo
aadd(vcod,__cod_cart) // 020-022 cod. carteira
aadd(vcod,__num_docu) // 023-030 n.o documento
aadd(vcod,__dgvf) // 031-031 dig. verif. n.o docu
aadd(vcod,__cod_agen) // 032-035 cod. agencia
aadd(vcod,__cta_cede) // 036-040 conta cedente sem digito
aadd(vcod,__cta_dgvf) // 041-041 dig. verif. conta cedente
aadd(vcod,'000') // 042-044 zero fixo
__lin_digi := ''
__lin_digi += __cod_banc // 001-003 cod. banco
__lin_digi += __cod_moed // 004-004 cod. moeda 9 -> Real
__lin_digi += __cod_cart + left(__num_docu,2) // 005-009 pos. 20-24 cod. barras
__lin_digi += mod_10(__lin_digi) // 010-010 digito verif. 1.o campo
__lin_digi += right(__num_docu,6) // 011-016 pos. 25 a 30
__lin_digi += __dgvf // 017-017 pos. 31
__lin_digi += left(__cod_agen,3) // 018-020 3 dig. agencia
__lin_digi += mod_10(subs(__lin_digi,11,10)) // 021-021 digito verif. 2.o campo
__lin_digi += right(__cod_agenc,1) // 022-022 ult. dig. agencia
__lin_digi += __cta_cede // 023-027
__lin_digi += __cta_dgvf // 028-028
__lin_digi += '000' // 029-031 pos. 44
__lin_digi += mod_10(subs(__lin_digi,22,10)) // 032-032 digito verif. 3.o campo
__lin_digi += __dig_veri // 033-033 digito verif. geral
__lin_digi += __fat_venc // 034-037
__lin_digi += strzero(__val_nomi * 100,10) // 038-047
* 1 2 3 4
* 123456789012345678901234567890123456789012345678901234567890
* 6 2 8 5 1 8 0
* 99999.99999 99999.999999 99999.999999 9 99999999999999
__lin_digi := stuff(__lin_digi, 6,0,'.')
__lin_digi := stuff(__lin_digi,12,0,' ')
__lin_digi := stuff(__lin_digi,18,0,'.')
__lin_digi := stuff(__lin_digi,25,0,' ')
__lin_digi := stuff(__lin_digi,31,0,'.')
__lin_digi := stuff(__lin_digi,38,0,' ')
__lin_digi := stuff(__lin_digi,40,0,' ')
*memowrit('lin_dig.txt',__lin_digi)
aadd(vlin,__cod_banc ) // 001-003 cod. banco
aadd(vlin,__cod_moed ) // 004-004 cod. moeda 9 -> Real
aadd(vlin,__cod_cart + left(__num_docu,2)) // 005-009 cod. carteira + ...
aadd(vlin,mod_10(__lin_digi) ) // 010-010 digito verif. 1.o campo
aadd(vlin,right(__num_docu,6) ) // 011-016 pos. 25 a 30
aadd(vlin,__dgvf ) // 017-017 pos. 31
aadd(vlin,left(__cod_agen,3) ) // 018-020 3 dig. agencia
aadd(vlin,mod_10(subs(__lin_digi,11,10)) ) // 021-021 digito verif. 2.o campo
aadd(vlin,right(__cod_agenc,1) ) // 022-022 ult. dig. agencia
aadd(vlin,__cta_cede ) // 023-027
aadd(vlin,__cta_dgvf ) // 028-028
aadd(vlin,'000' ) // 029-031 pos. 44
aadd(vlin,mod_10(subs(__lin_digi,22,10)) ) // 032-032 digito verif. 3.o campo
aadd(vlin,__dig_veri ) // 033-033 digito verif. geral
aadd(vlin,__fat_venc ) // 034-037
aadd(vlin,strzero(__val_nomi * 100,10) ) // 038-047
html_boleto(__lin_digi,__cod_barr,vlin,vcod)
******************************************************************************
function html_boleto
******************************************************************************
memvar __cod_banc,__cod_agen,__cod_cart,__num_docu,__cta_cede,__cta_dgvf,;
__dat_venc,__val_nomi,__dgvf,__nom_cede,__nom_saca,__esp_docu,;
__aceite,__nom_arqu
para __linh,__bcod,vlin,vcod
priv __text,vtab := {},__tref
__val_nomi := tran(__val_nomi,'@er 9,999,999.99')
__dat_docu := dtoc(date())
__dat_proc := __dat_docu
aadd(vtab,{'0','NNWWN'})
aadd(vtab,{'1','WNNNW'})
aadd(vtab,{'2','NWNNW'})
aadd(vtab,{'3','WWNNN'})
aadd(vtab,{'4','NNWNW'})
aadd(vtab,{'5','WNWNN'})
aadd(vtab,{'6','NWWNN'})
aadd(vtab,{'7','NNNWW'})
aadd(vtab,{'8','WNNWN'})
aadd(vtab,{'9','NWNWN'})
* Def. padrao 2 of 5 do cod. barras
__segm := ''
for __i = 1 to len(__bcod) step 2
* Segmento barra
__npos := ascan(vtab,{ |v| v[1] = subs(__bcod,__i,1) })
__segb := vtab[__npos,2]
* Segmento espaco
__npos := ascan(vtab,{ |v| v[1] = subs(__bcod,__i+1,1) })
__sege := vtab[__npos,2]
for __j = 1 to len(__segb)
__segm += subs(__segb,__j,1) + subs(__sege,__j,1)
next
next
__narq := 'bol_ref.txt'
__crrt := chr(13)+chr(10)
if !file(__narq)
alert(' Nao tem Arq. ')
endi
__text := ''
__npos := 1
__tref := memoread(__narq)
do whil .t.
__ltxt := ''
for __i = __npos to len(__tref)
if (subst(__tref,__i,1) + subst(__tref,__i+1,1)) = __crrt
__npos += 2
exit
endi
__ltxt += subst(__tref,__i,1)
__npos += 1
next
* Verificando se existe campo variavel
if !empty((__pos_camp := at('',__ltxt)))
__ltxt := subst(__ltxt,__pos_camp+1,len(alltrim(__ltxt))-2)
__ltxt := &__ltxt
endi
__text += __ltxt
__text += __crrt
if __npos >= len(__tref)
exit
endi
endd
__text += ' <tr valign="top">' + __crrt
__text += ' <td width="67%" valign="center"> ' + __crrt
* Start Code
__text += ' <img src="pf.gif" border="0" width="1" height="49"' + chr(13) + chr(10)
__text += ' ><img src="bf.gif" border="0" width="1" height="49"' + chr(13) + chr(10)
__text += ' ><img src="pf.gif" border="0" width="1" height="49"' + chr(13) + chr(10)
__text += ' ><img src="bf.gif" border="0" width="1" height="49"' + chr(13) + chr(10)
for __i = 1 to len(__segm)
__text += ' ><img src="'
if mod(__i,2) # 0
__text += iif(subs(__segm,__i,1)='W','pg.gif"','pf.gif"')
else
__text += iif(subs(__segm,__i,1)='W','bg.gif"','bf.gif"')
endi
__text += ' border="0"'
__text += iif(subs(__segm,__i,1)='W',' width="3"',' width="1"')
__text += ' height="49"' + chr(13) + chr(10)
next
* Stop Code
__text += ' ><img src="pg.gif" border="0" width="3" height="49"' + chr(13) + chr(10)
__text += ' ><img src="bf.gif" border="0" width="1" height="49"' + chr(13) + chr(10)
__text += ' ><img src="pf.gif" border="0" width="1" height="49"' + chr(13) + chr(10)
**
__text += ' </td>' + __crrt
__text += ' <td width="33%" align="center">' + __crrt
__text += ' ' + __crrt
__text += ' </td>' + __crrt
__text += ' </tr>' + __crrt
__text += '</table>' + __crrt
__text += '</html>'
**
memowrit(__nom_arqu,__text)
retu NIL
******************************************************************************
function mod_10
******************************************************************************
* MOD 10 - formula LUHN
para __nref
priv __i,__soma,__dver,__vsgm
__soma := 0
for __i = 1 to len(__nref)
__segm := subst(__nref,len(__nref)-__i+1,1)
__vsgm := iif(mod(__i,2)#0,2*val(__segm),val(__segm))
__vsgm := iif(__vsgm>9,iif(__vsgm=18,9,mod(__vsgm,9)),__vsgm) // <---
__soma += __vsgm
next
__dver := 10 - mod(__soma,10)
__dver := iif(__dver=10,0,__dver)
retu alltrim(str(__dver,0))
******************************************************************************
function mod_11
******************************************************************************
para __nref
priv __i,__j,__soma,__dver
__soma := 0
for __i = 1 to len(__nref) step 8
for __j = 2 to 9
if len(__nref)-__i-__j+3 < 1
__i := len(__nref)
exit
endi
__segm := subst(__nref,len(__nref)-__i-__j+3,1)
__soma += val(__segm) * __j
next
next
__dver := 11 - mod(__soma,11)
__dver := iif(__dver=1 .or. __dver=10 .or. __dver=11,1,__dver)
retu alltrim(str(__dver,0))- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Muito bom seu aplicativo caro HU, este é mais um exemplo de como imprimir em formato HTML se ter a preocupação de impressoras e ao mesmo tempo este exemplo pode alavancar outros boletos de outros bancos. Amanhã vou checar o código de barras, mas pelo que me pareceu correpodem ao número acima do boleto. Parabéns pelo seu trabalho e muito obrigado por estar compartindo conosco.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Eu não possuo instrução algma do Bradesco, mas acho que tanto a estrutura TODA do boleto (aqui apresentado pelo colega HU) como a do código de barras DEVERÃO serem as MESMAS. O que muda é o código do banco, da agência, (talvez carteira ?), logotipo, código do banco (gráfico, gif) mas o resto deve ser padrão do BC. Você BHS, poderia checar com o Bradesco ou até mesmo comparando boleto do Bradesco se o código de barras mantém o mesmo padrão que aqui apresentado ?.
Um clip-abraço !
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Boleto Bradesco
Saudações ,
Até onde sei cada banco tem seu próprio "layout" , o manual da Febraban é útil para entender o geral , mas para fazer o boleto de um bco específico sempre é melhor utilizar o manual do próprio bco. O problema é conseguir através do bco ...
Vc pode tentar procurar na Internet , sempre se acha alguns e aí o problema é saber se é válido !
O programa que fiz é específico para o Itaú , para outros bcos o layout do boleto PODE SER eventualmente DIFERENTE , mas isso pode ser resolvido obtendo um boleto impresso do ref. bco e o "logo" (por isso o arq. "BCO_REF.TXT"). A questão é o posicionamento dos dados no código de barras , isto é os dados são geralmente os mesmos porém o seu posicionamento no código de barras varia de bco para bco.
Os GIF´s são universais para o padrão de código de barras utilizados nos boletos.
Feliz Natal pra todos.
Espero ter ajudado e boa sorte
Hu
Até onde sei cada banco tem seu próprio "layout" , o manual da Febraban é útil para entender o geral , mas para fazer o boleto de um bco específico sempre é melhor utilizar o manual do próprio bco. O problema é conseguir através do bco ...
Vc pode tentar procurar na Internet , sempre se acha alguns e aí o problema é saber se é válido !
O programa que fiz é específico para o Itaú , para outros bcos o layout do boleto PODE SER eventualmente DIFERENTE , mas isso pode ser resolvido obtendo um boleto impresso do ref. bco e o "logo" (por isso o arq. "BCO_REF.TXT"). A questão é o posicionamento dos dados no código de barras , isto é os dados são geralmente os mesmos porém o seu posicionamento no código de barras varia de bco para bco.
Os GIF´s são universais para o padrão de código de barras utilizados nos boletos.
Feliz Natal pra todos.
Espero ter ajudado e boa sorte
Hu


