Edición 5 - Funciones del Dll para Impresoras Fiscales Bematech
![]()
En este FlashTip aprenderemos como declarar y utilizar las funciones del dll BemaFI32 para las impresoras fiscales Bematech. Pero para que podamos utilizar el dll de Bematech es necesario saber como configurar y donde se debe grabar el dll.
El dll debe ser grabado en el directorio de sistema de Windows, junto con el archivo BemaFI32.ini (archivo de configuración del dll).
C:\WINDOWS\SYSTEM ... &&Abrir Comprobante iRetorno = Bematech_FI_VendeArticulo( cCodigo, cDescripcion, cAlicuota, cTipoCtd, cCtd, 2, cValor, cTipo, cDesc ) &&Empieza cierre Cupón cFormaPago = "Dinero" iRetorno = Bematech_FI_EfectuaFormaPago(cFormaPago,cValorFormaPago) &&Finaliza Cierre Cupón iRetorno = Bematech_FI_FinalizarCierreCupon(cMensaje
C:\WINNT\SYSTEM32
El dll BemaFI32.dll posee un archivo de configuración llamado BemaFI32.ini en el que algunas opciones pueden ser configuradas. Ese archivo de configuración posee secciones con algunos parámetros de configuración que vemos a continuación:
Sección [Sistema]
Esa sección posee las siguientes opciones de configuración:
Puerta:
Indica el puerto serial de comunicación entre la impresora y el micro. Caso el valor sea igual a "DEFAULT", el DLL buscará el puerto donde está la impresora, automaticamente.
Path:
Configura el directorio donde será creado el archivo "STATUS.TXT", "RETORNO.TXT" y "BEMAFI32.LOG". El path default es el directorio raíz en la unidad C:\.
Status:
Caso esa opción esté con el valor 1, las funciones del dll van a grabar el status de la impresora (ACK, ST1 y ST2) en el archivo llamado "STATUS.TXT". El valor default de esa opción es 0, con el status de la impresora volviendo a través de la función Bematech_FI_RetornoImpressora.
Retorno:
Caso esa opción esté con el valor 1, las Funciones de Informaciones* del dll van a grabar el retorno en el archivo llamado "RETORNO.TXT ". El valor default de esa opción es 0, con las informaciones siendo retornadas a través de las variables pasadas como parámetro en las funciones.
StatusFuncion:
Esta llave configura el dll para retornar el valor –27 en las funciones, cuando el status de la impresora (ACK, ST1, ST2) sea diferente de 6,0,0. Con esa configuración, la función Bematech_FI_RetornoImpresora podrá ser ejecutada solamente cuando el retorno sea –27. El valor uno "1" habilita y el valor cero "0" deshabilita esa configuración. El valor default es cero "0".
ControlPuerta:
Caso esté con el valor 0, la apertura y el cierre del puerto serán controlados por el programador.En caso que esté con el valor 1, serán controlados por el dll. El dll va a abrir y cerrar la puerto automaticamente en cada función. Es recomendable que el control del puerto sea realizado por el programador y que esta sea abierta al inicio de la ejecución del programa y encerrada solamente al final de la ejecución.
ModeloImp:
Es utilizada para identificar qué tipo de impresora fiscal está siendo usada. En nuestro caso utilizaremos BEMATECH como configuración.
Pais:
Es utilizada para identificar el Pais donde la impresora es utilizada (Pais=VENEZUELA)
ConfigRede:
Identifica el modo en que será utilizada el dll. En caso que sea igual a 0 (cero) - modo de utilización normal, caso sea igual a 1 (uno) - modo de utilización por el servidor y caso sea igual a 2 (dos) - modo de utilización por el terminal (Cliente). En caso que esta llave sea diferente de 0 (cero), el dll tendrá su funcionalidad remota (cliente / Servidor), con el uso del Windows Terminal Server o del Frame-Relay.
ModoGaveta:
Es utilizada para compatibilizar la señal lógica que la gaveta envía a la impresora, cuando es accionada (abierta) o no. El Default es 0 (cero), es decir, la señal enviada por la gaveta es la misma retornada por la DLL. En algunos modelos de gaveta, esta señal podrá venir invertida, es decir, la señal que corresponde a la gaveta abierta "gaveta aberta ", puede ser la señal para la gaveta cerrada "gaveta fechada ". En este caso habilite esta llave, sustituyendo el valor 0 (cero) para (1) uno.
Log:
En caso que esta opción esté con el valor 1, el DLL creará un archivo de log llamado "BEMAFI32.LOG" con todas las funciones ejecutadas, sus parámetros y valores de retorno.
Ahora podemos empezar a utilizar las funciones del dll. Primero debemos declarar las funciones en nuestro software para que estas puedan ser ejecutadas. La sintaxis de declaración de las funciones es: BemaFI32_[Nombre de la función](Parámetros que seran utilizados)
Declare las funciones del dll en el Load de su FORM principal. El ejemplo de abajo muestra solamente algunas funciones, para mayor información consulte el Help del dll.
DECLARE INTEGER Bematech_FI_AbreComprobanteDeVenta IN "BemaFi32.dll";
STRING RIF,;
STRING NOMBRE
DECLARE INTEGER Bematech_FI_VendeArticulo IN "BemaFi32.dll";
STRING Codigo,;
STRING Descripcion,;
STRING Alicuota,;
STRING TipoCtd,;
STRING Cantidad,;
INTEGER CasasDecimales,;
STRING ValorUnitario,;
STRING TipoDesc,;
STRING ValorDesc
DECLARE INTEGER Bematech_FI_IniciaCierreCupon IN "BemaFi32.dll";
STRING IncrDesc,;
STRING TipoIncrDesc,;
STRING ValorIncrDesc
DECLARE INTEGER Bematech_FI_EfectuaFormaPago IN "BemaFi32.dll";
STRING FormaPago,;
STRING ValorFormaPago
DECLARE INTEGER Bematech_FI_FinalizarCierreCupon IN "BemaFi32.dll";
STRING Mensaje
Abajo siguen ejemplos de como utilizar las funciones declaradas arriba
cNombre = "Fulano"
cRIF = "111111111111-11"
iRetorno = Bematech_FI_AbreComprobanteDeVenta(cRIF,cNombre)
&&Vender Artículo
cCodigo = "123"
cDescripcion = "Frijoles"
cAlicuota = "II"
cTipoCtd = "I"
cCtd = "1"
cValor = "35,00"
cTipo = "%"
cDesc = "0"
cIncremDesc = "D"
cTipoIncremDesc = "%"
cValorIncremDesc = "0"
iRetorno = Bematech_FI_IniciaCierreCupon(cIncremDesc,cTipoIncremDesc,
cValorIncremDesc)
&&Efectua Forma de Pago
cValorFormaPago = "50,00"
cMensaje = "Vuelva Siempre"
El ejemplo completo con código fuente esta en nuestro sítio, usted puede hacer el download haciendo un click aquí.
