Controles con condicionales en PowerApps
En este artículo, exploraremos cómo usar fórmulas en PowerApps para hacer que los controles, como Dropdowns y otros elementos interactivos, cambien su comportamiento en función de valores en tus datos. Trabajaremos con un control Dropdown que debe mostrarse dependiendo de un valor numérico o del valor de un campo de texto y cómo utilizar esta lógica dentro de una galería.
🎯 Escenario
Imagina que tienes una galería en PowerApps que muestra elementos de una colección llamada ColSelectAllOrders
. Cada elemento tiene un valor de AMOUNT y, según ese valor, deseas mostrar ciertos controles o hacer que estos sean interactivos. En este artículo, nos centraremos en dos tareas:
Filtrar un Dropdown basado en el valor de AMOUNT.
Hacer que un Dropdown solo sea editable si AMOUNT es mayor que
150000
.Tenemos una lista de SharePoint con los roles asociados a esta aplicación. La columna Role es de tipo Choice.
1️⃣ Cómo mostrar roles específicos en un Dropdown según el monto
Para filtrar los elementos en un Dropdown dentro de una galería según el valor de AMOUNT, usamos la función Filter
. Queremos mostrar diferentes opciones en función de si AMOUNT es mayor o menor que 150000
.
📌 Fórmula utilizada:
Filter(
VAR_sharepoint_list_roles,
Role.Value = If(ThisItem.AMOUNT > 150000, "Finance", "Manager")
)
🔍 Explicación:
Filter(VAR_sharepoint_list_roles, ...)
→ Filtra la colecciónVAR_sharepoint_list_roles
con base en las condiciones que definimos.Role.Value = If(ThisItem.AMOUNT > 150000, "Finance", "Manager")
→ Si el valor de AMOUNT es mayor que150000
, mostramos el rol "Finance". Si es menor o igual, mostramos "Manager".ThisItem.AMOUNT
→ Hace referencia al valor de AMOUNT en el elemento actual de la galería, permitiendo que cada ítem tenga su propio filtro.
✅ Consejo: Si AMOUNT puede estar vacío, puedes asegurarte de que el Dropdown siempre tenga una opción predeterminada agregando una validación:
Filter(
VAR_sharepoint_list_roles,
Role.Value = If(IsBlank(ThisItem.AMOUNT) || ThisItem.AMOUNT <= 150000, "Manager", "Finance")
)
2️⃣ Cómo hacer un Dropdown editable solo si AMOUNT es Mayor que 150000
El siguiente paso es hacer que el control Dropdown sea editable solo si el valor de AMOUNT es mayor que 150000
. Esto lo podemos lograr modificando la propiedad DisplayMode del control Dropdown.
📌 Fórmula utilizada:
If(ThisItem.AMOUNT > 150000, DisplayMode.Edit, DisplayMode.Disabled)
🔍 Explicación:
If(ThisItem.AMOUNT > 150000, DisplayMode.Edit, DisplayMode.Disabled)
→ Asegura que el Dropdown solo sea editable si AMOUNT es mayor que150000
. Si AMOUNT es menor o igual, el control se deshabilita.DisplayMode.Edit
→ Habilita el control para su edición por el usuario.DisplayMode.Disabled
→ Deshabilita el control, impidiendo que el usuario interactúe con él.
✅ Consejo: Si AMOUNT puede estar vacío, es recomendable manejarlo así:
If(IsBlank(ThisItem.AMOUNT) || ThisItem.AMOUNT <= 150000, DisplayMode.Disabled, DisplayMode.Edit)
🎯 Conclusión
En PowerApps, podemos hacer que nuestros controles respondan de manera dinámica a los datos de la aplicación. Utilizando propiedades como DisplayMode y funciones como Filter e If, podemos crear una experiencia de usuario más flexible y centrada en los datos.
Este tipo de lógica es útil especialmente cuando quieres que ciertos controles se activen solo bajo condiciones específicas, mejorando la usabilidad y la interacción con la aplicación. 🚀