Cuando trabajamos con textos en Business Central, a veces es necesario dividir la información en varias líneas para mejorar la legibilidad o cumplir con ciertos formatos. Aunque Business Central tiene herramientas para manejar textos, la implementación de un salto de línea específico puede no ser tan directa. Por suerte, es posible personalizar esta funcionalidad para adaptarla a nuestras necesidades.
La siguiente Codeunit es parte de un repositorio de utilidades que he desarrollado, y en este post te mostraré cómo funciona y cómo puedes usarla en tus propios proyectos.
¡Vamos manos a la obra! 🥳
Un vistazo a la Codeunit “Line Break”
La Codeunit 50000 "Line Break"
está diseñada para manejar saltos de línea en textos de una manera sencilla y efectiva. A continuación, te explico cada parte de este código.
Mensaje inicial con salto de línea
El primer fragmento del código que encontramos es un simple trigger OnRun
, que se ejecuta al llamar la Codeunit. Este trigger utiliza la función NewLineBreak
para insertar un salto de línea entre dos textos en un mensaje.
trigger OnRun()
begin
Message('Texto inicial: ' + NewLineBreak() + 'Texto final');
end;
En este ejemplo, el mensaje mostrado combinará “Texto inicial” y “Texto final” en dos líneas diferentes gracias a la función de salto de línea personalizada. Es una forma rápida y directa de mostrar cómo funciona esta funcionalidad.
Procedimiento: generando múltiples saltos de línea
A continuación, en la región de código etiquetada como #region function salto de linea
, se define el procedimiento LineBreak
. Este procedimiento permite generar múltiples saltos de línea en un texto, en función de la cantidad que se le pase como parámetro.
procedure LineBreak(QtyLineBreak: Integer) ReturnValue: Text
var
TypeHelper: Codeunit "Type Helper";
i: Integer;
begin
ReturnValue := '';
for i := 1 to QtyLineBreak do
ReturnValue += TypeHelper.CRLFSeparator();
end;
En este fragmento:
QtyLineBreak
: Es un parámetro que define cuántos saltos de línea se deben insertar.TypeHelper
: Se utiliza para acceder a la funciónCRLFSeparator
, que retorna un salto de línea estándar (caracteresCarriage Return
yLine Feed
).- El bucle
for
se encarga de repetir el salto de línea la cantidad de veces especificada porQtyLineBreak
.
Este procedimiento es extremadamente útil cuando necesitas insertar múltiples saltos de línea, por ejemplo, al formatear textos en informes o documentos.
Procedimiento: un solo salto de línea
El último procedimiento, SaltoDeLinea
, genera un único salto de línea utilizando los códigos ASCII de Carriage Return
y Line Feed
.
procedure SaltoDeLinea() ReturnValue: Text
var
CR: Char;
LF: Char;
begin
CR := 13;
LF := 10;
ReturnValue := FORMAT(CR) + FORMAT(LF);
end;
Aquí:
CR
(Carriage Return) yLF
(Line Feed) son caracteres ASCII que, cuando se combinan, crean un salto de línea.FORMAT(CR) + FORMAT(LF)
: Combina estos caracteres en una cadena de texto que representa el salto de línea.
Este método es más directo si solo necesitas un único salto de línea y quieres evitar llamadas a otras codeunits.
Beneficios y Aplicaciones Prácticas
Implementar esta Codeunit en un entorno real de Business Central puede tener varios beneficios:
- Mejora la legibilidad: Al poder controlar los saltos de línea en textos, puedes hacer que la información en mensajes, informes o documentos sea más clara y fácil de leer.
- Versatilidad: La capacidad de añadir múltiples saltos de línea te permite formatear textos según las necesidades de cada situación.
- Personalización: Esta Codeunit es fácilmente ajustable y puede ser extendida o modificada para adaptarse a otras necesidades específicas que tengas en tu proyecto.
Conclusión
Crear funcionalidades personalizadas en Business Central, como la implementación de saltos de línea en textos, no solo mejora la presentación de la información, sino que también optimiza la interacción con los usuarios. Este tipo de soluciones demuestra la flexibilidad y el poder de personalización que ofrece Business Central para adaptarse a las necesidades específicas de cualquier negocio.
Si quieres ver el código completo, está en GitHub.
¡Espero que esta guía te haya sido útil y que puedas aplicar esta funcionalidad en tus proyectos! ¡Hasta la próxima! 😊