Ja vi alguns colegas se queixando de nao consegui usar o HarbourBoleto com o Harbour. Pois bem, como todo mundo ja sabe da minha labuta pra migrar de xharbour para harbour, também encontrei essa dificuldade.
Ja uso HarbourBoleto com xHarbour ha muitos anos e tem mim quebrado um galhão. Uso para os bancos Bradesco e Brasil.
Mas pra usar com harbour, basta algumas poucas modificações. Pra quem sabe (eu não sei), pode ate incluir algumas chamadas diretivas (#IFDEF __HARBOUR__,#ENDIF) pra ficar compativel aos dois harbour's. Quem souber por esse negocio, favor ajudar ne heheheheh.
Bom, pra usar HarbourBoleto com Harbour... eis os passos:
Meu ambiente:
- Harbour 3.2
- HarbourBoleto que acabei de baixar
/*
* $Id: ChangeLog,v 1.68 2013/11/08 10:59:40 marioargon Exp $
*/
Dos arquivos que vem no pacote do HarbourBoleto, vc vai precisar apenas dos arquivos:
- acento.prg
- htmlprint.prg
- oboleto.prg
- oremessa.prg
Primeiro passo:
- No oboleto.prg, substituir TODAS as chamadas do comando "LIKE" para a função hb_regexLike( <exp2>, <exp1> )
Exemplo
Substituir
CASE ::cCodBco like "(008|033|353)" //Santander Banespa
por
CASE hb_regexLike( "(008|033|353)", ::cCodBco )
Atenção: SUBSTITUIR TODAS AS CHAMADAS, OK!?
Segundo passo:
Ainda no oboleto.prg, deixar o METHOD Print... apenas assim:
Código: Selecionar todos
METHOD Print( lPreview, lPromptPrint, cPrinter ) CLASS oBoleto
DEFAULT lPreview TO ::lPreview ,;
lPromptPrint TO .T.,;
cPrinter TO ""
DEFAULT cPrinter TO GetDefaultPrinter()
PrintHTML(::Destino + ::Nomehtm, cPrinter, lPreview, lPromptPrint, !lPreview )
RETURN Self
- No htmlprint.prg, colocar o include:
#include "hbcompat.ch"
Ainda No htmlprint.prg, METHOD Print() CLASS HTMLPRINT, comentar essas linhas:
Código: Selecionar todos
* WHILE WB:Readystate <> READYSTATE_COMPLETE .OR. lnWaiting >= MAX_TIME
* lnWaiting = Seconds() - lnStarted
* ENDDO
* WHILE WB:QueryStatusWB(OLECMDID_PRINT) != (OLECMDF_SUPPORTED + OLECMDF_ENABLED)
* ENDDO
Quarto passo:
Qndo vc for gerar o boleto do seu programa, usar assim:
oBol := oBoleto():New("001") // banco do brasil
e nao assim (como vem demonstrando no demoboleto.prg:
oBol := oBoleto("001") // banco do brasil
Fim... acho que eh apenas isso!

