¡Hola a todos! Espero que estén teniendo un excelente día.
Hoy quiero compartir con ustedes un concepto básico pero sumamente útil tanto en Navision como en Business Central: el diálogo de progreso.
Un diálogo de progreso es una herramienta comúnmente utilizada cuando necesitamos recorrer un proceso o una tabla mientras mostramos un diálogo al usuario para mantenerlo informado sobre el avance. En este blog, explicaré cómo implementar un código en AL que logra precisamente eso.
Bueno, después de esta breve explicación, ¡pongámonos manos a la obra! 😎
Comencemos por crear una codeunit y agregar las variables necesarias
codeunit 70101 "Mgt. Dialogo De Proceso"
{
trigger OnRun()
begin
end;
var
MyDialog: Dialog;
MyNext: Integer;
MaxCount: Integer;
}
La primera función que vamos a desarrollar es la de apertura del diálogo.
En esta función, es importante destacar que debemos pasar el total de líneas a recorrer como parámetro.
procedure ProcessDialogOpen(NewMaxCount: Integer)
var
Text001Lbl: Label 'Progress to %1: ', Comment = 'ESP="Progreso hasta %1: "';
Text002Lbl: Label '#1#####', Locked = true;
ValueText: Text;
begin
MyNext := 0;
MaxCount := NewMaxCount;
ValueText := StrSubstNo(Text001Lbl, MaxCount) + Text002Lbl;
MyDialog.Open(ValueText, MyNext);
end;
La función de actualización es bastante sencilla.
Esta función será llamada en cada iteración del bucle.
procedure ProcessDialogUpdate()
begin
MyNext := MyNext + 1;
MyDialog.Update();
end;
Por último, tenemos la función para cerrar el diálogo.
procedure ProcessDialogClose()
begin
MyDialog.Close();
end;
Ahora, para utilizar estas funciones, les mostraré un ejemplo en el que recorremos la tabla de clientes.
trigger OnRun()
var
Customer: Record Customer;
begin
if Customer.FindSet() then begin
ProcessDialogOpen(Customer.Count);
repeat
ProcessDialogUpdate();
until Customer.Next() = 0;
ProcessDialogClose();
end;
end;
Esto nos mostrar el dialogo y lo va actualizando en cada uno de nuestros clientes.
En este artículo, hemos aprendido a implementar un diálogo de progreso en código AL para Navision y Business Central. Este diálogo es útil para mostrar el avance de un proceso o recorrido de tabla al usuario.
Creamos una codeunit y definimos variables. Luego, desarrollamos funciones para abrir, actualizar y cerrar el diálogo. Utilizamos un ejemplo de recorrido de la tabla de clientes para ilustrar su uso.
Ahora podrás utilizar esta herramienta para mejorar la experiencia del usuario en tus proyectos de Navision o Business Central.
Como siempre, podréis ver el ejemplo entero en el Link
¡Y eso es todo! Espero que esta explicación y el código os hayan sido de ayuda. Si tenéis algún comentario o pregunta, no dudéis en hacerla. ¡Hasta la próxima!