Página 1 de 1

Boleto Bancario

Enviado: 10 Jul 2010 21:32
por Kadu
Ola, pessoal !

Estou com dificuldade para imprimir boleto bancário no xharbour. Estou estudando o harbourboleto, mas não consigo imprimir, o executável "DEMOBOL.EXE" não faz nada ?.
este open-source só funciona em harbour ?
Gostaria de saber se tem uma rotina para colocar dentro do meu sistema, igual a publicada no forum do "CA-CLIPPER", mas ela somente funciona com impressoras HP-PCL5.
Acho que harbourboleto dá para adaptar, mas quando eu compilo com xDev, ele não acha as funções: HB_DTOC e nem a SHELLEXECUTE.

Desde já agradeço.
Um abraço.
Kadu :'(

Re: Boleto Bancario

Enviado: 11 Jul 2010 15:12
por rochinha
Amiguinho,

como paleativo use DTOC() no lugar de HB_DTOC() e RUN no lugar de ShellExecute()

Re: Boleto Bancario

Enviado: 11 Jul 2010 22:02
por alaminojunior
Eu estava com o mesmo problema.
Resolví compilando junto o arquivo "Myfunc.c" que vem na versão do sourceforge. Na versão do CVS atualizei várias vezes e não veio o tal arquivo.
Um detalhe, é que uso a versão 1.2.1 do xHarbour.org com Bcc 5.8.2. Para a versão 1.0.0 parece que o buraco é mais embaixo e precisa de uma manobra a mais, segundo o Jânio.

Re: Boleto Bancario

Enviado: 12 Jul 2010 07:18
por janio
Para xharbour 1.0, o conteúdo do MyFunc.c deve ser o seguinte:

Código: Selecionar todos

//#IFNDEF __PLATFORM__Linux

#include <windows.h>
#include <hbapi.h>

// ShellExecute( cFile, cOperation, cParams, cDir, nFlag )
HB_FUNC( SHELLEXECUTE )
{
//   ShowWindow( (HWND) hb_gt_wvwGetWindowHandle( hb_gt_wvw_GetMainCoordMode() ), 0 );
   hb_retnl( (LONG) ShellExecute( GetActiveWindow(),
              ISNIL(2) ? NULL : (LPCSTR) hb_parc(2),
              (LPCSTR) hb_parc(1),
              ISNIL(3) ? NULL : (LPCSTR) hb_parc(3),
              ISNIL(4) ? "C:\\" : (LPCSTR) hb_parc(4),
              ISNIL(5) ? 1 : hb_parni(5) ) ) ;
//   ShowWindow( (HWND) hb_gt_wvwGetWindowHandle( hb_gt_wvw_GetMainCoordMode() ), 1 );
}
//#ENDIF
#include <ctype.h>
#include "hbapi.h"
#include "hbapierr.h"
#include "hbapiitm.h"
#include "hbset.h"
#include "hbdate.h"

const char * hb_setGetDateFormat( void )
{
   HB_THREAD_STUB
   HB_SET_STRUCT *s = hb_GetSetStructPtr(  ); 
   return s->HB_SET_DATEFORMAT;
}

HB_FUNC(  HB_DTOC )
{
   if( ISDATE( 1 ) )
   {
      char szDate[9];
      char szFormatted[ 11 ];
      hb_retc( hb_dateFormat( hb_pardsbuff( szDate, 1 ), szFormatted,(ISCHAR(2)?hb_parcx(2):hb_setGetDateFormat() ) ) ); // <- aqui foi a implementação
   }
    else
    {
       hb_errRT_BASE_SubstR( EG_ARG, 1118, NULL, "HB_DTOC", 1, hb_paramError( 1 ) );
    }
 }

//#pragma ENDDUMP
//eof

Re: Boleto Bancario

Enviado: 12 Jul 2010 07:55
por janio
tô com um problema em boletos que é o seguinte:

O nosso-numero tem que ter 11 posições na carteira 18. Informo somente as 11 posições, mas sempre o harbourboleto entende como 17 posições.

Eu precisaria que a 'linha digitável' do codigo de barras tivesse a seguinte forma:

Código: Selecionar todos

------------------------------------------------------------------------------------------------------------------------------------------
BCO| CÓD MOEDA| NOSSO N° (5)  | DV  | NOSSO N° (6)  | AGÊNCIA | DV | COD.CEDENTE  | CARTEIRA  | DV | DVCB   | FAT.VENCTO  \ VALOR
------------------------------------------------------------------------------------------------------------------------------------------
001     9         88962          5      100272          1705    7     00012534         18        6
------------------------------------------------------------------------------------------------------------------------------------------

Re: Boleto Bancario

Enviado: 24 Ago 2010 12:37
por coucello
Jânio, você está usando o harbourboleto?