Lógica imperativa
Nota
Microsoft Power Fx é o novo nome para a linguagem de fórmula de aplicações de tela. Estes artigos associados são um trabalho em curso à medida que extraímos o idioma das aplicações de tela, o integramos com outros produtos do Microsoft Power Platform e o disponibilizamos como open source. Comece com a Visão geral de Microsoft Power Fx para uma introdução ao idioma.
A maioria das fórmulas no Microsoft Power Fx calcula um valor. Tal como uma folha de cálculo do Excel, um recalculo ocorre automaticamente à medida que os valores mudam. Por exemplo, poderá querer mostrar o valor num controlo Etiqueta a vermelho se o valor for inferior a zero ou, caso contrário, a preto. Para que possa definir a propriedade Color desse controlo para esta fórmula:
If( Value(TextBox1.Text) >= 0, Color.Black, Color.Red )
Neste contexto, o que significa quando o utilizador seleciona um controlo Botão? Nenhum valor foi alterado, pelo que não existe nada de novo para calcular. O Excel não tem qualquer equivalente para um controlo Botão.
Ao selecionar um controlo Botão, o utilizador inicia uma sequência de ações ou comportamentos que irão alterar o estado da aplicação:
- Alterar o ecrã apresentado: funções Back.
- Controlar um sinal (apenas Power Apps): funções Enable e Disable.
- Atualizar ou remover itens numa origem de dados: funções Refresh, Update, UpdateIf, Patch, Remove, RemoveIf.
- Atualizar uma variável de contexto (apenas tela do Power Apps): função UpdateContext.
- Criar, atualizar ou remover itens numa coleção: funções Collect, Clear, ClearCollect.
Uma vez que estas funções alteram o estado da aplicação, não podem ser automaticamente recalculadas. Pode utilizá-las nas fórmulas para OnSelect, OnVisible, OnHidden e outras propriedades On..., que se chamam fórmulas de comportamento.
Mais de uma ação
Utilize o ponto e vírgula para criar uma lista de ações a executar. Por exemplo, pode querer atualizar uma variável de contexto e, em seguida, regressar ao ecrã anterior:
UpdateContext( { x: 1 } ); Back()
As ações são realizadas pela ordem em que aparecem na fórmula. A função seguinte não será iniciada enquanto a função atual não estiver concluída. Se ocorrer um erro, as funções subsequentes podem não iniciar.