Lógica imperativa

Nota

Microsoft Power Fx es el nuevo nombre del lenguaje de fórmulas para aplicaciones de lienzo. Estos artículos son un trabajo en progreso a medida que extraemos el idioma de las aplicaciones de lienzo, lo integramos con otros productos Microsoft Power Platform y ponerlo a disposición como código abierto. Empiece con Información general de Microsoft Power Fx para una introducción al idioma.

La mayoría de las fórmulas de Microsoft Power Fx calculan un valor. Al igual que una hoja de cálculo de Excel, el cálculo nuevo se realiza automáticamente cuando cambian los valores. Por ejemplo, es posible que desee mostrar el valor de un control Label en rojo si el valor es menor que cero o en blanco, si no es el caso. De este modo, puede establecer la propiedad Color de ese control en esta fórmula:

If( Value(TextBox1.Text) >= 0, Color.Black, Color.Red )

En este contexto, ¿qué significa que el usuario seleccione un control Button? No ha cambiado ningún valor, por lo que no es necesario hacer un cálculo nuevo. Excel no tiene un equivalente a un control Button.

Al seleccionar un control Button, el usuario inicia una secuencia de acciones, o comportamientos, que cambiará el estado de la aplicación:

  • Cambie la pantalla que se muestra: funciones Back.
  • Controle una señal (solo Power Apps): funciones Enable y Disable.
  • Actualizar o quitar elementos de un origen de datos: funciones Refresh, Update, UpdateIf, Patch, Remove, RemoveIf.
  • Actualice una variable de contexto Función (solo lienzo Power Apps): función UpdateContext.
  • Crear, actualizar o quitar elementos de una colección: funciones Collect, Clear, ClearCollect.

Como estas funciones cambian el estado de la aplicación, no se pueden volver a calcular automáticamente. Puede usarlas en las fórmulas para las propiedades OnSelect, OnVisible, OnHidden, además de otras propiedades del tipo On..., que se llaman fórmulas de comportamiento.

Más de una acción

Use puntos y comas para crear una lista de acciones a realizar. Por ejemplo, es posible que desee actualizar una variable de contexto y, a continuación, volver a la pantalla anterior:

UpdateContext( { x: 1 } ); Back()

Las acciones se realizan en el orden en que aparecen en la fórmula. La función siguiente no se iniciará hasta que se complete la función actual. Si se produce un error, no se iniciarán las funciones posteriores.