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

  #11
Antiguo 15 de febrero de 2022, 02:10
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2

hola. tengo que enviar al impresor fiscal item venta, así como me indica el ejemplo.:
Código CPP:
  1. IFOpBegin("ItemVenta")
  2.         Drv.IFOpParamSet("Descripcion", "Item de prueba")
  3.         Drv.IFOpParamFloatSet("Precio", 1.2345)
  4.         Drv.IFOpParamFloatSet("IVA", 21.0)
  5.         Drv.IFOpParamSet("CodigoProducto", "7791234567898")

ahora en COBOL esta bien la sintaxis como la hago ? porque no me tira error, pero no me imprime ningun dato.
todo en cero. Y descripción espacio en blanco.
así envio por ejemplo el importe
No se si el error estara en la sintaxis del Call.

Código COBOL:
  1.       MOVE 'IFOpParamFloatSet' TO FUNCION.
  2.       MOVE 225.22 TO PARAMETRO-PRECIO3.
  3.       CALL FUNCION WITH STDCALL USING BY REFERENCE PARAMETRO-PRECIO1 PARAMETRO-PRECIO2
  4.       PARAMETRO-PRECIO3 RETURNING RESPUESTA-IMPRESOR.
  5.  
  6. working
  7.  01 PARAMETRO-PRECIO1  PIC X(6) VALUE 'Precio'.
  8.  01 PARAMETRO-PRECIO2  PIC X(2) VALUE ", ".  
  9.  01 PARAMETRO-PRECIO3  PIC 99999.99 VALUE ZEROS.

Perdón por molestar, le agradecería mucho me puedan ayudar a resolverlo.
saludos...

Comentario de Moderador

Utiliza los botones de resalto de sintaxis: etc.

Última edición por Kuk fecha: 15 de febrero de 2022 a las 17:27. Razón: Uso de botones de resalto de sintaxis
Ale is offline   Responder Con Cita
  #12
Antiguo 15 de febrero de 2022, 13:31
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

Hola @Ale, , por lo que se puede ver no estas respetando las funciones de la libreria.
*funcion IFOpParamFloatSet* devuelve un entero
Código CPP:
  1. int IFOpParamFloatSet (const char * name, double value)
La funcion recibe dos parametros le estas mandando 3 y chequea el retorno que es un entero si te da 0 error y 1 exito
El campo descripcion sale con espacios por que no lo estas mandando o pone el ejemplo completo usando botones de resalto.

Saludos...
fastpho is offline   Responder Con Cita
  #13
Antiguo 15 de febrero de 2022, 14:39
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2
Predeterminado comunicación
0 Inactivo Inactivo

Hola Fastpho como siempre agradecido por tu ayuda. Estas en lo cierto.. no había percatado eso.
pero lo raro es que me devuelve valor 1. pero no me imprime el importe, lo mismo me pasa con Descripcion. Y no me doy cuenta como armarlo solo con dos parámetros.
Probe varias formas y por ejemplo :
Código COBOL:
  1. 01 PARAMETRO-PRECIO1 PIC X(6) VALUE 'Precio'.
tengo que enviarlo en el using solo separado. ej:
Código COBOL:
  1. USING BY REFERENCE PARAMETRO-PRECIO1 PARAMETRO-PRECIO2
.... por eso tengo
dividirlo en 3.
saludos y muchas gracias por tu ayuda....
Ale is offline   Responder Con Cita
  #14
Antiguo 16 de febrero de 2022, 14:43
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

Hola @Ale , te paso un ejemplo de como pasar parametros a la funciones.
Código COBOL:
  1. WORKING-STORAGE SECTION.
  2.  01 Titulo-descripcion      pic x(11)    value "Descripcion".
  3.  01 Titulo-precio           pic x(6)     value "Precio".
  4.  01 Description             pic x(15)    value "Prueba de Venta".
  5.  01 Precio                  pic s9(9)   COMP-5.
  6.  01 SALIDA-IMPRESOR         pic s9(9) COMP-5 value 0.

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

Código COBOL:
  1. *******************************************    
  2. * Descripcion
  3. *************
  4.      move spaces                    TO FUNCION.
  5.      MOVE "IFOpParamSet"   TO FUNCION.
  6.      CALL FUNCION WITH STDCALL USING BY REFERENCE Titulo-descripcion
  7.                                                    BY REFERENCE      Description
  8.                                                    returning SALIDA-IMPRESOR.

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

Código COBOL:
  1. *******************************************    
  2. * Precio
  3. ********
  4.      move spaces                        TO FUNCION.
  5.      move 123                               TO Precio.
  6.      MOVE "IFOpParamIntSet"   TO FUNC-SAM4-LIB.
  7.      CALL FUNCION WITH STDCALL USING BY REFERENCE Titulo-precio
  8.                                                   BY VALUE      Precio
  9.                                                   returning SALIDA-IMPRESOR.
Saludos ....
fastpho is offline   Responder Con Cita
  #15
Antiguo 17 de febrero de 2022, 01:32
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2

hola fastpho. nuevamente gracias por tu gran ayuda..
Buenísimo los ejemplos fue un gran asesoramiento, pero vos sabes que Precio sigue sin funcionar.. me lo imprime en 0.00 al tique.
Descripción si anda.. pero todo lo que sea importe ya sea Precio, Cantidad, Iva. no anda ninguno.
realmente se me acaba el tiempo y no logro hacerlo funcionar..
un gran saludo...
y agradecido como siempre.
Ale is offline   Responder Con Cita
  #16
Antiguo 17 de febrero de 2022, 12:44
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

Hola @Ale deberia funcionarte usando en todos los campos numericos , el ejemplo
que te puse , es decir usando la funcion Entero , NO uses la del Funcion Flotante.


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

Saludos.....
fastpho is offline   Responder Con Cita
  #17
Antiguo 17 de febrero de 2022, 13:37
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2

Hola fastpho, perdón pero no me doy cuenta.. pongo otro ejemplo en otro lenguaje por las dudas.
Probé de varias maneras y no hay caso. Lo unico pude hacer funcionar es "Descripcion".

Código CPP:
  1. printf("AbrirTique\n");
  2.         IFOpBegin("AbrirTique");
  3.         cmd_send();
  4.  
  5.         printf("ItemVenta\n");
  6.         IFOpBegin("ItemVenta");
  7.         IFOpParamSet("Descripcion", "Item de prueba");
  8.         IFOpParamFloatSet("Precio", 1.2345);
  9.         IFOpParamFloatSet("IVA", 21.0);
  10.         IFOpParamSet("CodigoProducto", "7791234567898");
  11.         cmd_send();
  12.         printf("Cerrar\n");
  13.         IFOpBegin("Cerrar");
saludos. Ale.
Ale is offline   Responder Con Cita
  #18
Antiguo 17 de febrero de 2022, 14:54
Fito
Guardián del Foro
Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por muchos agradecimientos de parte de los Foreros Guardián del Foro: Guardián del espíritu y clima del Foro - Issue reason: Por el Avatar Activista del Foro: Activista del Foro - Issue reason: Por aportar ideas 
Última Actividad 19.09.2026 13:19
Posts Posts: 458
Likes enviados Enviados: 267
Likes recibidos Recibidos: 243

Hola:

Los valores numéricos tenés que finalizarlos con un null. Ejemplo

Código COBOL:
  1.  
  2. Working...
  3.  
  4.      02 oCant.
  5.         03 xxCant         pic 9(5).9999.            *> Cantidad
  6.         03                pic x value X"00".
  7.  
  8.      02 oPreuni.
  9.         03 xxPreuni       pic 9(7).9999.            *> Precio unitario.
  10.         03                pic x value X"00".
  11. Procedure...
  12.  
  13.         call ImprimirItem with stdcall using
  14.            by value     xSuma
  15.            by reference oArtdenom
  16.            by reference oCant
  17.            by reference oPreuni
  18.            by value     oIva
  19.            by value     oImpint
  20.            by reference oValor
  21.            by value     oIdCod
  22.            by reference oCodigo
  23.            by reference oCodigoUM
  24.            by value     oMedida
  25.            returning wError

Saludos...

Fito...
Fito is offline   Responder Con Cita
  #19
Antiguo 14 de marzo de 2025, 16:35
Ale
Forero Junior
Última Actividad 23.06.2026 00:14
Posts Posts: 43
Likes enviados Enviados: 19
Likes recibidos Recibidos: 2
Predeterminado sigo probando. ayuda por favor...
0 Inactivo Inactivo

hola amigos! espero que estén bien..
Aun no puedo lograr enviar esta función a la fiscal (no me funciona),
para enviar el importe en decimales item y cantidad.

manual de la DLL: dice
Código CPP:
  1. int IFOpParamFloatSet (const char * name, double value)

Agrega un parámetro de número flotante por nombre al comando que se está preparando.
Parámetros:
• name: nombre del parámetro. Ver detalles en el Capítulo III.
• value: valor del parámetro. Retorno: 1 en caso de éxito, 0 en caso de error.

ejemplos: otro lenguaje.
Código VB:
  1. drv.IFOpParamFloatSet("Precio", 1.2345);
  2.    
  3.            oPrtFis:IFOpParamFloatSet("Precio", aLinea5).


como se envía con cobol.? y como lo defino en la working a la variable que lleva el precio del articulo.
01 precio.... ya probé definiéndolo como PIC S9(9) COMP-5 y no anduvo.

algo así tengo armado:
Código COBOL:
  1.      move spaces                        TO FUNCION.
  2.      MOVE "IFOpParamFloatSet"   TO FUNCION
  3.      CALL FUNCION WITH STDCALL USING BY REFERENCE PARAMETRO-PRECIO
  4.                                                   BY VALUE      Precio
  5.                                                   returning SALIDA-IMPRESOR.
  6.  
  7.  WORKI...
  8.      01 PARAMETRO-PRECIO        pic x(6)     value "Precio".
  9.      01 precio ....  ?????

Si alguien me puede dar una mano, desde ya muchas gracias..
Saludos a todos....
Ale is offline   Responder Con Cita
  #20
Antiguo 14 de marzo de 2025, 18:01
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

Hola Ale

Para poder ayudarte podrias poner que version de powercobol estas usando , en que entorno estas
la impresora fiscal es ????? , esta fiscalizada o en modo entrenamiento , tipo comunicacion
serial o usb , que libreria estas usando , Podes sacar X y Z basico , subi un pequeño proyecto
para verlo completo como abris el puerto , como lo cerras , como haces el proceso de venta del item o articulo
etc etc

Respeta las normas del foro.....

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