You are on page 1of 13

Librería de Enlace Dinámico Rev 1.

1
“TFHKAIF.DLL” 31/01/08

INDICE

1.- Declaración de la DLL 3


2.- Funciones de la DLL 4
2.1- BOOL OpenFpctrl (LPCSTR lpPortName) 4
2.2- BOOL CloseFpctrl ( ) 4
2.3- BOOL CheckFprinter ( ) 5
2.4- BOOL ReadFpStatus (LPINT status, LPINT error) 5
2.5- BOOL SendCmd (LPINT status, LPINT error, LPCSTR cmd) 6
2.6- INT SendCmd (LPINT status, LPINT error, LPCSTR cmd) 6
2.7- INT SendFileCmd (LPINT status, LPINT error, LPCSTR file) 7
2.8- BOOL UploadReportCmd (LPINT status, LPINT error, LPCSTR cmd, LPCSTR file) 7
2.9- BOOL UploadStatusCmd (LPINT status, LPINT error, LPCSTR cmd, LPCSTR file) 8
3.- Anexos 9
Anexo 1 10
Anexo 2 11
Anexo 3 12

Nota 1: Instale le archivo DLL en el “System32” ó en la carpeta donde se ejecutara el Software.

Nota 2: La Impresora ya viene predeterminada inicialmente en Modo Entrenamiento

Nota 3: Para Ejemplificar el uso de la DLL se emplea el programa “The Factory HKA. Demo Informativo”

1
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

Figura 1. “The Factory HKA. Demo Informativo”

Selección de Puertos: Seleccione el puerto de comunicación con el cual va trabajar.


Envío de Comandos por Archivo: Estructura creada para la búsqueda y selección de archivos
(*.dat) y ejecución de los comandos internos en los mismos.
Datos: Generación de eventos en el visor relacionas a la lectura de la impresora.
Reportes: Diseño de reportes X y Z.
Aplicación: Diseño de aplicaciones de modo ejemplo para la realización en modo prueba de una
factura y de la lectura de la memoria Fiscal.
Ventana de Eventos: Visor de la ejecución de comandos y datos..
Lectura de Memoria Fiscal:
Fiscal: Imprime y Carga a la Ventana de Eventos, los reportes realizados
tanto por Fecha como por Numero de Z

2
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

1.- DECLARACIÓN DE LA DLL (TFHKAIF.DLL)

Para: C y C++

BOOL _stdcall OpenFpctrl(LPCSTR lpPortName);


BOOL _stdcall CloseFpctrl();
BOOL _stdcall CheckFprinter();
BOOL _stdcall ReadFpStatus(LPINT status, LPINT error);
BOOL _stdcall SendCmd(LPINT status, LPINT error , LPCSTR cmd );
int _stdcall SendNCmd(LPINT status, LPINT error , LPCSTR buffer );
int _stdcall SendFileCmd(LPINT status, LPINT error, LPCSTR file );
BOOL _stdcall UploadReportCmd(LPINT status, LPINT error, LPCSTR cmd, LPCSTR file );

Para: Visual Basic

Declare Function OpenFpctrl Lib “TFHKAIF.DLL” (ByVal lpPortName As String) As Long


Declare Function CloseFpctrl Lib “ TFHKAIF.DLL” () As Long
Declare Function CheckFprinter Lib “ TFHKAIF.DLL” () As Long
Declare Function ReadFpStatus Lib “ TFHKAIF.DLL” (status As Long, error As Long) As Long
Declare Function SendCmd Lib “ TFHKAIF.DLL” (status As Long, error As Long, ByVal cmd As String) As Long
Declare Function SendNCmd Lib “ TFHKAIF.DLL” (status As Long, error As Long, ByVal buffer As String) As Long
Declare Function SendFileCmd Lib “ TFHKAIF.DLL” (status As Long, error As Long, ByVal file As String) As Long
Declare Function UploadReportCmd Lib “ TFHKAIF.DLL” (status As Long, error As Long, ByVal cmd As String,
ByVal file As String) As Long

3
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

2. – FUNCIONES DE LA DLL

2.1.- BOOL OpenFpctrl (LPCSTR lpPortName)


Nombre Puerto COM (Ej. “COM1” o “COM2”)
Función Apertura del Puerto Serial “COM”

Retorno Puerto Abierto = True


Falla de Apertura = False
Esta función debe ser llamada antes que otras funciones

Figura 2. Extracto de Código para el funcionamiento de la función “OpenFpctrl (LPCSTR lpPortName)”

2.2.- BOOL CloseFpctrl()


Nombre Puerto COM (Ej. “COM1” o “COM2”)
Función Cierre del Puerto Serial “COM”

Figura 3. Extracto de Código para el funcionamiento de la función “CloseFpctrl()”

4
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

2.3 .- BOOL CheckFprinter ()


Función Verifica si la Impresora esta Conectada

Retorno Si esta Conectada = True


Si no esta Conectada = False

Figura 4. Extracto de Código para el funcionamiento de la función “CheckFprinter()”

2.4.- BOOL ReadFpStatus (LPINT status, LPINT error)


Función Lectura Referente a la Información del Status & Error de la Impresora Fiscal

Retorno Stand-by = True


Error = False
Status: Pointer de Status (Ver Anexo 1)
Error: Pointer de Error (Ver Anexo 2)

Figura 5. Extracto de Código para el funcionamiento de la función “ReadFpStatus (LPINT status, LPINT error)”

5
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

2.5.- BOOL SendCmd (LPINT status, LPINT error, LPCSTR cmd)


Función Envía una Línea de Comando a la Impresora Fiscal

Retorno Stand-by = True


Error = False
Ejemplo de uso: (Indicador #1 comando) “500001”+{LF} LF=0Ah
Ver Anexo 3

Figura 6. Extracto de Código para el funcionamiento de la función


“SendCmd (LPINT status, LPINT error, LPCSTR cmd)”

2.6.- Int SendCmd (LPINT status, LPINT error, LPCSTR cmd)


Función Envía n Líneas de Comandos a la Impresora Fiscal
Retorno Numero de Comando Valido
Ejemplo de n comandos al buffer
-CMD#- -Comentario-
1: “T1”+{LF} (Inicio en Modo Entrenamiento)
2: “500001”+{LF} ( Indicador #1)
3: “O”+{LF}+{NULL or EOF} (Drawer Open)
Cuando Recibe Error desde la Impresora Fiscal, envía un comando para detener el proceso. En este
caso esta función retorna un numero de comandos e información referente al status.

Figura 7. Extracto de Código para el funcionamiento de la función


“SendCmd (LPINT status, LPINT error, LPCSTR cmd)”

6
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

2.7.- Int SendFileCmd (LPINT status, LPINT error, LPCSTR file)


Función Envía una serie de comandos en cadena contenidos en un archivo a la impresora fiscal
Retorno Numero de Comando Valido en Stand by
File = Nombre o ruta donde se ubica el archivo a enviar

Figura 8. Extracto de Código para el funcionamiento de la función


“SendFileCmd (LPINT status, LPINT error, LPCSTR file)”

2.8.- BOOL UploadReportCmd (LPINT status, LPINT error, LPCSTR cmd, LPCSTR file)
Función Carga un reporte de datos y a los almacena en una archivo (ASCII)
Retorno Numero de Comando Valido en Stand by
In caso de existir algún archivo de dato, previo al archivo de dato generado este será actualizado

Figura 9. Extracto de Código para el funcionamiento de la función “UploadReportCmd (LPINT status, LPINT
error, LPCSTR cmd, LPCSTR file)”

7
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

2.8.- BOOL UploadStatusCmd (LPINT status, LPINT error, LPCSTR cmd, LPCSTR file)
Función Carga los Status de la impresora (S1, S2, S3)
Retorno Numero de Comando Valido en Stand by

Figura 9. Extracto de Código para el funcionamiento de la función “UploadStatusCmd (LPINT status, LPINT
error, LPCSTR cmd, LPCSTR file)”

Comando Status “S1”

8
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

Comando Status “S2”

Comando Status “S3”

9
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

3.- ANEXOS

Anexo 1

“Información del Status de la Impresora Fiscal”

STATUS
Retorno Retorno
Comentario
(Hex) (Decimal)
0 0 Status Desconocido
1 1 En Modo Prueba y en Espera
2 2 En Modo Prueba y Emisión de Documentos Fiscales
3 3 En Modo Prueba y Emisión de Documentos No Fiscales
4 4 En Modo Fiscal y en Espera
5 5 En Modo Fiscal y Emisión de Documentos Fiscales
6 6 En Modo Fiscal y Emisión de Documentos No Fiscales
7 7 En Modo Fiscal y Cercana Carga Completa De La Memoria Fiscal Y en Espera
En Modo Fiscal y Cercana Carga Completa De La Memoria Fiscal Y en Emisión de
8 8
Documentos Fiscales
En Modo Fiscal y Cercana Carga Completa De La Memoria Fiscal Y en Emisión de
9 9
Documentos No Fiscales
0A 10 En Modo Fiscal y Carga Completa De La Memoria Fiscal Y en Espera
En Modo Fiscal y Carga Completa De La Memoria Fiscal Y en Emisión de
0B 11
Documentos Fiscales
En Modo Fiscal y Carga Completa De La Memoria Fiscal Y en Emisión de
0C 12
Documentos No Fiscales

10
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

Anexo 2

“Información del Error de la Impresora Fiscal”

Error
Retorno (Hex) Retorno (Decimal) Comentarios Valido / Invalido
00 0 No hay Error VALIDO
01 1 Fin en la Entrega de papel VALIDO
02 2 Error de índole Mecánico en la entrega de Papel VALIDO
03 3 Fin en la Entrega de papel y Error Mecánico VALIDO
50 80 Comando Invalido / Valor Invalido INVALIDO
54 84 Tasa Invalida INVALIDO
58 88 No hay Asignadas Directivas INVALIDO
5C 92 Comando Invalido INVALIDO
60 96 Error Fiscal INVALIDO
64 100 Error de la Memoria Fiscal INVALIDO
6C 108 Memoria Fiscal llena INVALIDO
112 Buffer Completo (Debe enviar el Comando de INVALIDO
70
Reinicio)
80 128 Error en la Comunicación INVALIDO
89 137 No Hay Respuesta INVALIDO
90 144 Error LRC INVALIDO
91 145 Error Interno API INVALIDO
99 153 Error en la Apertura del Archivo INVALIDO

11
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

Anexo 3

“Guía de Referencia de Comandos”

CMD Hex Sub CMD Operación


20-25 Ítem de Ventas
‘0’ 30 No Ventas
‘1’ 31 Cierre Promedio Directo
‘2’ 32 Promedio de Precaución
‘3’ 33 Impresión del Sub total w
‘5’ 35 Indicadores
‘6’ 36 Indicador Off
‘7’ 37 Cancelación de la Transacción
‘8’ 38 Impresión del Texto
‘9’ 39 P/O , R/A
‘B’ 42 Bloqueo de la Impresora Fiscal
‘D’ 44 Lugar de Programación
‘I’ 49 ‘0’ Reporte de Transacción ( Fiscal Z )
‘1’ Reporte de Transacción actual
‘2’ Lectura del Reporte Fiscal por Fecha
‘3’ Lectura del Reporte Fiscal por Numero Z
‘P’ 50 ‘A’ Programación de las Tasa de Impuesto
‘B’ Programación del Registro de Identificación
‘C’ Programación del Nombre y código Secreto
‘E’ Programación del Cierre Promedio
‘F’ Programación de la Hora
‘G’ Programación de la Fecha
‘H’ Programación de los Mensajes de Cabecera
‘J’ programación de las Bandera para las funciones del Sistema
‘K’ Programación de los símbolos de Transacción
‘L’ Programación de Mensajes de Impresión
‘M’ Iniciación Fiscal
‘N’ Programación del Numero de la Maquina
‘S’ Programación del Nombre de la Tienda

12
Librería de Enlace Dinámico Rev 1.1
“TFHKAIF.DLL” 31/01/08

‘T’ Programación de las Tasas de Impuesto


‘V’ Programación de la Responsabilidad VAT
‘a’ Almacenamiento de las Tasas de Impuesto dentro de la Memoria Fiscal
‘b’ Almacenamiento del Registro de Identificación dentro de la Memoria Fiscal
‘n’ Almacenamiento del numero de la Maquina dentro de la Memoria Fiscal
‘s’ Almacenamiento del Nombre de la Tienda dentro de la Memoria Fiscal
‘v’ Almacenamiento de la Responsabilidad VAT dentro de la Memoria Fiscal
‘S’ 53 Lectura de Información
‘T’ 54 Inicio y Finalización del modo de entrenamiento
‘U’ 55 ‘0’ Carga del Reporte de una Transacción Fiscal Z
‘1’ Carga del Reporte de Transacción
‘2’ Carga de los Reportes Fiscales por Fecha
‘3’ Carga de los Reportes Fiscales por numero Z
‘X’ 58 ‘1’ Limpieza de los datos de la Transacciones
‘b’ 62 Retorno Embotellado
‘c’ 63 Numero de la Tarjeta de Crédito / Recibo del numero impreso
‘e’ 65 Restaurar
‘k’ 6B Error Correcto
‘o’ 6F Apertura de la Impresora Fiscal
‘p’ 70 Porcentaje Correcto
‘t’ 74 P/O, R/A Total
‘x’ 78 Impresión de Prueba
‘z’ 7A Cierre de la Impresora Fiscal
A0-A5 Ítem de la Transacción Vacía
E2 Vacío del Retorno Embotellado

13