Hola fastpro, gracias por tu respuesta.
Ampliemos.
Estoy usando la librería EpsonFiscalDriver.dll.
El archivo COBOL85.CBR:
Código:
[INFOFIS]
@EnvSetWindow=UNUSE
PRTLIS=PRTLIS.ENV
PRT1=FAELE.ENV
PRINTER=lpt3
[INFOFIS.ENTRY]
AddDataField=EpsonFiscalDriver.dll
ClosePort=EpsonFiscalDriver.dll
GetAPIVersion=EpsonFiscalDriver.dll
GetExtraField=EpsonFiscalDriver.dll
GetReceivedFrame=EpsonFiscalDriver.dll
GetSentFrame=EpsonFiscalDriver.dll
OpenPort=EpsonFiscalDriver.dll
Purge=EpsonFiscalDriver.dll
SendCommand=EpsonFiscalDriver.dll
getBaudRate=EpsonFiscalDriver.dll
......
En el formulario tengo un botón, que se envía al controlador la selección del operador
Código COBOL:
if caj-tipoprv = 12
call "A-EPSONTM900"
cancel "A-EPSONTM900"
end-if.
En la PROCEDURE del formulario principal, tengo un copy con las lineas de programación:
Código COBOL:
#include "procedur\InfoFis.pro".
Y en el archivo InfoFis.pro, lo siguiente:
Código COBOL:
003010 IDENTIFICATION DIVISION.
003020 PROGRAM-ID. A-EPSONTM900 is common.
003040 ENVIRONMENT DIVISION.
003160 DATA DIVISION.
003350 WORKING-STORAGE SECTION.
003360 01 ReturnDEValue PIC S9(9) COMP-5 VALUE 0.
003370 01 LINEA-INFORME-X.
003380 03 Comando PIC X VALUE X"08".
003390 03 Comandobis PIC X VALUE X"02".
003400 01 LINEA-EXTRA.
003410 03 DataField1 PIC X VALUE X"0C".
003420 03 DataField2 PIC X VALUE X"21".
003430 01 ReturnValue Pic S9(9) Comp-5 Value 0.
003440 01 N-Length pic 99 value zero.
003450 01 lpString1 pic x(2).
003460 01 lpString2 pic x(2).
003470 01 x pic x(4).
003480 01 Cantidad PIC S9(9) COMP-5 VALUE 0.
003490 01 ReturnString PIC X(4) VALUE HIGH-VALUE.
003500 01 Variable PIC 9(3).
003620 01 i pic 99.
003630*
003640 01 FUNC-EPSON-LIB Pic x(40).
003640 01 BufferLen pic S9(9) COMP-5 VALUE 0.
003650 01 version pic x(250).
004100 PROCEDURE DIVISION.
004310 la-x.
004320 move spaces TO FUNC-EPSON-LIB.
004330 MOVE 2 TO BufferLen
004340 MOVE "AddDataField" TO FUNC-EPSON-LIB.
004350*> La propia llamada a la FUNC-EPSON-LIB:
004360 CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-INFORME-X
004370 BY VALUE BufferLen.
004380
004390 move spaces TO FUNC-EPSON-LIB.
004400
004410 MOVE 2 TO BufferLen.
004420 MOVE "AddDataField" TO FUNC-EPSON-LIB.
004430*> La propia llamada a la FUNC-EPSON-LIB:
004440 CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-EXTRA
004450 BY VALUE BufferLen.
004460*SEND COMMAND
004470 move spaces TO FUNC-EPSON-LIB.
004480 MOVE "SendCommand" TO FUNC-EPSON-LIB.
004490 CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION.
004500
005520 END PROGRAM A-EPSONTM900.
Y el error me da en la linea 004360, con el mensaje que envié anteriormente.
Gracias.