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?