Página 1 de 1

Cobrança Bancária

Enviado: 18 Jul 2010 17:25
por fladimir
Olá pessoal estou pensando em usar a solução através do COBREBEM para gerar os Boletos e imprimir na Laser ou mandar por e-mail, além de possibilitar trabalhar com Remessa e Retorno, mas a questão é a seguinte no site deles tem um exemplo para FiveWin, mas olhando o código parece q da pra utilizar no xHarbour, mas esta dando erro:

"Unrecoverable error 9013: No starting procedure
called from hb_stackinit(0)"

segue abaixo código...

Código: Selecionar todos

STATIC FUNCTION ExemploCBXBoleto()

LOCAL oCBX, oBoleto

/* Linhas Originais substituidas pelo CreateObject por trabalhar em xHarbour 1.2.1
* Necessário efetuar download da lib TOleAuto em http://www.cobrebem.com/downloads/cbx/hbole.zip
oCBX := TOleAuto():New("CobreBemX.ContaCorrente")
*/

oCBX := CreateObject("CobreBemX.ContaCorrente")

// Monta arquivo de licença de teste para banco 748 carteira C
oCBX:ArquivoLicenca := "c:\CobreBemX\748-C.conf"

// Monta dados da conta corrente
oCBX:CodigoAgencia := "1234-5"
oCBX:NumeroContaCorrente := "00000123-X"
oCBX:CodigoCedente := "123456"
oCBX:InicioNossoNumero := "00001"
oCBX:FimNossoNumero := "99999"
oCBX:ProximoNossoNumero := "00015"

oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := "c:\CobreBemX\Imagens\BannerCBX.gif"
oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := "c:\CobreBemX\Imagens\"

oBoleto := oCBX:DocumentosCobranca:Add()

// Monta dados do sacado
oBoleto:NomeSacado := "Fulano de Tal"

// Monta dados do documento de cobrança
oBoleto:DataVencimento := "01/10/2002"
oBoleto:NumeroDocumento := "12345"
oBoleto:ValorDocumento := 123.45

oCBX:ImprimeBoletos()

oCBX:End()

RETURN( NIL )

no caminhos especificados no código estão o arquivo de configuração 748-C.conf baixado do www.cobrebem.com.br e as imagens tb.

Fico no aguardo...

Sucesso!!!

:)Pos

Re: Cobrança Bancária

Enviado: 19 Jul 2010 22:31
por alxsts
Olá!

não estaria faltando a Function ou Procedure Main()?

Re: Cobrança Bancária

Enviado: 19 Jul 2010 22:41
por fladimir
Era isso mesmo colega obrigado... agora rodou só q apresenta um erro conforme abaixo:

Código: Selecionar todos

C:\testes\cobrebem>cobrebem
Error BASE/1004  Class: 'NIL' has no exported method: PADROESBOLETOIMPRESSO Arguments: ( [ 1] = Type: U)

Error at ...: EXEMPLOCBXBOLETO(23) in Module: COBREBEM.PRG
Called from : EXEMPLOCBXBOLETO(23) in Module: COBREBEM.PRG
Called from : MAIN(2) in Module: COBREBEM.PRG
Alguém já passou por isso... ?

Abaixo código do CobreBem.PRG q contém a função ExemploCBXBoleto()

Código: Selecionar todos

Proc Main
   ExemploCBXBoleto()
Return

STATIC FUNCTION ExemploCBXBoleto()
LOCAL oCBX, oBoleto

// Necessário efetuar download da lib TOleAuto em http://www.cobrebem.com/downloads/cbx/hbole.zip
//oCBX := TOleAuto():New("CobreBemX.ContaCorrente")
oCBX := CreateObject("CobreBemX.ContaCorrente")

// Monta arquivo de licença de teste para banco 001 carteira 18
oCBX:ArquivoLicenca := "c:\CobreBemX\748-C.conf"

// Monta dados da conta corrente
oCBX:CodigoAgencia := "1234-5"
oCBX:NumeroContaCorrente := "00000123-X"
oCBX:CodigoCedente := "123456"
oCBX:InicioNossoNumero := "00001"
oCBX:FimNossoNumero := "99999"
oCBX:ProximoNossoNumero := "00015"

oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := "c:\CobreBemX\Imagens\BannerCBX.gif"
oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := "c:\CobreBemX\Imagens\"

oBoleto := oCBX:DocumentosCobranca:Add()

// Monta dados do sacado
oBoleto:NomeSacado := "Fulano de Tal"

// Monta dados do documento de cobrança
oBoleto:DataVencimento := "01/10/2002"
oBoleto:NumeroDocumento := "12345"
oBoleto:ValorDocumento := 123.45

oCBX:ImprimeBoletos()
oCBX:End()

RETURN( NIL )
Obrigado colegas...

sucesso!!!

:)Pos

Re: Cobrança Bancária

Enviado: 19 Jul 2010 22:53
por alxsts
Olá!
fladimir escreveu:oCBX := CreateObject("CobreBemX.ContaCorrente")
Ao que parece, não foi possível instanciar a classe. Assim, oCBX ficou igual a NIL...

Re: Cobrança Bancária

Enviado: 19 Jul 2010 22:57
por alxsts
Olá!
após instanciar a classe, teste se oCBX é um objeto:

Código: Selecionar todos

If Valtype( oCBX ) <> "O"
       Alert( "Erro...")
Endif

Re: Cobrança Bancária

Enviado: 20 Jul 2010 01:24
por fladimir
Obrigado colega fiz o teste e passou, criei um variável chamada xTipo := ValType( oCBX ) e a mesma ficou igual a "O" Objeto

Não sei o que pode ser...

Re: Cobrança Bancária

Enviado: 20 Jul 2010 11:13
por fladimir
descobri 2 erros q faziam com que não funcionasse....

1º - Se observarem o código acima verão q o caminho esta c:\CobreBemX\.... e eu tinha colocado no C:\CobreBem...

2º - Após verificar isso percebi tb q continuava gerando erro pq lendo o manual do CobreBemX percebi q tinha faltado REGISTRAR a DLL (cobrebemx.dll)

É isso aí...

Vlw pessoal... Sucesso!!!

:)Pos

Re: Cobrança Bancária

Enviado: 20 Jul 2010 13:29
por rochinha
Amiguinho,

Acrescente este trecho para auxilia-lo no registro de forma transparente:

Código: Selecionar todos

function Main()
        local oWnd, oAcx
        RegisterServer( "CobreBemX.ocx" )
        ...
return nil 

#pragma BEGINDUMP
        #include <hbapi.h>
        #include <windows.h>
        typedef LONG ( * PDLLREGISTERSERVER ) ( void );
        HB_FUNC( REGISTERSERVER )
        {
           HMODULE hDll = LoadLibrary( hb_parc( 1 ) );
           LONG lReturn = 0;
           if( hDll )
           {
              FARPROC pRegisterServer = GetProcAddress( hDll, "DllRegisterServer" );
              if( pRegisterServer )
                 lReturn = ( ( PDLLREGISTERSERVER ) pRegisterServer )();
              FreeLibrary( hDll );
           }
           hb_retnl( lReturn );
        }        
#pragma ENDDUMP

Re: Cobrança Bancária

Enviado: 20 Jul 2010 14:17
por fladimir
Obrigado Rochicha pela dica....

Sucesso!!!
:)Pos

Re: Cobrança Bancária

Enviado: 20 Jul 2010 16:18
por lugab
Fladimir,

Sera q vc pode postar o código final corrigido ?

É q eu to querendo aprender a mexer nesse trem chamado "boleto bancário", pra ver se consigo fazer um pro Bradesco....

Grato,

Gabriel

Re: Cobrança Bancária

Enviado: 21 Jul 2010 10:12
por fladimir
Claro colega... segue abaixo:

Código: Selecionar todos

Function Main()
    ExemploCBXBoleto()
Return nil 

STATIC FUNCTION ExemploCBXBoleto()
LOCAL oCBX, oBoleto

* Necessário efetuar download da lib TOleAuto em http://www.cobrebem.com/downloads/cbx/hbole.zip
* oCBX := TOleAuto():New("CobreBemX.ContaCorrente")
oCBX := CreateObject("CobreBemX.ContaCorrente")

* Monta arquivo de licença de teste para banco 001 carteira 18
oCBX:ArquivoLicenca := "c:\CobreBemX\001-18.conf" // Esse arquivo é gerado no link: www.cobrebem.com/cgi-bin/GeraArquivoLicencaTeste

* Monta dados da conta corrente conforme especificado no link acima que varia de banco pra banco
oCBX:CodigoAgencia := "0000.00"
oCBX:CodigoCedente := "00000"
oCBX:NumeroContaCorrente := "000000-0"
oCBX:OutroDadoConfiguracao1 := "0"
oCBX:InicioNossoNumero := "00001"
oCBX:FimNossoNumero := "99999"
oCBX:ProximoNossoNumero := "00015"

oCBX:PadroesBoleto:PadroesBoletoImpresso:ArquivoLogotipo := "c:\CobreBemX\Imagens\BannerCBX.gif"
oCBX:PadroesBoleto:PadroesBoletoImpresso:CaminhoImagensCodigoBarras := "c:\CobreBemX\Imagens\"

oBoleto := oCBX:DocumentosCobranca:Add()

// Atencao por ser uma licenca de teste as informacoes abaixo mesmo q vc mude como exemplo abaixo o valor do boleto esta 123,25 ele fixa em 1,90

* Monta dados do sacado
oBoleto:NomeSacado := "Fulando de Teste"

* Monta dados do documento de cobrança
oBoleto:DataVencimento := "01/10/2010"
oBoleto:NumeroDocumento := "12345"
oBoleto:ValorDocumento := 123.45

oCBX:ImprimeBoletos()
oCBX:End()

RETURN( NIL )
É isso ai, aqui deu certo uso o xHarbour 1.2.1, lembrando q antes tem q baixar do www.cobrebem.com.br a licença (arquivo para banco do cedente) e tb a DLL (que deve ser registrada antes)

Sucesso!!!
:)Pos

Re: Cobrança Bancária

Enviado: 21 Jul 2010 16:51
por lugab
Obrigado Fladimir,

1) essa DLL é paga é ?
  • lembrando q antes tem q baixar do www.cobrebem.com.br a licença (arquivo para banco do cedente) e tb a DLL (que deve ser registrada antes)
2) Tem um monte de coisas nesse site. Quai mesmo o nome dos 2 arquivos q devemos baixar , pra trabalhar com o xharbour ?

Gabriel

Re: Cobrança Bancária

Enviado: 21 Jul 2010 21:17
por fladimir
Sim a DLL é paga e gerada especificamente pro CEDENTE q irá utilizar, no site tem os valores, mas pra vc ter uma idéia pra 1 CEDENTE custa 250,00 uma única vez, mas é possivel utilizar para qualquer banco que consta na lista deles q são todos os principais e mais muitos outros.

O arquivo é o q vc vai gerar na lista do link: http://www.cobrebem.com/cgi-bin/GeraArquivoLicencaTeste

E a Dll vc pega do link: http://www.cobrebem.com.br/downloads/cb ... reBemX.zip

Abraço e Sucesso!!!
:)Pos

Re: Cobrança Bancária

Enviado: 22 Jul 2010 00:20
por lugab
Valeu Fladimir...

Ta tudo esclarecido

gabriel