Esta semana os traigo un bombazo de AL. Existe una nueva función para Dynamics 365 Business Central 2021 versión 1 (BC18). Bueno es nueva porque la he descubierto esta semana 😋, pero os la traigo hoy para que la podáis empezar a utilizar. 🤩
Para resumir un poco lo que pone en el enlace de la documentación oficial de Microsoft es que en el Sandbox de Business Central se han instalado gratuitamente unas fuentes para que se puedan imprimir Barcodes.
Si lo quisiérais aplicar OnPrem, podéis adquirir fuentes en los siguientes enlaces:
https://www.idautomation.com/barcode-fonts/codabar/
https://www.idautomation.com/barcode-fonts/code-39
https://www.idautomation.com/barcode-fonts/code-93/
https://www.idautomation.com/barcode-fonts/code-128/
https://www.idautomation.com/barcode-fonts/interleaved-2of5/
https://www.idautomation.com/barcode-fonts/msi/
Aquí podemos descargar versiones de demostración de las fuentes para hacer pruebas:
https://www.idautomation.com/barcode-fonts/codabar/download/
https://www.idautomation.com/barcode-fonts/code-39/download/
https://www.idautomation.com/barcode-fonts/code-93/download/
https://www.idautomation.com/barcode-fonts/code-128/download/
https://www.idautomation.com/barcode-fonts/interleaved-2of5/download/
https://www.idautomation.com/barcode-fonts/msi/
Ahora os explico un poco lo que se puede hacer y cómo tendríamos que añadirlo a nuestras extensiones.
Lo primero que haremos es crear un nuevo proyecto de AL y añadir toda la estructura base.Después crearemos un nuevo Report.
Añadimos las variables de tipo testo:
Os voy a poner sólo tres de los ejemplos, pero funciona con todas las fuentes que Microsoft ha añadido.
Después de crear las variables lo que haremos es añadir los triggers.
Aquí la cosa se complica un poco más, lo que nos indica Microsoft es que tenemos que extender la interface «Barcode Font Provider» para poder ejecutar su proceso “EncodeFont” y así poder transformar el dato que le estamos enviando a un dato óptimo para el tipo de barcode que le hemos solicitado.Antes de enviarlo a la función “EncodeFont” escogeremos qué símbolo de barcode queremos transformar.
En el trigger “OnPreDataItem” aplico un filtro para encontrar sólo un producto, ya que para este ejemplo solo requerimos mostrar uno en concreto.
Ahora vamos a las columnas! He añadido el número de producto y su descripción para ver que efectivamente es ese el número que estamos escogiendo.
Por último, añadimos todo esto en un layout.
El resultado de todo esto es una pasada. 😍
Como siempre os adjunto el código por si lo queréis probar en este enlace
Esperamos que esta explicación os resulte de utilidad y os emplazamos a nuestra próxima publicación.