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.