oFiscal:ImprimirTextoFiscal( AtributosDeTexto:cBuffer, "HOLA" )
oFiscal:ImprimirTextoFiscal( AtributosDeTexto:cBuffer, "HOLA" )
Hola Antonio,
Function Main()
Local Atributosdetexto
STRUCT AtributosDeTexto
MEMBER Centrado AS BOOL INIT .F.
MEMBER DobleAncho AS BOOL INIT .F.
MEMBER BorradoTexto AS BOOL INIT .F.
MEMBER Negrita AS BOOL INIT .T.
ENDSTRUCT
xbrowse(AtributosDeTexto) ----->muesta bien la estructura con sus miembros y los valor en .T. y .F.
msginfo( AtributosDeTexto:cBuffer) -----> esto muestra " " vacio, es correcto?
oFiscal:ImprimirTextoFiscal( AtributosDeTexto:cBuffer, "HOLA" ) ----> argument error
Gracias Antonio,
Prueba asi:
local cBuffer := AtributosDeTexto:cBuffer
oFiscal:ImprimirTextoFiscal( @cBuffer, "HOLA" )
Buen dia Antonio,
Realice la prueba que me indicaste sin exito, este es el resultado,
STRUCT AtributosDeTexto
MEMBER Centrado AS BOOL INIT .F.
MEMBER DobleAncho AS BOOL INIT .F.
MEMBER BorradoTexto AS BOOL INIT .F.
MEMBER Negrita AS BOOL INIT .T.
ENDSTRUCT
memstat(atributosdetexto:cbuffer)
Resultado:
Memory(0) ............. 2097151
Memory(1) ............. 2097151
Memory(2) ............. 2097151
Memory(3) ............. 2005532
Memory(4) ............. 0
Memory(5) ............. 0
Memory(6) ............. 0
cBuffer = atributosdetexto:cbuffer
oFiscal:ImprimirTextoFiscal( @cBuffer, "HOLA" ) ------> argument error
Saludos Mariano
Prueba a hacer esto:
pMem = hb_xgrab( 32 )
oFiscal:ImprimirTextoFiscal( pMem, "HOLA" )
y comprueba si sigue dando el argument error
HB_FUNC( HB_XGRAB )
{
hb_retnll( ( HB_LONGLONG ) hb_xgrab( hb_parnl( 1 ) ) );
}
Hola Antonio,
Este es el resultado de la ejecuci贸n del c贸digo que me enviaste,
Compiler version: Harbour 3.2.0dev (r1703231115)
FiveWin Version: FWH 16.02
Windows version: 6.2, Build 9200
Time from start: 0 hours 0 mins 2 secs
Error occurred at: 02/07/17, 19:21:53
Error description: (DOS Error -2147352571) WINOLE/1007 Argument error: IMPRIMIRTEXTOFISCAL
Args:
[ 1] = N 13958972
[ 2] = C HOLA
Called from: => TOLEAUTO:IMPRIMIRTEXTOFISCAL( 0 )
Called from: hasarg2.prg => MAIN( 98 )
Windows total applications running: 4
1 ,
2 , C:\WINDOWS\SYSTEM32\MSVBVM60.DLL
3 , C:\WINFAR64\hasarg2.exe
4 GDI+ Window, C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.14393.953_none_baad48403594ab3
Procedure Type Value
==========================
TOLEAUTO:IMPRIMIRTEXTOFISCAL
Param 1: O Class: ERROR
MAIN
Param 1: N 13958972
Param 2: C "HOLA"
Local 1: U
Local 2: U
DBF
DBFFPT
DBFBLOB
DBFNTX
1 ERROR
2 HBCLASS
3 HBOBJECT
4 TSTRUCT
5 WIN_OLEAUTO
6 TOLEAUTO
7 TREG32
Muchas gracias Mariano
Estimados,
Por ahora voy a utilizar la DLL que provee HASAR que funciona, por si alguien necesita salir del apuro, es un poco mas artesanal ya que trabaja directamente con tramas en modo empaquetado. El OCX es mas practico pero por el momento hay varias cosas que no funcionaron.
un ejemplo usando la DLL
-------------------------------------------------------------
Function AbrirPuerto(nPort)
-------------------------------------------------------------
local lResp:=.T.
nHandler := CallDll32( "OpenComFiscal" , "WINFIS32.DLL" , nPort , 1 )
If nHandler >= 0
msgalert("Puerto de impresora OK ")
nError := CallDll32( "InitFiscal" , "WINFIS32.DLL" , nHandler )
If nError = 0
lResp := .T.
Else
msginfo(" La impresora no se puede Inicializar" + cValtoChar(nError))
lResp := .F.
Endif
Else
Msinfo( nHandler )
lResp := .F.
Endif
RETU ( lResp )
-------------------------------------------------------------
FUNCTION CierreFiscal(cTpo)
-------------------------------------------------------------
Local s ,lResp:=.T.
local cFecha := DtoC( Date() )
s:=if( cTpo='Z',"9" + SE + "Z","9" + SE + "X")
If MsgYesno( '驴 Realizar Cierre '+cTpo+' ? ' + ChR(10)+ ;
' Fecha : ' + cFecha , " Mensaje de atenci贸n ")
nError := CallDll32 ( "MandaPaqueteFiscal" , "WINFIS32.DLL" , nHandler , s )
If nError == 0
msginfo( "Se Realizo el cierre "+cTpo, "Informacion" )
Else
lResp:=.F.
msgalert( "Error al efectuar el cierre "+cTpo , " ERROR" )
endif
Endif
RETU lResp
Gracias por la colaboraci贸n, y espero pueda sacarlos del paso.
Atte Mariano
muy bien ![]()
gracias por compartirlo