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ón VAR_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 que 150000, 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 que 150000. 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. 🚀


Carolina Rincón

Psicóloga convertida en apasionada por la tecnología. Especialista en Microsoft Power Platform, creo soluciones funcionales y comparto mi experiencia como speaker y voluntaria en la comunidad tech.

https://www.linkedin.com/in/carolinarinconr
Anterior
Anterior

Resumen del Power Quizz: Preguntas, risas y datos útiles

Siguiente
Siguiente

Librerías de componentes en Power Apps: Mejores prácticas y beneficios