@jhjacomo, Etiqueta las lineas de programa para que sea mas facil leer , con respecto a la comunicacion con el impresor fiscal , tenes que chequear
Siempre cada vez que envias algo al impresor las propiedades de comunicacion para saber que pasa del otro lado: puede que te apagaron el impresor , no tenga papel , pasaron mas de 24 hs y corresponde hacer una
Z si o si
Código VB:
Prototype: getState( void );
Código VB:
Prototype: int getLastError( void );
Por que siempre el impresor por medio de la libreria te devolvera algo ....
Por ejemplo:
Código COBOL:
*> OPEN PORT.
move spaces TO FUNC-EPSON-LIB.
MOVE "OpenPort" TO FUNC-EPSON-LIB.
CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION.
move spaces TO FUNC-EPSON-LIB.
MOVE "getLastError" TO FUNC-EPSON-LIB.
CALL FUNC-EPSON-LIB WITH STDCALL RETURNING iError.
display iError.
IF iError = 4 then MOVE "Error de escritura verifique el impresor" to "Text" OF CmCOMUNICACION.
IF iError = 0 then MOVE "ok" to "Text" OF CmCOMUNICACION.
IF iError = 1 then MOVE "Puerto ocupado" to "Text" OF CmCOMUNICACION.
IF iError = 2 then MOVE "Puerto invalido" to "Text" OF CmCOMUNICACION.
IF iError = 10 then MOVE "Error de escritura verifique el impresor" to "Text" OF CmCOMUNICACION.
Código COBOL:
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Respuesta PIC S9(9) COMP-5 VALUE 0.
PROCEDURE DIVISION.
move "getState" to FUNC-EPSON-LIB.
CALL FUNC-EPSON-LIB WITH STDCALL RETURNING Respuesta.
* display "state 1" , Respuesta
perform until Respuesta not = 2 *> esta ocupada la impresora
CALL FUNC-EPSON-LIB WITH STDCALL RETURNING Respuesta
* display "state 2" , Respuesta
end-perform.
Esta informacion esta en el manual del protocolo de la libreria....
Si estas trabajando por medio de usb podes mirar en Dispositivos e Impresoras de windows ,debe estar el impresor sin error
Saludos