Cobol Foro
Navegación en el Foro
Retroceder   Cobol Foro Entornos de desarrollo y compiladores Cobol Fujitsu COBOL PowerCOBOL (ActiveX, v4 - v11)
PowerCOBOL (ActiveX, v4 - v11) Versiones del IDE basadas en ActiveX
 
Otros temas que te pueden interesar
Tema Autor Foro Respuestas Último post
Rutinas de Impresión fiscal - ARGENTINA Loffreda Presentación 0 31 de mayo de 2022 17:52
[Compilador] Ocx Hasar de 2da generacion Alejo Gonzalez AcuCobol 3 23 de junio de 2021 12:26
[Sintaxis] OCX Controlador Fiscal Hasar Rodrigo21 PowerCOBOL (ActiveX, v4 - v11) 0 8 de agosto de 2019 16:50
[Duda] Utilización de OCX impresora fiscal en RM/Cobol 7 mainero RM/COBOL 3 29 de junio de 2017 23:34
Motocicletas de nueva generación Kuk Charladero - espacio libre 0 24 de diciembre de 2016 15:24

Respuesta

  #11
Antiguo 20 de abril de 2017, 16: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 30.09.2026 19:12
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

Hola Kuk claro vos le mandas a la ocx el comando a ejecutar sobre la impresora y la ocx lo que hace es completar con los datos necesarios para cumplir con el protocolo de comunicacion de la impresora , la ocx es la que se encarga realmente de comunicarse con el impresor y procesar la respuesta del dato enviado.
Cuando uno invoca al comando "SendCommand" Este método retorna verdadero , si las condiciones internas del control son válidas para el inicio de la transacción con la impresora fiscal. Si el estado del control indica que esta cerrado o que existe una operación en progreso el retorno es falso.
Esto es lo que dice la ayuda del comando "AddDataField" :

Cita:
❞
Descripción

Suma un campo al buffer de comandos.

Parámetro
String

Retorno

Booleano

Requerido
Si

Observaciones

Cada comando que recibe la impresora fiscal esta compuesto comúnmente por varios campos separados por un carácter especial que oficia de separador. Cuando el comando así lo requiera ejecute tantas veces este método, con el campo específico como parámetro, para llenar toda la información que requiera el comando. Este método retorna verdadero si los campos especificados en los parámetros son validos, la siguiente regla se aplica según el tipo del protocolo.
  • Protocolo compatible son válidos los caracteres entre el 32 y el 255 de la tabla ASCII
  • Protocolo extendido son válidos los caracteres de toda la tabla ASCII

Si el comando requiere caracteres no imprimibles, utilice la notación específica de su lenguaje de programación para embeber estos.
Voy a subir el ejemplo completo en vb6 y la ayuda de la ocx junto con la ocx
Archivos Adjuntos
Tipo de Archivo: zip EpsonFPExtendedSample.zip (372,7 KB)Descargas: 147
fastpho is offline   Responder Con Cita
  #12
Antiguo 21 de abril de 2017, 00:04
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Kuk,

os dados a enviar para a impressora, pelo exemplo Chr$(&H8)
podem ter que ser enviados em decimal e não em hexadecimal.
POderá ter que converter X"0A" para 10.
Eu não conheço a epson fiscale, pois em Portugal não se usa muito.
Só com o OCX e alguma documentação (não tenho a impressora para testar)
é que poderíamos analisar melhor.
(Desculpa escrever em Português).
Un saludo,
Rui Pinto
Rapinto is offline   Responder Con Cita
  #13
Antiguo 21 de abril de 2017, 00:25
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 30.09.2026 19:12
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

Gracias Rapinto probe de mandar los datos en decimal tambien pero no funciona, con el comando informe x lo que logre ver es que le agrega siempre el caracter 00 despues del comando sCmd y del sCmdExt que no lo hace en el ejemplo de visual.-
fastpho is offline   Responder Con Cita
  #14
Antiguo 21 de abril de 2017, 00:46
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

Em VB todas as strings terminal com o Hex 00
O cobol não faz isso. Temos que adicionar o Hex 00
por exemplo:
Código COBOL:
  1. 01  aa       pic x(015).
  2.  
  3. move "abcde" to aa.
  4. move x"00"    to aa(5:1).
Poderá ser isso?
Rui
Rapinto is offline   Responder Con Cita
  #15
Antiguo 21 de abril de 2017, 08:55
Kuk
Administrador
Última Actividad 03.10.2026 00:00
Posts Posts: 2.500
Likes enviados Enviados: 1038
Likes recibidos Recibidos: 1207

Citación del post de Rapinto Ver Mensaje
❞
Em VB todas as strings terminal com o Hex 00
Es vedad, podría ser por eso. Casi todos los lenguajes, al menos bajo Windows, suelen trabajar con "null-terminated strings" y posiblemente el OCX espere por defecto recibir siempre un nulo al final de cada string, de manera implícita...



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
  #16
Antiguo 21 de abril de 2017, 16:54
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 30.09.2026 19:12
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

voy a probar de mandar esto a ver que hace :
Código COBOL:
  1.  move X'00' & X'01' & X'00' to sCmd.
Código COBOL:
  1.  move X'00' & X'00' & X'00' to sCmdExt


---------- Post añadido : 15:54 ---------- Post anterior : 15:11 ----------

No es al reves el power le manda al final de cada string el caracter X"00" el tema es como sacarlo
cuando es necesario porque para el informe "X" no es necesario enviarlo por que para
Código COBOL:
  1.     move X"08" & X"02"  to sCmd.
  2.      INVOKE EpsonFPHostControl1 "AddDataField" USING sCmd        RETURNING ReturnDEValue.
  3.      move X"0C" & X"21"  to sCmdExt.
  4.      INVOKE EpsonFPHostControl1 "AddDataField" USING sCmdExt     RETURNING ReturnDEValue.
y escribe en el puerto
06 02 9C 08 1B 02 00 1C 0C 21 00 03 30 31 30 46
no deberia ir el X"00"
para el caso del informe estado
Código COBOL:
  1.    move X'00' & X'01'   to sCmd.
  2.      if bAnswer not = zeros
  3.              INVOKE EpsonFPHostControl1 "AddDataField" USING sCmd          RETURNING bAnswer
  4.              move X'00' & X'00'   to sCmdExt
  5.                   if bAnswer not = zeros
  6.                                 INVOKE EpsonFPHostControl1 "AddDataField" USING sCmdExt          RETURNING bAnswer
  7.                                
  8.                                if bAnswer not = zeros
  9.                                   INVOKE EpsonFPHostControl1 "SendCommand"                      RETURNING bAnswer
  10.                                   CALL "BUSY"
  11.                                end-if
  12.                   end-if
  13.      end-if.
y escribe en el puerto
06 02 FF 00 1C 00 03 30 31 32 30
fastpho is offline   Responder Con Cita
  #17
Antiguo 21 de abril de 2017, 17:29
Kuk
Administrador
Última Actividad 03.10.2026 00:00
Posts Posts: 2.500
Likes enviados Enviados: 1038
Likes recibidos Recibidos: 1207

fastpho, lo siguiente:
Citación del post de fastpho Ver Mensaje
❞
No es al reves el power le manda al final de cada string el caracter X"00"
Pasa porque hemos definido los campos como:

Código COBOL:
  1.  01  sCmd            PIC X(2) VALUE X'0001'.
  2.  01  sCmdExt         PIC X(2) VALUE X'0C00'.

Intenta hacer pruebas con:

Código COBOL:
  1.  01  sCmd            PIC X(250) VALUE X'0001'.
  2.  01  sCmdExt         PIC X(250) VALUE X'0C00'.



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
  #18
Antiguo 21 de abril de 2017, 23: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 30.09.2026 19:12
Posts Posts: 365
Likes enviados Enviados: 252
Likes recibidos Recibidos: 243

le mande esto para obtener el informe
Código COBOL:
  1.  01  sCmd            PIC X(250) VALUE X'0802'.
  2.  01  sCmdExt         PIC X(250) VALUE X'0C21'.    
y es lo mismo que esto
Código COBOL:
  1.      01  sCmd             PIC X(4) VALUE X'0802'.
  2.      01  sCmdExt         PIC X(4) VALUE X'0C21'.    
siempre le ponde el x'00' al final de cada campo

---------- Post añadido : 22:38 ---------- Post anterior : 22:29 ----------

tengo que lograr sacarle el "null-terminated strings" para que me funcione
fastpho is offline   Responder Con Cita
  #19
Antiguo 22 de abril de 2017, 10:38
Kuk
Administrador
Última Actividad 03.10.2026 00:00
Posts Posts: 2.500
Likes enviados Enviados: 1038
Likes recibidos Recibidos: 1207

Citación del post de fastpho Ver Mensaje
❞
siempre le pone el x'00' al final de cada campo
¿Estas seguro de ello? Porque no es normal, en COBOL aunque hagamos
Código COBOL:
  1.      MOVE "A" TO WS-CAMPO *> PIC X(1000)

Se le mueve la "A" en la posición 1 y el resto se rellena de espacios.



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
  #20
Antiguo 24 de abril de 2017, 00:07
Rapinto
Gran amigo del Foro
Guru de COBOL
Activista del Foro: Activista del Foro - Issue reason: ¡Gracias! Agradecimientos: Por muchos agradecimientos de parte de los Foreros - Issue reason: Por ayudar mucho a los foreros Guru de los Gurus: Por solidos y amplios conocimientos - Issue reason: Por saber demasiado! 
Última Actividad 29.01.2018 20:23
Posts Posts: 240
Likes enviados Enviados: 19
Likes recibidos Recibidos: 224

fastpho,
Alguns exemplos de Argentina que eu vi, dizem que o OCX é para .Net (Dot.NET)
vi alguns exemplos e usavam Visual Studio 10.
O problema deve ser esse.
Un saludo,
Rui Pinto
Rapinto 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 05:47.
Powered by: vBulletin, Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.