0

![]() |
![]() |
Senior |
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" :
Voy a subir el ejemplo completo en vb6 y la ayuda de la ocx junto con la ocxDescripció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.
![]() |
![]() |
Gran amigo y Guru de COBOL |
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
![]() |
![]() |
Senior |
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.-
![]() |
![]() |
Gran amigo y Guru de COBOL |
Em VB todas as strings terminal com o Hex 00
O cobol não faz isso. Temos que adicionar o Hex 00
por exemplo:
Poderá ser isso?COBOL Código:
01 aa pic x(015). move "abcde" to aa. move X"00" to aa(5:1).
Rui
![]() |
![]() |
Administrador |
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
![]() |
![]() |
Senior |
voy a probar de mandar esto a ver que hace :COBOL Código:
move X'00' & X'01' & X'00' to sCmd.COBOL Código:
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 paray escribe en el puertoCOBOL Código:
move X"08" & X"02" to sCmd. INVOKE EpsonFPHostControl1 "AddDataField" USING sCmd RETURNING ReturnDEValue. move X"0C" & X"21" to sCmdExt. INVOKE EpsonFPHostControl1 "AddDataField" USING sCmdExt RETURNING ReturnDEValue.
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 estadoy escribe en el puertoCOBOL Código:
move X'00' & X'01' to sCmd. if bAnswer not = zeros INVOKE EpsonFPHostControl1 "AddDataField" USING sCmd RETURNING bAnswer move X'00' & X'00' to sCmdExt if bAnswer not = zeros INVOKE EpsonFPHostControl1 "AddDataField" USING sCmdExt RETURNING bAnswer if bAnswer not = zeros INVOKE EpsonFPHostControl1 "SendCommand" RETURNING bAnswer CALL "BUSY" end-if end-if end-if.
06 02 FF 00 1C 00 03 30 31 32 30
![]() |
![]() |
Administrador |
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
![]() |
![]() |
Senior |
le mande esto para obtener el informey es lo mismo que estoCOBOL Código:
01 sCmd PIC X(250) VALUE X'0802'. 01 sCmdExt PIC X(250) VALUE X'0C21'.siempre le ponde el x'00' al final de cada campoCOBOL Código:
01 sCmd PIC X(4) VALUE X'0802'. 01 sCmdExt PIC X(4) VALUE X'0C21'.
---------- Post añadido : 22:38 ---------- Post anterior : 22:29 ----------
tengo que lograr sacarle el "null-terminated strings" para que me funcione
![]() |
![]() |
Administrador |
¿Te han ayudado? NO TE OLVIDES de darle al botón
¿Quieres dirigirte a alguien en tu post? Notifícale con una mención, tienes 2 opciones:
- Haciendo clic en el icono
al lado de su nick
- Haciendo clic en el botón
en el editor y escribiendo su nick.
![]() |
![]() |
Gran amigo y Guru de COBOL |
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
Actualmente hay 1 usuarios viendo este tema. (0 miembros y 1 visitantes)
Marcadores