Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a: Aplicativos do Canvas Fluxos
do Copilot Studio
Desktop Colunas
de fórmulas Dataverse Aplicações
orientadas por modelos CLI
da Power Platform Funções
Dataverse Páginas de energia
Determina se qualquer condição em um conjunto é true (If) ou se o resultado de uma fórmula corresponde a qualquer valor em um conjunto (Switch) e, em seguida, retorna um resultado ou executa uma ação.
Descrição
A If função testa uma ou mais condições até que um resultado verdadeiro seja encontrado. If tal resultado é encontrado, um valor correspondente é retornado. If nenhum resultado é encontrado, um valor padrão é retornado. Em ambos os casos, o valor devolvido poderá ser uma cadeia para ser mostrada, uma fórmula para ser avaliada ou outra forma do resultado.
A Switch função avalia uma fórmula e determina se o resultado corresponde a qualquer valor em uma sequência especificada. If uma correspondência é encontrada, um valor correspondente é retornado. If nenhuma correspondência é encontrada, um valor padrão é retornado. Em ambos os casos, o valor devolvido poderá ser uma cadeia para ser mostrada, uma fórmula para ser avaliada ou outra forma do resultado.
If e Switch são muito semelhantes, mas você deve usar a melhor função para a sua situação:
- Use If para avaliar uma única condição. A sintaxe mais comum para esta função é If( Condition, ThenResult, DefaultResult ), que fornece o comum "if ... depois... else …" visto noutras ferramentas de programação.
- Use If para avaliar várias condições não relacionadas. No Power Apps (ao contrário do Microsoft Excel), você pode especificar várias condições sem precisar aninhar If fórmulas.
- Use Switch para avaliar uma única condição em relação a várias correspondências possíveis. Você também pode usar If neste caso, mas você precisaria repetir a fórmula para cada partida possível.
Pode utilizar ambas as funções em fórmulas de comportamento para ramificar entre duas ou mais ações. Uma ramificação vai acionar uma ação. As condições e as correspondências são avaliadas por ordem e param se uma condição for verdadeira ou se for encontrada uma correspondência.
O espaço em branco é retornado se nenhuma condição for verdadeira, nenhuma correspondência for encontrada e você não especificar um resultado padrão.
Sintaxe
If( Condição, ThenResult [, DefaultResult ] )
If( Condição1, ThenResult1 [, Condição2, ThenResult2, ... [ , DefaultResult ] ] )
- Condições - Obrigatório. Fórmula(s) a testar como true. Normalmente, estas fórmulas contêm operadores de comparação (como <, > e =) e testam funções como IsBlank e IsEmpty.
- ThenResults - Obrigatório. O valor correspondente a devolver para uma condição que é avaliada como true.
- DefaultResult - Opcional. O valor a devolver se nenhuma condição for avaliada como true. If você não especifica esse argumento, em branco é retornado.
Switch( Fórmula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )
- Fórmula - Obrigatório. Fórmula a avaliar para correspondências. Esta fórmula é avaliada apenas uma vez.
- Jogos - Obrigatório. Valores a comparar com o resultado de Formula. If uma correspondência exata é encontrada, o resultado correspondente é retornado.
- Resultados - Obrigatório. O valor correspondente a devolver quando é encontrada uma correspondência exata.
- DefaultResult - Opcional. If uma correspondência exata não é encontrada, esse valor é retornado. If você não especifica esse argumento, em branco é retornado.
Exemplos
Valores nas fórmulas
Nos exemplos seguintes, um Slider (com o nome Slider1) tem o valor de 25.
| Fórmula | Descrição | Resultado |
|---|---|---|
| If( Slider1.Value = 25, "Resultado1" ) | A condição é true e é devolvido o resultado correspondente. | "Result1" |
| If( Slider1.Value = 25, "Resultado1", "Resultado2" ) | A condição é true e é devolvido o resultado correspondente. | "Result1" |
| If( Slider1.Value > 1000, "Resultado1" ) | A condição é false e não foi fornecido o DefaultResult. | em branco |
| If( Slider1.Value > 1000, "Resultado1", "Resultado2" ) | A condição é false, foi fornecido um DefaultResult e é devolvido. | "Result2" |
| If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) | A primeira condição é true e é devolvido o resultado correspondente. A segunda condição também é true, mas não é avaliada porque aparece mais adiante na lista de argumentos do que uma condição que é avaliada como true. | "Result1" |
| If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) | A primeira condição é false porque o controlo de deslize não está blank. A segunda condição é true porque o valor do controlo de deslize é um número e o resultado correspondente é devolvido. | "Result2" |
| If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") | A primeira e a segunda condições são false, foi fornecido um DefaultResult e é devolvido. | "Result3" |
| Switch( Slider1.Value, 25, "Resultado1" ) | O valor do controlo de deslize corresponde ao primeiro valor a ser verificado e o resultado correspondente é devolvido. | "Result1" |
| Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) | O valor do controlo de deslize corresponde ao segundo valor a ser verificado e o resultado correspondente é devolvido. | "Result2" |
| Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) | O valor do controlo de deslize não corresponde a nenhum valor a ser verificado. Foi fornecido um DefaultResult, pelo que é devolvido. | "DefaultResult" |
Ramificar fórmulas de comportamento
Nestes exemplos, um controlo de Text input com o nome NomePróprio tem escrito o valor "John".
| Fórmula | Descrição | Resultado |
|---|---|---|
| If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) | A condição é true, pelo que a função Navigate é executada. Pode utilizar a função IsBlank para testar se um campo de formulário necessário foi preenchido. If FirstName estivesse em branco, esta fórmula não teria efeito. |
verdadeiro O ecrã é alterado para Screen1. |
| If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | Sem o operador !, a condição é false, pelo que a função Navigate não é executada. A função Back foi fornecida como DefaultResult, pelo que é executada. |
verdadeiro O ecrã volta para o ecrã que estava a ser mostrado antes. |
| Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) | O valor de FirstName.Text é comparado a "Carlos", "Kirstin" e "John", por esta ordem. É encontrada uma correspondência com "John", pelo que a aplicação navega para Screen3. |
verdadeiro O ecrã é alterado para Screen3. |
Passo a passo
Adicione um controlo de Text input e dê-lhe o nome Text1, caso não tenha este nome por predefinição.
Em Text1, escreva 30.
Adicione um controlo Label e defina a respetiva propriedade Text para esta fórmula:
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )O controlo Label mostra Encomendar mais! porque o valor de Text1 é maior que 20, mas menor que 40.
Em Text1, escreva 15.
O controlo Label mostra Encomendar MUITO mais! porque o valor de Text1 é menor do que 20.
Em Text1, escreva 50.
O controlo Label mostra o valor que escreveu porque é superior a 40.