Hola fastpho.
Esto tengo.
Código COBOL:
cobol85.cbr
[samtique.Entry]
SerialPortOpen=Sam4sFiscalDriver.dll
SerialBaudSet=Sam4sFiscalDriver.dll
SerialPortClose=Sam4sFiscalDriver.dll
IFOpBegin=Sam4sFiscalDriver.dll
IFOpSend=Sam4sFiscalDriver.dll
IFOpWaitingIs=Sam4sFiscalDriver.dll
IFOpWait=Sam4sFiscalDriver.dll
IFOpAbort=Sam4sFiscalDriver.dll
IFOpParamSet=Sam4sFiscalDriver.dll
IFOpParamGet=Sam4sFiscalDriver.dll
IFOpParamIntSet=Sam4sFiscalDriver.dll
IFOpParamIntGet=Sam4sFiscalDriver.dll
IFOpParamFloatSet=Sam4sFiscalDriver.dll
IFOpParamFloatGet=Sam4sFiscalDriver.dll
IFOpParamBoolSet=Sam4sFiscalDriver.dll
IFOpParamBoolGet=Sam4sFiscalDriver.dll
IFOpCmdOkIs=Sam4sFiscalDriver.dll
IFOpErrorGet=Sam4sFiscalDriver.dll
IFOpErrorDescGet=Sam4sFiscalDriver.dll
IFOpStateGet=Sam4sFiscalDriver.dll
IFOpRetGet=Sam4sFiscalDriver.dll
IFOpRetIntGet=Sam4sFiscalDriver.dll
IFOpRetFloatGet=Sam4sFiscalDriver.dll
IFOpRetBoolGet=Sam4sFiscalDriver.dll
IFOpBusyStateGet=Sam4sFiscalDriver.dll
IFOpBusyStepGet=Sam4sFiscalDriver.dll
IFOpBusyTotalGet=Sam4sFiscalDriver.dll
IFOpListGet=Sam4sFiscalDriver.dll
IFOpParamListGet=Sam4sFiscalDriver.dll
IFOpRetListGet=Sam4sFiscalDriver.dll
IFOpStateListGet)=Sam4sFiscalDriver.dll
Código COBOL:
*** ejemplo simplificado. **** mainform = samtique
workimg..
01 FUNCION PIC X(25) VALUE SPACES.
01 COMANDO PIC X(50).
01 RESPUESTA-IMPRESOR PIC S9(9) COMP-5.
01 ABRE-TIQUE PIC X(10) VALUE "AbrirTique".
01 COMANDO-ITEM-VTA PIC X(9) value "ItemVenta".
01 COMANDO-ITEM-CANTI PIC X(8) VALUE "Cantidad".
01 COMANDO-ITEM-PRECIO PIC X(6) VALUE "Precio".
01 COMANDO-ITEM-IVA PIC X(3) VALUE "IVA".
01 COMANDO-ITEM-CODIGO PIC X(14) VALUE "CodigoProducto".
01 CODIGO-LINEA-ITEM PIC X(15) VALUE SPACES.
procedure division.
inicio.
*** ya movio 9600 a baudios.
*** ya abrio el puerto com.
****************** ACA ARRANCA CON EL TIQUE *****************
MOVE SPACES TO FUNCION3.
MOVE "IFOpBegin" to FUNCION.
CALL FUNCION WITH STDCALL USING BY REFERENCE ABRE-TIQUE RETURNING RESPUESTA-IMPRESOR.
IF RESPUESTA-IMPRESOR = 1 MOVE "ABRO-TIQUET" TO POW-TEXT OF ABRO-TIQUE.
PERFORM ENVIAR-COMANDO.
***
*** AHORA ARRANCA CON ITEM-VENTAS
MOVE SPACES TO FUNCION.
MOVE "IFOpBegin" to FUNCION.
CALL FUNCION3 WITH STDCALL USING BY REFERENCE COMANDO-ITEM-VTA RETURNING RESPUESTA-IMPRESOR.
IF RESPUESTA-IMPRESOR = 1 MOVE "item si" TO POW-TEXT OF ERROR-ITEM.
**** descripcion articulo.
MOVE SPACES TO FUNCION.
MOVE "IFOpParamSet" TO FUNCION.
MOVE "Bomba de agua" TO PARAMETRO-DESCRI3.
CALL FUNCION WITH STDCALL USING BY REFERENCE PARAMETRO-DESCRI1
BY CONTENT PARAMETRO-DESCRI3
RETURNING RESPUESTA-IMPRESOR.
MOVE RESPUESTA-IMPRESOR TO POW-TEXT OF ERROR-DESCRI.
*** ahora cantidad.
MOVE SPACES TO FUNCION.
MOVE "IFOpParamFloatSet" TO FUNCION.
MOVE 33.33 TO CANT-UNI.
CALL FUNCION WITH STDCALL USING BY REFERENCE COMANDO-ITEM-CANTI
BY REFERENCE CANT-UNI
RETURNING RESPUESTA-IMPRESOR.
*** Ya esta ultima Función es la que no me funciona, enviar valor flotante.
**************
********************************************
******************** envia comando. *******
enviar-comando.
MOVE 1 TO ESPERA.
move spaces to comando.
MOVE "IFOpSend" TO COMANDO.
CALL COMANDO WITH STDCALL USING BY VALUE ESPERA RETURNING RESPUESTA-IMPRESOR.
MOVE RESPUESTA-IMPRESOR TO POW-TEXT OF VELO4.
Perdón porque utilizo en mayuscula para programar, porque no veo bien.
Tengo hasta ahí echo, porque Precio, Iva, me pasaría lo mismo (no se como enviar Valor flotante).
el tique hasta descripción del articulo, lo imprimo. luego sale del programa y no responde mas.
gracias por su ayuda....