Cobol Foro

Cobol Foro (https://www.cobolforo.es/index.php)
-   Fujitsu COBOL (https://www.cobolforo.es/forumdisplay.php?f=77)
-   -   [Sintaxis] Epson TM900FA (https://www.cobolforo.es/showthread.php?t=1324)

drvedia1981 6 de junio de 2021 02:36

Epson TM900FA
 
Hola a todos estoy migrando un sistema a la nueva impresora epson tm900fa siguiendo los consejos en el foro y usando la libreria "EpsonFiscalDriver" logre la conexión y realizar un cierre Z abrir un tique cancelar pero no logro imprimir un item alguien tendrá un ejemplo de ese comando, lo envio con la utilidad fpterminal y va perfecto pero no lo logro con la libreria.
Saludos a todos

fastpho 6 de junio de 2021 16:21

Hola @drvedia1981, subi una lineas para ver como estas abriendo el ticket , y como le mandas el item , el pago , y el cierre del ticket para poder ayudarte
Saludos

drvedia1981 6 de junio de 2021 16:58

hola te paso lo que tengo

conectar con tm900
Código COBOL:
  1.  ENVIRONMENT DIVISION.
  2.  DATA        DIVISION.
  3.  working-Storage section.
  4.  01 sPort             PIC S9(9) COMP-5.
  5.  01 sBaudio           PIC S9(9) COMP-5.
  6.  01 SProtocol         PIC S9(9) COMP-5.
  7.  01 gState         PIC S9(9) COMP-5.
  8.  01 FUNC-EPSON-LIB    Pic x(40).
  9.  01 BufferLen         pic S9(9) COMP-5 VALUE 0.
  10.  01 version           pic x(250).
  11.  PROCEDURE   DIVISION.
  12.      MOVE "GetAPIVersion" TO FUNC-EPSON-LIB.
  13.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION.
  14.      MOVE spaces       TO FUNC-EPSON-LIB.
  15.      MOVE "setComPort" TO FUNC-EPSON-LIB.
  16.      move 1 to sPort.
  17.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY VALUE sPort.
  18.      MOVE "getLastError" TO FUNC-EPSON-LIB.
  19.      CALL FUNC-EPSON-LIB WITH STDCALL   USING BY VALUE gState.
  20.      display gState.
  21.      MOVE spaces        TO FUNC-EPSON-LIB.
  22.      MOVE "setBaudRate" TO FUNC-EPSON-LIB.
  23.      move 115200        TO sBaudio
  24.      CALL FUNC-EPSON-LIB WITH  STDCALL   USING BY VALUE sBaudio.
  25.      move spaces TO FUNC-EPSON-LIB.
  26.      MOVE "setProtocolType" TO FUNC-EPSON-LIB.
  27.      MOVE 1 TO SProtocol.
  28.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY VALUE SProtocol.
  29.      MOVE spaces     TO FUNC-EPSON-LIB.
  30.      MOVE "OpenPort" TO FUNC-EPSON-LIB.
  31.      CALL FUNC-EPSON-LIB WITH  STDCALL  USING BY REFERENCE VERSION.

abrir tique
Código COBOL:
  1.  ENVIRONMENT DIVISION.
  2.  DATA        DIVISION.
  3.  working-Storage section.
  4.  01 LINEA-1.
  5.     03 Comando        PIC X VALUE X"0A".
  6.     03 Comandobis     PIC X VALUE X"01".
  7.  01 LINEA-2.
  8.     03 DataField1     PIC X VALUE X"00".
  9.     03 DataField2     PIC X VALUE X"00".
  10.  01 FUNC-EPSON-LIB    Pic x(40).
  11.   01 gState         PIC S9(9) COMP-5.
  12.  01 BufferLen         pic S9(9) COMP-5 VALUE 0.
  13.  01 version           pic x(250).
  14.  PROCEDURE   DIVISION.    
  15.      move spaces TO FUNC-EPSON-LIB.
  16.      MOVE 2 TO BufferLen.
  17.      MOVE "AddDataField" TO FUNC-EPSON-LIB.
  18.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-1 BY VALUE BufferLen.
  19.      MOVE 2 TO BufferLen.
  20.      MOVE "AddDataField" TO FUNC-EPSON-LIB.
  21.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-2 BY VALUE BufferLen.
  22.      MOVE "SendCommand" TO FUNC-EPSON-LIB.
  23.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION.
  24.  
  25.      MOVE "getLastError" TO FUNC-EPSON-LIB.
  26.      CALL FUNC-EPSON-LIB WITH STDCALL   USING BY VALUE gState.
  27.      display gState.
  28.  
cancela tique
Código COBOL:
  1. ENVIRONMENT DIVISION.
  2.  DATA        DIVISION.
  3.  working-Storage section.
  4.  01 LINEA-1.
  5.     03 Comando        PIC X VALUE X"0A".
  6.     03 Comandobis     PIC X VALUE X"07".
  7.  01 LINEA-2.
  8.     03 DataField1     PIC X VALUE X"00".
  9.     03 DataField2     PIC X VALUE X"00".
  10.  01 FUNC-EPSON-LIB    Pic x(40).
  11.   01 gState         PIC S9(9) COMP-5.
  12.  01 BufferLen         pic S9(9) COMP-5 VALUE 0.
  13.  01 version           pic x(250).
  14.  PROCEDURE   DIVISION.    
  15.      move spaces TO FUNC-EPSON-LIB.
  16.      MOVE 2 TO BufferLen.
  17.      MOVE "AddDataField" TO FUNC-EPSON-LIB.
  18.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-1 BY VALUE BufferLen.
  19.      MOVE 2 TO BufferLen.
  20.      MOVE "AddDataField" TO FUNC-EPSON-LIB.
  21.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-2 BY VALUE BufferLen.
  22.      MOVE "SendCommand" TO FUNC-EPSON-LIB.
  23.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION.
  24.      MOVE "getLastError" TO FUNC-EPSON-LIB.
  25.      CALL FUNC-EPSON-LIB WITH STDCALL   USING BY VALUE gState.
  26.      display gState.

item

Código COBOL:
  1. ENVIRONMENT DIVISION.
  2.  DATA        DIVISION.
  3.  working-Storage section.
  4.  01 LINEA-1.
  5.     03 Comando        PIC X VALUE X"0A".
  6.     03 Comandobis     PIC X VALUE X"02".
  7.  01 LINEA-2.
  8.     03 DataField1     PIC X VALUE X"00".
  9.     03 DataField2     PIC X VALUE X"00".
  10.  01 FUNC-EPSON-LIB    Pic x(40).
  11.   01 gState         PIC S9(9) COMP-5.
  12.  01 BufferLen         pic S9(9) COMP-5 VALUE 0.
  13.  01 version           pic x(250).
  14.  PROCEDURE   DIVISION.    
  15.      move spaces TO FUNC-EPSON-LIB.
  16.      MOVE 2 TO BufferLen.
  17.      MOVE "AddDataField" TO FUNC-EPSON-LIB.
  18.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-1 BY VALUE BufferLen.
  19.      MOVE 2 TO BufferLen.
  20.      MOVE "AddDataField" TO FUNC-EPSON-LIB.
  21.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-2 BY VALUE BufferLen.
  22.    
  23. *     aca me falta enviar cantidad precio iva y los campos que no uso que antes se enviava el separador x"1C"
  24.  
  25.      MOVE "SendCommand" TO FUNC-EPSON-LIB.
  26.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION.
  27.  
  28.      MOVE "getLastError" TO FUNC-EPSON-LIB.
  29.      CALL FUNC-EPSON-LIB WITH STDCALL   USING BY VALUE gState.
  30.      display gState.

Gracias saludos

---------- Post añadido : 15:58 ---------- Post anterior : 15:44 ----------

Los datos de item de este modelo son (descripcion extra 1,2,3,4) (descripcion del item) (cantidad) (precio) (tasa) (impuestos internos) (coeficiente) (unidad de referencia) (codigo del item) (codigo interno) (unidad de medida) y (codigo frente al iva)
yo mucho de esos campos no los uso y no se como se envian


Gracias

fastpho 6 de junio de 2021 17:41

@drvedia1981, hay campos que son obligatorios , los que no uses como la descripcion extra en el bufer lo mandas en 0 , te paso un ejemplo , como seria
Código COBOL:
  1. WORKING-STORAGE SECTION.
  2.  
  3.  01 Descripcion             pic x(20) value "Venta de item       ".
  4.  01 Descripcion-Extra-1     pic x(20) value spaces.
  5.  01 Cantidad                pic 9(9).
  6.  01 Precio                  pic 9(11).
  7.  01 Iva                     pic 9(4).
  8.  PROCEDURE       DIVISION.
  9.    
  10.      MOVE 20             TO BufferLen
  11.      MOVE "AddDataField" TO FUNC-EPSON-LIB
  12.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE Descripcion
  13.                                        BY VALUE BufferLen    
  14.  
  15.      MOVE 0              TO BufferLen
  16.      MOVE "AddDataField" TO FUNC-EPSON-LIB
  17.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE Descripcion-Extra-1
  18.                                             BY VALUE BufferLen    
  19.  
  20.      MOVE 9              TO BufferLen
  21.      MOVE "AddDataField" TO FUNC-EPSON-LIB
  22.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE Cantidad
  23.                                             BY VALUE BufferLen    
  24.      MOVE 11             TO BufferLen
  25.      MOVE "AddDataField" TO FUNC-EPSON-LIB
  26.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE Precio
  27.                                             BY VALUE BufferLen    
  28.  
  29.      MOVE 4              TO BufferLen
  30.      MOVE "AddDataField" TO FUNC-EPSON-LIB
  31.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE Iva
  32.                                             BY VALUE BufferLen    
Saludos

drvedia1981 7 de junio de 2021 00:04

Hola fastpho mil gracias no entendia eso de mandar con buffer 0 en los campos que no se usan abrazo

---------- Post añadido : 23:04 ---------- Post anterior : 16:48 ----------

Hola fastpho estoy desarrollando una interface a nivel hardware para intercalar entre la impresora y el host que interpreta los comandos de las viejas impresoras epson (protocolo anterior tm300af tm950af tm2000af ) y adapta a tm900 seria para sistemas que no hay contacto con el programador o no justifica modificar el mismo estoy avanzando con eso ya lo tengo funcionando, seguro en una primera etapa no seria para todos los comando de la maquina pero muchos sistemas usan lo basico Saludos


La franja horaria es GMT +2. Ahora son las 16:20.

Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.