Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL v3 (V3L10, Win32)
PowerCOBOL v3 (V3L10, Win32) IDE Freeware compatible con Windows 7/8/10/11
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Sintaxis] Reconocimiento módulo Dll Socavi PowerCOBOL (ActiveX, v4 - v11) 4 25 de enero de 2021 19:28
[Sintaxis] Dll puerto serie drvedia1981 Fujitsu COBOL 5 31 de julio de 2018 07:57
[Sintaxis] Buscar un dato usando Control ctList Ciro PowerCOBOL (ActiveX, v4 - v11) 3 17 de agosto de 2017 19:47
[Sintaxis] DLL que crea un pantallazo Kuk C/C++ 6 12 de marzo de 2017 14:15
[Duda] Error en dll (DLL does not exist) Josber PowerCOBOL (ActiveX, v4 - v11) 5 18 de febrero de 2015 18:39

Respuesta

  #1
Antiguo 29 de agosto de 2020, 03:39
jhjacomo
Forero Junior
Última Actividad 17.03.2025 00:43
Posts Posts: 21
Likes enviados Enviados: 0
Likes recibidos Recibidos: 7
Predeterminado Usando EpsonFiscalDriver.dll
0 Inactivo Inactivo

Hola, buenas tardes al foro.
Retomando la programación del Epson TM T900AF.
Les comento la situación:
Sistema Operativo; Windows 7 64 bit
Version de Cobol: PowerCobol 3
Dll Usada: EpsonFiscalDriver.dll

Ya logré emitir Z y X sin problemas, ahora quiero ver el estado del controlador y evidentemente algo estoy haciendo mal, les copio el código:
Código COBOL:
  1. *****  getPrinterState
  2.      call ADDSTRING of p-comandos using "getPrinterStatus".
  3.      MOVE "getPrinterStatus" TO FUNC-EPSON-LIB.
  4.      move spaces to mensa.
  5.      CALL FUNC-EPSON-LIB.
  6.      move PROGRAM-STATUS to wstatus.

En todos las pruebas el PROGRM-STATUS me da cero, controlador apagado, sin papel o en uso.
En PowerCobol 3 no puedo usar CALL FUNC-EPSON-LIB WITH STDCALL RETURNING CODIGO-CmImpresor. puesto que en esta versión da error al compilar, hay que tomar la respuesta del comando en PROGRAM-STATUS.
Saludos amigos, espero me puedan dar una mano con este tema.
jhjacomo is offline   Responder Con Cita
  #2
Antiguo 29 de agosto de 2020, 16:17
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

@jhjacomo, cual es el error que te da al compilar :
Código COBOL:
  1. ***** ESTADO IMPRESOR 0 NO HAY PROBLEMA
  2.      move "getPrinterStatus" TO FUNC-EPSON-LIB.
  3.      CALL FUNC-EPSON-LIB WITH  STDCALL RETURNING CODIGO-CmImpresor.          
  4. *> si no es cero hay problemas  40961 tapa abierta 1 poco papel 2 sin papel
  5. *>    display "codigo-impresor" ,  CODIGO-CmImpresor.
fastpho is offline   Responder Con Cita
  #3
Antiguo 29 de agosto de 2020, 17:37
jhjacomo
Forero Junior
Última Actividad 17.03.2025 00:43
Posts Posts: 21
Likes enviados Enviados: 0
Likes recibidos Recibidos: 7

Hola @fastpho, , gracias por tu respuesta.

Acompaño una imagen con el error, a la derecha veras el error del compilador y a la izquierda se ve el código usado.

disculpas no se pegar una imagen, como lo hago?
jhjacomo is offline   Responder Con Cita
  #4
Antiguo 29 de agosto de 2020, 17:39
jhjacomo
Forero Junior
Última Actividad 17.03.2025 00:43
Posts Posts: 21
Likes enviados Enviados: 0
Likes recibidos Recibidos: 7

Hola @fastpho, , gracias por tu respuesta.

Acompaño una imagen con el error, a la derecha veras el error del compilador y a la izquierda se ve el código usado.

ahi va la imagen

Miniatura de Adjuntos
Pulsar la imagen para la versión amplia
Nombre:  ErorrCompilador.jpg
Vistas: 188
Tamaño:  123,6 KB   Pulsar la imagen para la versión amplia
Nombre:  ErorrCompilador.jpg
Vistas: 187
Tamaño:  107,6 KB  
jhjacomo is offline   Responder Con Cita
  #5
Antiguo 29 de agosto de 2020, 23:17
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@fastpho, el compilador de PowerCOBOL v3 no acepta la palabra reservada RETURNING, simplemente esta sintaxis no existe para él.

---------- Post añadido : 23:17 ---------- Post anterior : 23:11 ----------

@jhjacomo, cómo tienes definido el campowstatus?



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #6
Antiguo 30 de agosto de 2020, 03:33
jhjacomo
Forero Junior
Última Actividad 17.03.2025 00:43
Posts Posts: 21
Likes enviados Enviados: 0
Likes recibidos Recibidos: 7

Ola Kuk, @Kuk, gracias por tu respuesta.

Si la variable wstatus esta definida en working.
Ahí va el código completo:
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 gState         PIC S9(9) COMP-5.
  7.  01 FUNC-EPSON-LIB    Pic x(40).
  8.  01 version           pic x(250).
  9.  01 mensa.
  10.     03 wcomando       pic x(30).
  11.     03 wrespue        pic x(15).
  12.     03 wstatus        pic 99999999+.
  13.  PROCEDURE   DIVISION.
  14.      move POW-OFF to POW-ENABLE of ESTADO.
  15.      call CLEARLIST OF p-comandos.
  16. *****  GetAPIVersion
  17.      MOVE "GetAPIVersion" TO FUNC-EPSON-LIB.
  18.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION.
  19.      move spaces to mensa.
  20.      move "Ver Version"  to wcomando.
  21.      move version        to wrespue.
  22.      move PROGRAM-STATUS to wstatus.
  23.      call ADDSTRING of p-comandos using mensa.
  24. *****  setComPort
  25.      MOVE spaces       TO FUNC-EPSON-LIB.
  26.      MOVE "setComPort" TO FUNC-EPSON-LIB.
  27.      move 0 to sPort.
  28.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY VALUE sPort.
  29.      move spaces to mensa.
  30.      move "Seteo puerto" to wcomando.
  31.      move sPort          to wrespue.
  32.      move PROGRAM-STATUS to wstatus.
  33.      call ADDSTRING of p-comandos using mensa.
  34. *****  setBaudRate
  35.      MOVE spaces        TO FUNC-EPSON-LIB.
  36.      MOVE "setBaudRate" TO FUNC-EPSON-LIB.
  37.      move 9600          TO sBaudio *> set baudios
  38.      CALL FUNC-EPSON-LIB WITH  STDCALL   USING BY VALUE sBaudio.
  39.      move spaces to mensa.
  40.      move "Seteo velocidad puerto" to wcomando.
  41.      move sBaudio                  to wrespue.
  42.      move PROGRAM-STATUS           to wstatus.
  43.      call ADDSTRING of p-comandos using mensa.
  44. *****  getPrinterState
  45.      call ADDSTRING of p-comandos using "getPrinterStatus".
  46.      MOVE "getPrinterStatus" TO FUNC-EPSON-LIB.
  47.      move spaces to mensa.
  48.      CALL FUNC-EPSON-LIB WITH STDCALL RETURNING PROGRAM-STATUS.
  49.      move PROGRAM-STATUS to wstatus.
  50. ***** WITH  STDCALL  USING BY REFERENCE VERSION.
  51. ***** RETURNING CODIGO-CmImpresor.
  52.      move "Ver Status Impresora"  to wcomando.
  53.      call ADDSTRING of p-comandos using mensa.
  54.      call DISPLAYMESSAGE of ComFis using "Fin Status".
  55.      move POW-ON to POW-ENABLE of ESTADO.
Este código da error al compilar, si hago la llamada a la función de esta forma: "CALL FUNC-EPSON-LIB.", no da error, pero en PROGRAM-STATUS no devuelve el estado verdadero del controlador.
jhjacomo is offline   Responder Con Cita
  #7
Antiguo 30 de agosto de 2020, 03:33
jhjacomo
Forero Junior
Última Actividad 17.03.2025 00:43
Posts Posts: 21
Likes enviados Enviados: 0
Likes recibidos Recibidos: 7

Ola Kuk, @Kuk, gracias por tu respuesta.

Si la variable wstatus esta definida en working.
Ahí va el código completo:
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 gState         PIC S9(9) COMP-5.
  7.  01 FUNC-EPSON-LIB    Pic x(40).
  8.  01 version           pic x(250).
  9.  01 mensa.
  10.     03 wcomando       pic x(30).
  11.     03 wrespue        pic x(15).
  12.     03 wstatus        pic 99999999+.
  13.  PROCEDURE   DIVISION.
  14.      move POW-OFF to POW-ENABLE of ESTADO.
  15.      call CLEARLIST OF p-comandos.
  16. *****  GetAPIVersion
  17.      MOVE "GetAPIVersion" TO FUNC-EPSON-LIB.
  18.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE VERSION.
  19.      move spaces to mensa.
  20.      move "Ver Version"  to wcomando.
  21.      move version        to wrespue.
  22.      move PROGRAM-STATUS to wstatus.
  23.      call ADDSTRING of p-comandos using mensa.
  24. *****  setComPort
  25.      MOVE spaces       TO FUNC-EPSON-LIB.
  26.      MOVE "setComPort" TO FUNC-EPSON-LIB.
  27.      move 0 to sPort.
  28.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY VALUE sPort.
  29.      move spaces to mensa.
  30.      move "Seteo puerto" to wcomando.
  31.      move sPort          to wrespue.
  32.      move PROGRAM-STATUS to wstatus.
  33.      call ADDSTRING of p-comandos using mensa.
  34. *****  setBaudRate
  35.      MOVE spaces        TO FUNC-EPSON-LIB.
  36.      MOVE "setBaudRate" TO FUNC-EPSON-LIB.
  37.      move 9600          TO sBaudio *> set baudios
  38.      CALL FUNC-EPSON-LIB WITH  STDCALL   USING BY VALUE sBaudio.
  39.      move spaces to mensa.
  40.      move "Seteo velocidad puerto" to wcomando.
  41.      move sBaudio                  to wrespue.
  42.      move PROGRAM-STATUS           to wstatus.
  43.      call ADDSTRING of p-comandos using mensa.
  44. *****  getPrinterState
  45.      call ADDSTRING of p-comandos using "getPrinterStatus".
  46.      MOVE "getPrinterStatus" TO FUNC-EPSON-LIB.
  47.      move spaces to mensa.
  48.      CALL FUNC-EPSON-LIB WITH STDCALL RETURNING PROGRAM-STATUS.
  49.      move PROGRAM-STATUS to wstatus.
  50. ***** WITH  STDCALL  USING BY REFERENCE VERSION.
  51. ***** RETURNING CODIGO-CmImpresor.
  52.      move "Ver Status Impresora"  to wcomando.
  53.      call ADDSTRING of p-comandos using mensa.
  54.      call DISPLAYMESSAGE of ComFis using "Fin Status".
  55.      move POW-ON to POW-ENABLE of ESTADO.
Este código da error al compilar, si hago la llamada a la función de esta forma: "CALL FUNC-EPSON-LIB.", no da error, pero en PROGRAM-STATUS no devuelve el estado verdadero del controlador.
jhjacomo is offline   Responder Con Cita
  #8
Antiguo 30 de agosto de 2020, 17:08
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

@jhjacomo, Para saber el Estado proba con estas lineas , solicitar primero el estado y luego leer por el medotod getPrinterStatus ver la respuesta y como dijo @Kuk, no le pongas RETURNING por que pwc3 no acepta la palabra reservada RETURNING
Código COBOL:
  1.  ENVIRONMENT     DIVISION.
  2.  DATA            DIVISION.
  3.  WORKING-STORAGE SECTION.
  4.  01 LINEA-ESTADO.
  5.     03 Comando            PIC X VALUE  X"00".
  6.     03 Comandobis         PIC X VALUE  X"01".
  7.  01 LINEA-EXTRA.  
  8.     03 DataField1         PIC X VALUE  X"00".
  9.     03 DataField2         PIC X VALUE  X"00".
  10.  01 gState            PIC S9(9) COMP-5.
  11.  01 FUNC-EPSON-LIB    Pic x(40).
  12.  01 version           pic x(250).
  13.  PROCEDURE       DIVISION.
  14.      move spaces         TO FUNC-EPSON-LIB.
  15.      MOVE 2              TO BufferLen.
  16.      MOVE "AddDataField" TO FUNC-EPSON-LIB.
  17.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-ESTADO
  18.                                             BY VALUE BufferLen.    
  19.  
  20.      move spaces         TO FUNC-EPSON-LIB.  
  21.      MOVE 2              TO BufferLen.
  22.      MOVE "AddDataField" TO FUNC-EPSON-LIB.
  23.      CALL FUNC-EPSON-LIB WITH STDCALL USING BY REFERENCE LINEA-EXTRA
  24.                                             BY VALUE BufferLen.    
  25.                              
  26.  
  27. *SEND  COMMAND                                  
  28.      move spaces       TO FUNC-EPSON-LIB.
  29.      MOVE "SendCommand" TO FUNC-EPSON-LIB.
  30.      CALL FUNC-EPSON-LIB WITH  STDCALL  USING BY REFERENCE VERSION.  
  31. *****  getPrinterState
  32.      move spaces             to FUNC-EPSON-LIB.
  33.      MOVE "getPrinterStatus" TO FUNC-EPSON-LIB.
  34.      CALL FUNC-EPSON-LIB.
  35. *> PROGRAM-STATUS ---> si no es cero hay problemas  40961 tapa abierta 1 poco papel 2 sin papel
  36.      move PROGRAM-STATUS to gState.
  37.      display "estado" , gState.
fastpho is offline   Responder Con Cita
  #9
Antiguo 30 de agosto de 2020, 17:21
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@jhjacomo, esa variable no te puede funcionar porque PROGRAM-STATUS es de tipo S9(9) COMP-5..

Cambia la definición de wstatus y ponle el tipo que te digo y funcionará



NORMAS DEL FORO - para garantizar el buen funcionamiento del Foro.
¿Te han ayudado? NO TE OLVIDES de darle a
¿Quieres dirigirte a alguien en tu post? Notifícale haciendo clic en su Nick
Kuk is offline   Responder Con Cita
  #10
Antiguo 30 de agosto de 2020, 17:35
fastpho
El Foro es mi casa
Innovación: Por aportar innovaciones - Issue reason: SQLite + OO Cobol class Concurso: Primer puesto: Ganador/a del Primer puesto en un concurso - Issue reason: Acceso a datos Cobol vía web 
Última Actividad 21.08.2026 18:08
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

@Kuk, Por mas que le cambie a ws-status por
Código COBOL:
  1. PIC S9(9) COMP-5
no le funcionara , siempre le devolvera zero por eso las lineas que le puse solicita primero el estado al impresor y entonces
Código COBOL:
  1.  programn-status
tendra el valor que corresponde por eso le reemplace la variable ws-status con gstate con el formato que corresponde
fastpho is offline   Responder Con Cita
Respuesta


Herramientas

Derechos de Publicación
No puedes publicar nuevos temas
No puedes publicar posts/responder
No puedes adjuntar archivos
No puedes editar tus posts

BB code is habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado

Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:45.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.