En la emocionante travesía de la programación en Business Central, nos encontramos a menudo con desafíos que requieren soluciones ingeniosas. Hoy quiero compartir contigo un ejemplo práctico que demuestra cómo podemos extraer únicamente los números de un texto en AL (lenguaje de programación de Business Central).
Imagina que tienes un requisito donde necesitas manipular un texto y extraer solo los números que contiene. Esto puede ser útil en una variedad de situaciones, desde limpiar datos hasta realizar cálculos específicos.
Ahora lo veréis mas claro. ¡Vamos manos a la obra! 😚
Para abordar este desafío, utilizaremos un sencillo pero poderoso código que he preparado para ti. Primero, creamos una codeunit llamada “EnTextoDejarSoloNumeros” con un procedure denominado “DejarSoloNumeros”. Este procedure toma un texto como entrada y devuelve solo los números encontrados en ese texto.
codeunit 50100 "EnTextoDejarSoloNumeros"
{
procedure DejarSoloNumeros(InputText: Text) OutputText: Text
var
i: Integer;
ValueInt: Integer;
ValueText: Text;
begin
OutputText := '';
for i := 1 to StrLen(InputText) do begin
ValueText := InputText[i];
if Evaluate(ValueInt, ValueText) then
OutputText += ValueText;
end;
end;
}
El código en sí es bastante simple. Utilizamos un bucle “for” para iterar a través de cada carácter del texto de entrada. Luego, verificamos si cada carácter es un número y, en caso afirmativo, lo agregamos al texto de salida. Este enfoque nos permite filtrar eficazmente los números del resto del texto.
Ahora, pasemos a la parte más emocionante: la aplicación práctica de este código. Imagina que estás trabajando en una página de extensión para clientes en Business Central. Quieres mostrar solo los números de un texto que recibes como entrada. ¡Aquí es donde entra en juego nuestro código!
Hemos creado una extensión de página que utiliza nuestro código para extraer y mostrar los números de un texto de ejemplo. Al ejecutar la página, veremos que el texto original, “AB12C3D4”, se transforma en “1234”, mostrando solo los números presentes en el texto.
Este ejemplo es solo la punta del iceberg en cuanto a las posibilidades que ofrece la programación en Business Central. Desde manipular datos hasta automatizar procesos, el potencial es ilimitado. Te invito a experimentar con este código y descubrir cómo puedes aplicarlo en tus propios proyectos.
Recuerda, en el mundo de la programación, la creatividad y la resolución de problemas son tus mejores aliados. ¡Así que adelante, sumérgete en el fascinante universo de Business Central y haz magia con tu código!
Como veis es algo muy sencillo, el texto es como si fuera un array y podemos ir verificando cada uno de los caracteres que hay dentro de este mismo.
Ahora para poder ver que todo esto ha funcionado correctamente, creamos una page extensión de clientes por ejemplo para que ejecute este código en el OpenPage y nos muestre el mensaje del resultado.
pageextension 50100 "Extension Customer" extends "Customer Card"
{
trigger OnOpenPage()
var
EnTextoDejarSoloNumeros: Codeunit EnTextoDejarSoloNumeros;
Text01: Text;
begin
Text01 := EnTextoDejarSoloNumeros.DejarSoloNumeros('AB12C3D4');
Message(text01);
end;
}
Podéis ver que hemos añadido el texto entre calado con números, para ver cómo reacciona nuestro código.
Si lo ejecutamos veremos que nos muestra un mensaje que pone “1234”
Por lo que ha quitado todas las letras y solo ha dejado los números en el orden que los hemos añadido.
Como podéis ver esto tiene infinidad de posibilidades, os invito a dejar comentarios exponiendo cuales habéis encontrado vosotros.
Como siempre este ejemplo entero lo tenéis colgado en GitHub.