Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL
Fujitsu COBOL Sub-Foro dedicado a Compiladores e IDE-s de Fujitsu.
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
[Compilador] Problemas con los *.SE/*.FD Socavi PowerCOBOL (ActiveX, v4 - v11) 8 23 de agosto de 2021 22:47
[Duda] Impresoras Fiscales de 2da Generacion Alejo Gonzalez AcuCobol 0 29 de junio de 2020 02:38
[Duda] Impresoras fiscales de 2da generacion Alejo Gonzalez AcuCobol 0 27 de agosto de 2019 01:12
[Compilador] Impresoras Fiscales Hasar Alejo Gonzalez AcuCobol 5 20 de julio de 2018 03:29
[Compilador] Problemas con el DEBUG Josber PowerCOBOL (ActiveX, v4 - v11) 3 12 de abril de 2015 21:16

Respuesta
 
Herramientas

  #21
Antiguo 14 de marzo de 2025, 20:51
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Ale, por lo que veo en el ejemplo, debes usar tipo float, que en Cobol correponde a COMP-1 o COMP-2, de 4 y 8 bytes respectivamente (single & double precision).

Código COBOL:
  1.      01 PARAMETRO-PRECIO        pic x(6)     value "Precio".
  2.      01 precio                  COMP-1.



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
  #22
Antiguo 15 de marzo de 2025, 04:20
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2
Predeterminado controlador fiscal
0 Inactivo Inactivo

hola nuevamente, muchas gracias por responder.
Perdón por incumplir las normas del foro, tendré que leerlas bien, para entenderlas.
Kuk voy a probar con COMP-1 O COMP-2 como me indicaste.
Este tema lo inicie yo hace bastante ya.
Utilizo powercobol V5, windows10, controlador Ellix40f .
utilizo la Dll: Sam4sFiscalDriver.dll
comunicación serial, a modo entrenamiento.

Abro el puerto, configuro la velocidad Baudios, abro item tiquet por ejemplo. todo bien. hasta ahí.
envio el comando: ItemVenta. como el ejemplo que envio, y tambien me lo toma bien.

Código COBOL:
  1.    working...
  2.    01 PARAMETRO-DESCRI1     PIC X(11) ValUE "Descripcion".  
  3.    01 PARAMETRO-DESCRI3     PIC X(32) VALUE spaces.
  4.  
  5.       MOVE "IFOpParamSet" TO FUNCION.
  6.       MOVE "Descripcion articulo1" TO PARAMETRO-DESCRI3.
  7.       CALL FUNCION WITH STDCALL USING BY REFERENCE PARAMETRO-DESCRI1                                    
  8.                                       BY REFERENCE PARAMETRO-DESCRI3
  9.                                       RETURNING RESPUESTA-IMPRESOR.

el problema es que no le encuentro la vuelta cuando envío comando Precio por ejemplo, que tiene que ser según el manual de la dll:
Código CPP:
  1. int IFOpParamFloatSet (const char * name, double value)
, (como explique en mensajes anteriores y también envie el manual).
El numero decimal creo que serian 7 entero 2 decimales. ¿Como definiría en la working... el importe del item? para que funcione.
saludos a todos.
Ale is offline   Responder Con Cita
  #23
Antiguo 15 de marzo de 2025, 10:43
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Ale, estas son las correspondencias de tipos:

Tipo CTipo COBOL
floatCOMP-1
doubleCOMP-2


Ambos son de coma flotante, es decir, no tiene posición fija para decimales.

Una vez que hayas recibido el valor, tienes que hacer un MOVE a un campo con decimales fijas, obtendrás así el valor en el formato que quieras (con cuantas decimales prefieras).



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
  #24
Antiguo 15 de marzo de 2025, 16:11
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2
Predeterminado controlador fiscal
0 Inactivo Inactivo

Buen día genios.

Kuk
probe como me dijiste y nada. sigue largando en 0,00 el tiquet

Lo hago así. No se que esta mal.
Código COBOL:
  1.    WORKING...
  2.  01 funcion      PIC X(30) value spaces.
  3.  01 precio-uni    COMP-1.
  4.  01 unitario             PIC 9(7)V9(2) VALUE ZEROS.
  5.  01 comando-item-precio  PIC X(6) VALUE "Precio".
  6.  
  7.  
  8.  
  9.   procedure....    
  10.       move "IFOpParamFloatSet" to funcion.
  11.       move 2563.33 to unitario.
  12.       move unitario to precio-uni.
  13.       CALL funcion WITH STDCALL USING BY REFERENCE comando-item-precio
  14.                                       BY REFERENCE precio-uni
  15.                                       RETURNING respuesta-impresor.

probe tambien con By value y el compilador me tira error.

saludos y muchas gracias por su ayuda..
Ale is offline   Responder Con Cita
  #25
Antiguo 15 de marzo de 2025, 16:16
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Ale, esto:

Código CPP:
  1. int IFOpParamFloatSet (const char * name, double value)

se traduciría así:

Código COBOL:
  1.  01 precio-uni    COMP-2.   *> Double
  2. ...
  3.       CALL funcion WITH STDCALL USING BY CONTENT comando-item-precio
  4.                                       BY VALUE precio-uni
  5.                                       RETURNING respuesta-impresor



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
  #26
Antiguo 15 de marzo de 2025, 17:06
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2
Predeterminado controlador fiscal
0 Inactivo Inactivo

Kuk lo hago como me indicas.

y el compilador me tira este error.

Código:
** DIAGNOSTIC MESSAGE ** (SAMTIQUE)
SAMTIQUE CmCommand1-Click(148) :  JMN3355I-S  'PRECIO-UNI' OF BY VALUE IN CALL STATEMENT MUST BE BINARY ITEM THAT USAGE IS COMPUTATINAL-5 AND LENGTH MUST NOT EXCEED 4 BYTES,1 BYTE ITEM OR NUMERIC LITERAL WITH UNDER THAN 9 DIGITS.
Ale is offline   Responder Con Cita
  #27
Antiguo 15 de marzo de 2025, 21:24
Kuk
Administrador
Última Actividad 19.09.2026 20:11
Posts Posts: 2.500
Likes enviados Enviados: 1037
Likes recibidos Recibidos: 1207

@Ale, inténtalo así a ver:

Código COBOL:
  1.  WORKING-STORAGE SECTION.
  2.  01 funcion              PIC X(30) value spaces.
  3.  01 precio-uni           COMP-2.
  4.  01 precio-uni-bin redefines precio-uni BINARY-LONG.
  5.  01 unitario             PIC 9(7)V9(2) VALUE ZEROS.
  6.  01 comando-item-precio  PIC X(6) VALUE "Precio".
  7.  
  8.  PROCEDURE DIVISION.
  9.       move "IFOpParamFloatSet" to funcion
  10.       move 2563.33 to unitario
  11.       move unitario to precio-uni
  12.      
  13.       CALL funcion WITH STDCALL USING BY CONTENT comando-item-precio
  14.                                       BY VALUE precio-uni-bin
  15.                                       RETURNING respuesta-impresor
  16.                                      



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
  #28
Antiguo 15 de marzo de 2025, 22:49
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2
Predeterminado controlador fiscal
0 Inactivo Inactivo

Ya me había ilusionado. lo probe, pero me tira este error al compilar.

SAMTIQUE CmCommand1-Click(44) : JMN1123I-S INVALID WORD 'BINARY-LONG' IS FOUND. IGNORED UNTIL NEXT VALID PARAGRAPH,SECTION OR DIVISION.
SAMTIQUE CmCommand1-Click(44) : JMN2222I-S PICTURE CLAUSE IS MISSING. PICTURE 9 ASSUMED.

escapa a mi saber...
Ale is offline   Responder Con Cita
  #29
Antiguo 16 de marzo de 2025, 01:38
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

Ale la version de powercobol v.5 desconoce la
declaracion BINARY-LONG.

Subi el ejemplo COMPLETO de como
estas armando para enviar el comando "ItemVenta"

como estas enviando los parametros ?

Descripcion
Cantidad
Precio
Iva
MontoImpIntFijo
CodigoInterno
CodigoProducto
UnidadMedida



tambien subi el archivo cobol85.cbr para ver como declaraste las funciones del libreria

Saludos...



Post añadido a las 01:38. Post anterior a las 01:27


Ale podes sacar x y Z ?

Saludos
fastpho is offline   Responder Con Cita
  #30
Antiguo 16 de marzo de 2025, 02:32
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2
Predeterminado controlador fiscal
0 Inactivo Inactivo

Hola fastpho.
Esto tengo.

Código COBOL:
  1. cobol85.cbr
  2. [samtique.Entry]
  3. SerialPortOpen=Sam4sFiscalDriver.dll
  4. SerialBaudSet=Sam4sFiscalDriver.dll
  5. SerialPortClose=Sam4sFiscalDriver.dll
  6. IFOpBegin=Sam4sFiscalDriver.dll
  7. IFOpSend=Sam4sFiscalDriver.dll
  8. IFOpWaitingIs=Sam4sFiscalDriver.dll
  9. IFOpWait=Sam4sFiscalDriver.dll
  10. IFOpAbort=Sam4sFiscalDriver.dll
  11. IFOpParamSet=Sam4sFiscalDriver.dll
  12. IFOpParamGet=Sam4sFiscalDriver.dll
  13. IFOpParamIntSet=Sam4sFiscalDriver.dll
  14. IFOpParamIntGet=Sam4sFiscalDriver.dll
  15. IFOpParamFloatSet=Sam4sFiscalDriver.dll
  16. IFOpParamFloatGet=Sam4sFiscalDriver.dll
  17. IFOpParamBoolSet=Sam4sFiscalDriver.dll
  18. IFOpParamBoolGet=Sam4sFiscalDriver.dll
  19. IFOpCmdOkIs=Sam4sFiscalDriver.dll
  20. IFOpErrorGet=Sam4sFiscalDriver.dll
  21. IFOpErrorDescGet=Sam4sFiscalDriver.dll
  22. IFOpStateGet=Sam4sFiscalDriver.dll
  23. IFOpRetGet=Sam4sFiscalDriver.dll
  24. IFOpRetIntGet=Sam4sFiscalDriver.dll
  25. IFOpRetFloatGet=Sam4sFiscalDriver.dll
  26. IFOpRetBoolGet=Sam4sFiscalDriver.dll
  27. IFOpBusyStateGet=Sam4sFiscalDriver.dll
  28. IFOpBusyStepGet=Sam4sFiscalDriver.dll
  29. IFOpBusyTotalGet=Sam4sFiscalDriver.dll
  30. IFOpListGet=Sam4sFiscalDriver.dll
  31. IFOpParamListGet=Sam4sFiscalDriver.dll
  32. IFOpRetListGet=Sam4sFiscalDriver.dll
  33. IFOpStateListGet)=Sam4sFiscalDriver.dll

Código COBOL:
  1. ***   ejemplo simplificado. **** mainform = samtique
  2.  workimg..
  3.  01 FUNCION               PIC X(25) VALUE SPACES.
  4.  01 COMANDO               PIC X(50).
  5.  01 RESPUESTA-IMPRESOR    PIC S9(9) COMP-5.
  6.  01 ABRE-TIQUE            PIC X(10) VALUE "AbrirTique".
  7.  01 COMANDO-ITEM-VTA        PIC X(9) value "ItemVenta".
  8.  01 COMANDO-ITEM-CANTI      PIC X(8) VALUE  "Cantidad".
  9.  01 COMANDO-ITEM-PRECIO     PIC X(6) VALUE "Precio".
  10.  01 COMANDO-ITEM-IVA        PIC X(3) VALUE "IVA".
  11.  01 COMANDO-ITEM-CODIGO     PIC X(14) VALUE "CodigoProducto".
  12.  01 CODIGO-LINEA-ITEM       PIC X(15) VALUE SPACES.
  13.  
  14.  
  15.  procedure division.
  16.   inicio.
  17. *** ya movio 9600 a baudios.
  18. *** ya abrio el puerto com.
  19. ****************** ACA ARRANCA CON EL TIQUE *****************
  20.       MOVE SPACES TO FUNCION3.    
  21.       MOVE "IFOpBegin" to FUNCION.      
  22.       CALL FUNCION WITH STDCALL USING BY REFERENCE ABRE-TIQUE RETURNING RESPUESTA-IMPRESOR.
  23.       IF RESPUESTA-IMPRESOR = 1 MOVE "ABRO-TIQUET" TO POW-TEXT OF ABRO-TIQUE.                
  24.       PERFORM ENVIAR-COMANDO.    
  25. ***    
  26. ***  AHORA ARRANCA CON ITEM-VENTAS
  27.       MOVE SPACES TO FUNCION.    
  28.       MOVE "IFOpBegin" to FUNCION.      
  29.       CALL FUNCION3 WITH STDCALL USING BY REFERENCE COMANDO-ITEM-VTA RETURNING RESPUESTA-IMPRESOR.
  30.       IF RESPUESTA-IMPRESOR = 1 MOVE "item si" TO POW-TEXT OF ERROR-ITEM.
  31. ****  descripcion articulo.
  32.       MOVE SPACES TO FUNCION.
  33.       MOVE "IFOpParamSet" TO FUNCION.
  34.       MOVE "Bomba de agua" TO PARAMETRO-DESCRI3.
  35.       CALL FUNCION WITH STDCALL USING BY REFERENCE PARAMETRO-DESCRI1                                    
  36.                                       BY CONTENT PARAMETRO-DESCRI3
  37.                                       RETURNING RESPUESTA-IMPRESOR.
  38.       MOVE RESPUESTA-IMPRESOR TO POW-TEXT OF ERROR-DESCRI.
  39. *** ahora cantidad.
  40.       MOVE SPACES TO FUNCION.
  41.       MOVE "IFOpParamFloatSet" TO FUNCION.
  42.       MOVE 33.33 TO CANT-UNI.
  43.       CALL FUNCION WITH STDCALL USING BY REFERENCE COMANDO-ITEM-CANTI
  44.                                       BY REFERENCE CANT-UNI
  45.                                       RETURNING RESPUESTA-IMPRESOR.
  46.  
  47. *** Ya esta ultima Función es la que no me funciona, enviar valor flotante.
  48. **************
  49.  
  50. ********************************************
  51. ******************** envia comando. *******
  52.   enviar-comando.
  53.       MOVE 1 TO ESPERA.
  54.       move spaces to comando.
  55.       MOVE "IFOpSend" TO COMANDO.
  56.       CALL COMANDO WITH STDCALL USING BY VALUE ESPERA RETURNING RESPUESTA-IMPRESOR.
  57.       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....
Ale is offline   Responder Con Cita
Respuesta



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 17:52.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.