Comparteix via


If i Switch funcions

S'aplica a: Aplicacions de llenç Copilot Studio Fluxos d'escriptori Columnes de fórmules del Dataverse Aplicacions basades en models CLI del Power Platform Funcions del Dataverse Power Pages

Determina si alguna condició d'un conjunt és certa (If) o si el resultat d'una fórmula coincideix amb qualsevol valor d'un conjunt (Switch) i després retorna un resultat o executa una acció.

Descripció

La If funció prova una o més condicions fins que es troba un resultat real . If es troba aquest resultat, es retorna un valor corresponent. If No es troba cap resultat d'aquest tipus, es retorna un valor per defecte. En qualsevol cas, el valor retornat podria ser una cadena que es mostrarà, una fórmula que s'avaluarà o una altra forma de resultats.

La Switch funció avalua una fórmula i determina si el resultat coincideix amb algun valor d'una seqüència que especifiqueu. If es troba una coincidència, es retorna un valor corresponent. If no es troba cap coincidència, es retorna un valor per defecte. En qualsevol cas, el valor retornat podria ser una cadena que es mostrarà, una fórmula que s'avaluarà o una altra forma de resultats.

If i Switch són molt similars, però hauríeu d'utilitzar la millor funció per a la vostra situació:

  • S'utilitza If per avaluar una sola condició. La sintaxi més comuna per a aquesta funció és If( Condition, ThenResult, DefaultResult ), que proporciona el comú "si ... aleshores … altrament..." patró vist en altres eines de programació.
  • S'utilitza If per avaluar diverses condicions no relacionades. Al Power Apps (a diferència del Microsoft Excel), podeu especificar diverses condicions sense haver d'imbricar If fórmules.
  • S'utilitza Switch per avaluar una sola condició amb diverses coincidències possibles. També podeu utilitzar-lo If en aquest cas, però haureu de repetir la fórmula per a cada coincidència possible.

Podeu utilitzar totes dues funcions en fórmules de comportament per ramificar entre dues o més accions. Només una branca activarà una acció. Les condicions i les coincidències s'avaluen per ordre i s'aturen si una condició és true o si es troba una coincidència.

Es retorna Blank si no es compleix cap condició, no s'ha trobat cap coincidència i no s'especifica un resultat per defecte.

Sintaxi

If( Condició, ThenResult [, DefaultResult ] )
If( Condició1, LlavorsResultat1 [, Condició2, LlavorsResultat2, ... [ , ResultatPer defecte ] ] )

  • Condicions : obligatòries. Fórmules per provar si són true. Aquestes fórmules normalment contenen operadors de comparació, (com ara <, > i =) i tenen funcions de prova, com ara IsBlank i IsEmpty.
  • ThenResults - Obligatori. Valor corresponent que es tornarà per a una condició que s'avalua com a true.
  • DefaultResult : opcional. Valor que es tornarà si no s'avalua cap condició com a true. If No especifiqueu aquest argument, es retorna blank .

Switch( Fórmula, Match1, Result1 [, Match2, Result2, ... [, ResultatPer defecte ] ] )

  • Fórmula : obligatòria. Fórmula per avaluar si hi ha coincidències. Aquesta fórmula només s'avalua una vegada.
  • Coincidències : obligatòries. Valors que es comparen amb el resultat de la Fórmula. If es troba una coincidència exacta, es retorna el resultat corresponent.
  • Resultats - Obligatori. El valor corresponents es retornarà si es troba una coincidència exacta.
  • DefaultResult : opcional. If No es troba una coincidència exacta, es retorna aquest valor. If No especifiqueu aquest argument, es retorna blank .

Exemples

Valors en fórmules

Als exemples següents, un Control lliscant (anomenat Slider1) té un valor de 25.

Fórmula Descripció Resultat
If( Slider1.Value = 25, "Result1" ) La condició és true i el resultat corresponent es torna. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) La condició és true i el resultat corresponent es torna. "Result1"
If( Slider1.Value > 1000, "Result1" ) La condició és false i no s'ha proporcionat DefaultResult. Buit
If( Slider1.Value > 1000, "Result1", "Result2" ) La condició és false, s'ha proporcionat DefaultResult i s'ha retornat. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) La primera condició és true i el resultat corresponent es torna. La segona condició també és true, però no s'avalua perquè apareix més endavant a la llista d'arguments que una condició que s'avalua com a true. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) La primera condició és false perquè el control lliscant no està en blanc. La segona condició és true perquè el valor del control lliscant és un número i es torna el resultat corresponent. "Result2"
If( Slider1.Value > 1000, "Result1", Slider1.Value > 50, "Result2", "Result3") La primera i la segona condició són false, s'ha proporcionat DefaultResult i s'ha retornat. "Result3"
Switch( Slider1.Value, 25, "Result1" ) El valor del control lliscant coincideix amb el primer valor que s'ha de comprovar i es retornarà el resultat corresponent. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) El valor del control lliscant coincideix amb el segon valor que s'ha de comprovar i es retornarà el resultat corresponent. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) El valor del control lliscant no coincideix amb cap valor que s'hagi de comprovar. S'ha proporcionat DefaultResult, per la qual cosa es torna. "DefaultResult"

Ramificació en fórmules de comportament

En aquests exemples, un control Entrada de text anomenat FirstName té el valor "John" teclejat.

Fórmula Descripció Resultat
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) La condició és true, de manera que s'executa la funció Navigate. Podeu utilitzar la funció IsBlank per provar si un camp del formulari obligatori s'ha emplenat. If FirstName estigués en blanc, aquesta fórmula no tindria cap efecte. veritable

La pantalla es canvia a Screen1.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) Sense l'operador !, la condició és false, de manera que la funció Navigate no s'executa. La funció Back s'ha subministrat com a DefaultResult i, per tant, s'executa. veritable

Es torna a la pantalla que s'ha mostrat abans.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) El valor de FirstName.Text es compara amb "Carlos", "Kirstin" i "John" en aquest ordre. Una coincidència es troba amb "John", de manera que l'aplicació navega a Screen3. veritable

La pantalla es canvia a Screen3.

Pas a pas

  1. Afegiu un control Entrada de text i anomeneu-lo Text1 si no té aquest nom per defecte.

  2. A Text1, escriviu 30.

  3. Afegiu un control Label i definiu-ne la propietat Text en aquesta fórmula:
    If( Value(Text1.Text) < 20, "Demana MOLTS més!", Value(Text1.Text) < 40, "Demana més!", Text1.Text )

    El control Label mostra Més comandes! perquè el valor de Text1 és superior a 20 però inferior a 40.

  4. A Text1, escriviu 15.

    El control Label mostra MOLTES més comandes! perquè el valor de Text1 és inferior a 20.

  5. A Text1, escriviu 50.

    El control Etiqueta mostra el valor que heu escrit perquè és superior a 40.