Compartir por


Funcións If e Switch

Aplícase a: Aplicacións de lenzo Dataverse columnas de fórmulas Fluxos de escritorio Aplicacións baseadas en modelos Power Pages Power Platform CLI

Determina se algunha condición dun conxunto é verdadeira (If) ou o resultado dunha fórmula coincide con calquera valor dun conxunto (Switch) e logo devolve un resultado ou executa unha acción.

Descripción

A función If proba unha ou varias condicións ata atopar un resultado verdadeiro. Se se atopa tal resultado, devolverase un valor correspondente. Se se atopa tal resultado, devolverase un valor predeterminado. En calquera dos dous casos, o valor devolto pode ser unha cadea para mostrar, unha fórmula para avaliar ou outra forma de resultado.

A función Switch avalía unha fórmula e determina se o resultado coincide con algún valor nunha secuencia que especifique. Se se atopa unha coincidencia, devolverase un valor correspondente. Se non se atopa unha coincidencia, devolverase un valor predeterminado. En calquera dos dous casos, o valor devolto pode ser unha cadea para mostrar, unha fórmula para avaliar ou outra forma de resultado.

If e Switch son moi similares, pero debe usar a mellor función para a súa situación:

  • Use If para avaliar unha condición única. A sintaxe máis común para esta función é Se( Condición, ThenResult, DefaultResult ), que proporciona o común "se... entón... else..." patrón visto noutras ferramentas de programación.
  • Use If para avaliar múltiples condicións non relacionadas. En Power Apps (a diferenza de Microsoft Excel), pode especificar múltiples condicións sen ter que aniñar fórmulas If.
  • Use Switch para avaliar unha condición única fronte a múltiples posibles coincidencias. Tamén podes usar If neste caso, pero tería que repetir a fórmula para cada coincidencia posible.

Pode usar ambas funcións en fórmulas de comportamento para ramificar entre dúas ou máis accións. Só unha rama desencadeará unha acción. As condicións e as coincidencias avalíanse en orde e detéñense se unha condición é verdadeira ou se atopa unha coincidencia.

En branco devólvese se non hai condicións verdadeiras, non se atopan coincidencias e non especifica un resultado predeterminado.

Sintaxe

If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Condition(s) - Obrigatorio. Fórmula(s) para comprobar se hai valores verdadeiros. Estas fórmulas comunmente conteñen operadores de comparación (como <, > e =) e proban funcións como IsBlank e IsEmpty.
  • ThenResult(s) - Obrigatorio. O valor correspondente que devolver para unha condición que se avalía como verdadeira.
  • DefaultResult - Opcional. O valor que devolver se non se avalía ningunha condición como verdadeira. Se non especifica este argumento, en branco é devolto.

Switch( Formula, Match1, Result1 [, Match2, Result2, ... [, DefaultResult ] ] )

  • Formula - Obrigatorio. Fórmula para avaliar as coincidencias. Esta fórmula avalíase só unha vez.
  • Match(s) - Obrigatorio. Valores para comparar co resultado da Fórmula. Se se atopa unha coincidencia exacta, o correspondente Resultado é devolto.
  • Result(s) - Obrigatorio. O correspondente para devolver cando se atopa unha coincidencia exacta.
  • DefaultResult - Opcional. Se non se atopa unha coincidencia exacta, devólvese este valor. Se non especifica este argumento, en branco é devolto.

Exemplos

Valores nas fórmulas

Nos exemplos seguintes, un control de Barra de desprazamento (nomeado Slider1) ten un valor de 25.

Fórmula Descripción Resultado
If( Slider1.Value = 25, "Result1" ) A condición é verdadeira e devólvese o resultado correspondente. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) A condición é verdadeira e devólvese o resultado correspondente. "Result1"
If( Slider1.Value>1000, "Result1" ) A condición é falsa, e non se proporcionou un DefaultResult. blank
If( Slider1.Value>1000, "Result1", "Result2" ) A condición é falsa, proporcionouse un DefaultResult e devólvese. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) A primeira condición é verdadeira e devólvese o resultado correspondente. A segunda condición tamén é verdadeira, pero non se avalía porque aparece máis tarde na lista de argumentos que unha condición que se avalía como verdadeira. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) A primeira condición é falsa porque a barra de desprazamento non está en branco. A segunda condición é verdadeira porque o valor da barra de desprazamento é un número e devólvese o resultado correspondente. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") As condicións primeira e segunda son falsas, proporcionouse un DefaultResult e devólvese. "Result3"
Switch( Slider1.Value, 25, "Result1" ) O valor da barra de desprazamento coincide co primeiro valor que se comproba e devólvese o resultado correspondente. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) O valor da barra de desprazamento coincide co segundo valor que se comproba e devólvese o resultado correspondente. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) O valor da barra de desprazamento non coincide con ningún valor que se comproba. Un DefaultResult proporcionouse, polo que se devolveu. "DefaultResult"

Ramificación en fórmulas de comportamento

Nestes exemplos, un control de Entrada de texto nomeado FirstName ten o valor "John" escrito nel.

Fórmula Descripción Resultado
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) A condición é verdadeira, así que a función Navigate execútase. Podes usar a función IsBlank para probar se foi cuberto un campo de formulario requirido. Se FirstName estivese blank, esta fórmula non tería efecto. true

A pantalla cambia a Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Sen o operador !, a condición é false, polo que a función Navegar non se executa. A función Back proporcionouse como DefaultResult, polo que se excuta. true

A pantalla volve á pantalla que se amosaba anteriormente.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) O valor de FirstName.Text compárase con "Carlos", "Kirstin" e "John" por esta orde. Atópase unha coincidencia con "John", así que a aplicación navega ata Screen3. true

A pantalla cambia a Screen3.

Paso a paso

  1. Engada un control de Entrada de texto e noméeo Text1 se non ten ese nome por defecto.

  2. En Text1, escriba 30.

  3. Engada un control Label e configure a súa propiedade Texto nesta fórmula:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    O control Etiqueta amosa Pedir máis! porque o valor de Texto1 é máis de 20 pero menos de 40.

  4. En Text1, escriba 15.

    O control Etiqueta amosa Pedir MOITOS máis! porque o valor de Texto1 é menos de 20.

  5. En Text1, escriba 50.

    O control de Etiqueta mostra o valor que escribiu porque é superior a 40.