Lóxica imperativa
Nota
Microsoft Power Fx é o novo nome da linguaxe de fórmulas para aplicacións de lenzo. Estes artigos son un traballo en curso a medida que extraemos o idioma das aplicacións de lenzo, o integramos con outros produtos de Microsoft Power Platform e o poñemos a disposición como código aberto. Comece coa Visión xeral de Microsoft Power Fx para ver unha introdución á lingaxe.
A maioría das fórmulas en Microsoft Power Fx calculan un valor. Do mesmo xeito que unha folla de cálculo de Excel, a repetición do cálculo ocorre automaticamente a medida que os valores cambian. Por exemplo, se quere amosar o valor no control Etiqueta en vermello se o valor é inferior a cero ou en negro do contrario. Polo tanto, pode configurar a propiedade Color dese control nesta fórmula:
If( Value(TextBox1.Text) >= 0, Color.Black, Color.Red )
Neste contexto, que significa cando o usuario selecciona un control de Botón? Non se cambiou ningún valor, polo que non hai nada novo que calcular. Excel non ten ningún equivalente ao control de Botón.
Ao seleccionar un control de Botón, o usuario inicia unha secuencia de accións ou comportamentos que cambiarán o estado da aplicación:
- Cambie a pantalla que se amosa: funcións Atrás.
- Controle un sinal (Power Apps só): funcións de Activar e Desactivar.
- Actualizar, mellorar ou eliminar elementos dunha orixe de datos: funcións Actualizar, Mellorar, UpdateIf, Parche, Quitar, RemoveIf.
- Actualizar unha variable de contexto (Power Apps só de lenzo): función UpdateContext.
- Cree, actualice ou elimine elementos dunha colección: funcións Recoller, Borrar, ClearCollect.
Debido a que estas funcións cambian o estado da aplicación, non se poden recalcular automaticamente. Pode usalas nas fórmulas das propiedades OnSelect, OnVisible, OnHidden e outras propiedades de En..., que se denominan fórmulas de comportamento.
Máis dunha acción
Empregue puntos e coma para crear unha lista de accións para realizar. Por exemplo, pode actualizar unha variable de contexto e logo volver á pantalla anterior:
UpdateContext( { x: 1 } ); Back()
As accións realízanse na orde na que aparecen na fórmula. A seguinte función non se iniciará ata que remate a función actual. Se se produce un erro, pode que as funcións posteriores non se inicien.