Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Aplicativos de
tela O Copilot Studio
Desktop flui colunas
de fórmula do Dataverse para aplicativos controlados
por modelos
do Power Platform CLI
Dataverse functions
Power Pages
Determina se qualquer condição em um conjunto é verdadeira (If) ou o resultado de uma fórmula corresponde a qualquer valor em um conjunto (Switch) e 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 desse tipo é encontrado, um valor padrão é retornado. Em ambos os casos, o valor retornado pode ser uma cadeia de caracteres para mostrar, uma fórmula para avaliar ou outra forma de 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 retornado pode ser uma cadeia de caracteres para mostrar, uma fórmula para avaliar ou outra forma de resultado.
If e Switch são muito semelhantes, mas você deve usar a melhor função para sua situação:
- Use If para avaliar uma única condição. A sintaxe mais comum para essa função é If( Condition, ThenResult, DefaultResult ), que fornece o comum "if ... depois... else …" visto em outras 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 nesse caso, mas precisará repetir a fórmula para cada correspondência possível.
É possível usar ambas as funções em fórmulas de comportamento para o branch entre duas ou mais ações. Apenas um branch disparará uma ação. Condições e correspondências são avaliadas em ordem e param se uma condição for true ou se uma correspondência for encontrada.
Blank é 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( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )
- Condições - Obrigatório. Fórmulas a serem testadas para true. Normalmente, essas fórmulas contêm operadores de comparações (como <, >, e =) e funções de teste como IsBlank e IsEmpty.
- ThenResults - Obrigatório. O valor correspondente para retornar uma condição que é avaliada como verdadeira.
- DefaultResult - Opcional. Valor a ser retornado se nenhuma das condições for avaliada como true. If você não especifica esse argumento, em branco é retornado.
Switch( Fórmula, Correspondência1, Resultado1 [, Match2, Resultado2, ... [, DefaultResult ] ] )
- Fórmula - Obrigatório. Fórmula a ser avaliada para correspondências. Essa fórmula é avaliada apenas uma vez.
- Correspondências - Obrigatório. Valores a serem comparados com o resultado de Formula. If uma correspondência exata é encontrada, o resultado correspondente é retornado.
- Resultados - Obrigatório. O valor correspondente a ser retornado quando uma correspondência exata for encontrada.
- DefaultResult - Opcional. If uma correspondência exata não foi encontrada, esse valor é retornado. If você não especifica esse argumento, em branco é retornado.
Exemplos
Valores em fórmulas
Nos exemplos a seguir, um controle Slider (chamado Slider1) tem um valor de 25.
| Fórmula | Descrição | Result |
|---|---|---|
| If( Slider1.Value = 25, "Result1" ) | A condição é verdadeira e o resultado correspondente é retornado. | "Resultado1" |
| If( Slider1.Value = 25, "Result1", "Result2" ) | A condição é verdadeira e o resultado correspondente é retornado. | "Resultado1" |
| If( Slider1.Value > 1000, "Result1" ) | A condição é false e não é fornecido nenhum DefaultResult. | em branco |
| If( Slider1.Value > 1000, "Result1", "Result2" ) | A condição é false, um DefaultResult foi fornecido e retornado. | "Resultado2" |
| If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) | A primeira condição é true e o resultado correspondente é retornado. A segunda condição é também true, mas não é avaliada, porque aparece na lista de argumentos depois de uma condição ter sido avaliada como true. | "Resultado1" |
| If( IsBlank( Slider1.Value), "Result1", IsNumeric( Slider1.Value ), "Result2" ) | A primeira condição é false, porque o controle deslizante não está em branco. A segunda condição é true porque o valor do controle deslizante é um número e o resultado correspondente será retornado. | "Resultado2" |
| If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") | A primeira e segunda condições são false e o DefaultResult foi fornecido e retornado. | "Resultado3" |
| Switch( Slider1.Value, 25, "Result1" ) | O valor do controle deslizante corresponde ao primeiro valor a ser verificado e o resultado correspondente é retornado. | "Resultado1" |
| Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) | O valor do controle deslizante corresponde ao segundo valor a ser verificado e o resultado correspondente é retornado. | "Resultado2" |
| Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) | O valor do controle deslizante não corresponde a qualquer valor a ser verificado. Um DefaultResult foi fornecido, portanto, será retornado. | "DefaultResult" |
Ramificação em fórmulas de comportamento
Nos exemplos a seguir, um controle Text input chamado FirstName tem o valor “John” digitado nele.
| Fórmula | Descrição | Result |
|---|---|---|
| If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) | A condição é true, então a função Navigate é executada. Você pode usar a função IsBlank para testar se um campo de formulário obrigatório foi preenchido. If FirstName estava em branco, esta fórmula não teria efeito. |
verdadeiro A exibição é alterada para Screen1. |
| If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) | Sem o operador !, a condição é false e a função Navigate não é executada. A função Back foi fornecida como DefaultResult, então, será executada. |
verdadeiro A exibição volta para a tela que estava em exibição anteriormente. |
| Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None), "Kirstin", Navigate( Screen2, ScreenTransition.None), "John", Navigate( Screen3, ScreenTransition.None ) | O valor de FirstName.Text é comparado com "Carlos", "Kirstin" e "John", nessa ordem. Uma correspondência é encontrada para "John", então o aplicativo navega para Screen3. |
verdadeiro A exibição é alterada para Screen3. |
Passo a passo
Adicione um controle Text input e nomeie-o Text1 caso ele não tenha esse nome por padrão.
Em Text1, digite 30.
Adicione um controle de Label e defina sua propriedade Texto para esta fórmula:
If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )O controle Label mostra Order more!, porque o valor de Text1 é maior que 20, mas menor que 40.
Em Text1, digite 15.
O controle Label mostra Order MANY more!, porque o valor de Text1 é menor que 20.
Em Text1, digite 50.
O controle Label mostra o valor digitado, pois ele é maior do que 40.