Compartilhar via


If e Switch funções

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

  1. Adicione um controle Text input e nomeie-o Text1 caso ele não tenha esse nome por padrão.

  2. Em Text1, digite 30.

  3. 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.

  4. Em Text1, digite 15.

    O controle Label mostra Order MANY more!, porque o valor de Text1 é menor que 20.

  5. Em Text1, digite 50.

    O controle Label mostra o valor digitado, pois ele é maior do que 40.