Interfaz de Usuario
FactBoxes
Dificultad: 4/10Los FactBoxes son paneles informativos especiales que se ubican en el riel lateral derecho de las pantallas de Business Central. Muestran información adicional y contextual del registro seleccionado sin necesidad de abrir otra ventana.
Sintaxis básica
Un FactBox se declara en el area(FactBoxes) de la page padre apuntando a una page de tipo
CardPart o ListPart:
layout
{
area(Content)
{
// ... campos principales
}
area(FactBoxes)
{
part(NombreLocal; "NombreDeLaPagePart")
{
SubPageLink = "CampoFiltro" = field("CampoOrigen");
}
}
}
¿Qué son los paneles laterales?
Imagina que estás navegando una lista infinita de clientes que solo tiene tres columnas (Teléfono, Ciudad, Nombre) y quisieras saber "¿Cuánto me debe este?". Tendrías que salirte o hacer doble clic para abrir una Card completa, interrumpiendo abruptamente tu flujo de búsqueda.
Los desarrolladores de ERP resolvieron eso habilitando el Área de FactBox. Cuando el usuario mueve las flechas por las distintas filas de la lista, el FactBox de la derecha reacciona instantáneamente actualizando en vivo resúmenes y valores de FlowFields del registro seleccionado.
Por debajo, un FactBox es simplemente una page de tipo CardPart o
ListPart insertada en el bloque area(FactBoxes), que se engarza
dinámicamente con la entidad en pantalla a través de SubPageLink.
¿Cómo mejoran la navegación?
Los FactBoxes no solo aportan contexto pasivo. Sus numeritos en verde brillante son clicables (DrillDowns), permitiéndote navegar directamente al origen del dato sin cambiar ni ensuciar tu vista principal.
- Muestran FlowFields calculados en tiempo real: saldos, totales, contadores
- Permiten DrillDown: al hacer clic en un número, abres el detalle directamente
- Se actualizan automáticamente al cambiar de registro en la lista
- No interrumpen el flujo: el usuario no tiene que abrir ninguna ventana nueva
Ejemplo: FactBox de préstamos en la ficha de un libro
// En la page "Libro Card":
page 50302 "Libro Card"
{
PageType = Card;
ApplicationArea = All;
SourceTable = "Libro";
layout
{
area(Content)
{
group(General)
{
field("No."; Rec."No.") { Importance = Promoted; }
field(Titulo; Rec.Titulo) { Importance = Promoted; }
field(Autor; Rec.Autor) { }
field(ISBN; Rec.ISBN) { }
}
}
area(FactBoxes)
{
// Cada vez que el usuario cambia de libro, el panel se actualiza
// mostrando solo los préstamos de ESE libro
part(PrestamosLibro; "Prestamo ListPart")
{
SubPageLink = "No. Libro" = field("No.");
}
// Segundo FactBox: resumen estadístico del libro
part(EstadisticasLibro; "Libro Stats FactBox")
{
SubPageLink = "No." = field("No.");
}
}
}
}
FactBoxes también en páginas List
Los FactBoxes no son exclusivos de las Cards. También funcionan en páginas de tipo List: al seleccionar una fila, el panel lateral se actualiza mostrando información del registro resaltado.
page 50300 "Socio List"
{
PageType = List;
SourceTable = "Socio";
CardPageId = "Socio Card";
layout
{
area(Content)
{
repeater(GroupName)
{
field("No."; Rec."No.") { }
field(Nombre; Rec.Nombre) { }
}
}
area(FactBoxes)
{
// El panel se actualiza al mover el cursor por las filas
part(HistorialPrestamos; "Prestamo ListPart")
{
SubPageLink = "No. Socio" = field("No.");
}
}
}
}
💡 Tips
- Un FactBox es siempre una page de tipo
CardPart(un registro) oListPart(varios registros). SubPageLinkes obligatorio para que el FactBox filtre por el registro seleccionado. Sin él, mostraría todos los datos de la tabla.- Puedes tener múltiples FactBoxes en el mismo
area(FactBoxes), apilados verticalmente. - Los valores de FlowFields mostrados en un FactBox son clicables (DrillDown) si la propiedad
DrillDownPageIdestá configurada en la tabla. - Los FactBoxes funcionan tanto en pages de tipo
Listcomo de tipoCard.