Funktionerna Blank, Coalesce, IsBlank och IsEmpty

Gäller: Arbetsyteappar Datorflöden Dataverse formelkolumner Modellbaserade appar Power Platform CLI

Testar om ett värde är blank eller en tabell inte innehåller poster och ger ett sätt att skapa blank värden.

Översikt

Blank är en platshållare för "inget värde" eller "okänt värde." Till exempel Combo box kontrollen Selected egenskap är blank om användaren inte har gjort någon markering. Många datakällor kan lagra och returnera NULL-värden som representeras i Power Apps som blank.

En egenskap eller ett beräknat värde i Power Apps kan vara blank. Till exempel har ett booleskt värde vanligtvis ett av två värden: true eller false. Förutom de här två kan de också vara blank och ange att tillståndet inte är känt. Detta liknar Microsoft Excel, där en cell i kalkylbladet börjar som tom utan innehåll men kan lagra värdena TRUE eller FALSE, bland annat. Innehållet i cellen kan rensas igen och gå tillbaka till ett blankt tillstånd.

Tom sträng refererar till en sträng som inte innehåller några tecken. Funktionen Len returnerar noll för en sådan sträng och kan skrivas i formler som två dubbla citattecken utan att det finns någonting mellan "". För vissa kontroller och datakällor används en tom sträng för att ange villkoret "inget värde". För att förenkla programmet att skapa funktionstester IsBlank och Coalesce för både blank värden eller tomma strängar.

I samband med funktionen IsEmpty är blank specifikt för tabeller som inte innehåller några poster. Tabellstrukturen kan vara orörd, med kolumnnamn, men inga data finns i tabellen. En tabell kan starta som tom, få poster och inte längre vara tom och posterna kan tas bort och den är tom igen.

Kommentar

Vi arbetar under en övergångsperiod. Tills nu har blankt även använts för att rapportera fel och det går inte att särskilja ett giltigt "nej-värde" från ett fel. Därför stöds lagring av blank värden endast för lokala samlingar. Du kan lagra tomma värden i andra datakällor om du aktiverar experimentell funktion för felhantering på formelnivå under Inställningar>Kommande funktioner, >experimentell. Vi arbetar aktivt för att slutföra den här funktionen och slutföra en korrekt separation av blank värden från fel.

Tom

Gäller: Arbetsyteappar Modellbaserade program Dataverse formelkolumner

Funktionen Blank returnerar ett tom-värde. Används för att lagra ett nullvärde i en datakälla som har stöd för dessa värden, vilket tar bort ett värde från fältet.

IsBlank

Gäller: Arbetsyteappar Modellbaserade program

Funktionen IsBlank testar för ett blank värde eller en tom sträng. Testet innehåller tomma strängar som gör det lättare att skapa program eftersom vissa data källor och kontroller använder en tom sträng när det inte finns något värde. För att testa specifikt för en blank värdes använd if( Value = Blank(), ... i stället för IsBlank. Funktionen IsBlank betraktar tomma tabeller som "icke tomma", och IsEmpty bör användas för att testa en tabell.

När du aktiverar felhantering för befintliga program bör du överväga att byta ut IsBlank med IsBlankOrError för att bevara befintligt appbeteende. Innan felhanteringen lades till användes ett tomt för att representera både null-värden från databaser och felvärden. Felhantering skiljer dessa två tolkningar av tomt vilket kan ändra funktionen för befintliga program som fortsätter att använda IsBlank.

Returvärdet för IsBlank är ett booleskt värde true eller false.

Coalesce

Gäller: Arbetsyteappar Modellbaserade program

Funktionen Coalesce utvärderar argumenten i ordning och returnerar det första värdet som inte är blank eller en tom sträng. Använd den här funktionen om du vill ersätta ett blank-värde eller en tom sträng med ett annat värde, men lämna icke blank och icke-tomma strängvärden oförändrade. Om alla argument är tomma eller tomma strängar returneras tomma, vilket gör Coalesce till ett bra sätt att konvertera tomma strängar till tomma värden.

Coalesce( value1, value2 ) är den mer koncisa motsvarigheten till If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) och kräver inte value1 och value2 för att kunna utvärderas två gånger. Funktionen If returnerar blank om det inte finns någon "else"-formel som är fallet här.

Alla argument för Coalesce måste vara av samma typ, t.ex, du kan inte blanda siffror med textsträngar. Returvärdet från Coalesce är av den här vanliga typen.

IsEmpty

Gäller: Arbetsyteappar Modellbaserade program

Funktionen IsEmpty testar om en tabell innehåller alla poster. Den motsvarar användning av funktionen CountRows och söker efter noll. Du kan använda IsEmpty för att söka efter fel för datakällan genom att kombinera den med funktionen Errors.

Returvärdet för IsEmpty är ett booleskt värde true eller false.

Syntax

Blank()

Coalesce( Value1 [, Value2, ... ] )

  • Value(s) – obligatoriskt. Värden att testa. Varje värde utvärderas i ordning tills ett värde som inte är blank och inte en tom sträng hittas. Värden efter den här punkten utvärderas inte.

IsBlank( Value )

  • Value – Krävs. Värdet för att testa ett blank värde eller en tom sträng.

IsEmpty( Table )

  • Table – krävs. Tabell som ska testas för poster.

Exempel

Tom

Kommentar

Just nu fungerar följande exempel endast för lokala samlingar. Du kan lagra tomma värden i andra datakällor om du aktiverar experimentell funktion för felhantering på formelnivå under Inställningar>Kommande funktioner, >experimentell. Vi arbetar aktivt för att slutföra den här funktionen och slutföra en separation av blank värden från fel.

  1. Skapa ett program från början och lägg till en Button-kontroll.

  2. Ställ in knprogrammets egenskap OnSelect enligt den här formeln:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Förhandsgranska ditt program, klicka eller tryck på knappen som du har lagt till och stäng Förhandsgranskning.

  4. Klicka eller tryck på Samlingar i Arkiv-menyn.

    Samlingen Cities visas med en post med "Seattle" och "Rainy":

    Samling som visar Seattle med regnigt väder.

  5. Klicka eller tryck på bakåtpilen för att återgå till standardarbetsytan.

  6. Lägg till kontrollen Label och ange egenskapen Text till följande formel:

    IsBlank( First( Cities ).Weather )
    

    Etiketten visar false eftersom fältet Weather innehåller ett värde ("Rainy").

  7. Lägg till en knapp till och ge dess egenskap OnSelect följande formel:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Förhandsgranska ditt program, klicka eller tryck på knappen som du har lagt till och stäng Förhandsgranskning.

    Fältet Weather i den första posten i Cities ersätts med blank, vilket tar bort "Rainy" som fanns där tidigare.

    Samling som visar Seattle med ett tomt väderfält.

    Etiketten visar true eftersom fältet Weather inte längre innehåller ett värde.

Coalesce

Formel Beskrivning Resultat
Coalesce( Blank(), 1 ) Testar returvärde från funktionen Blank som returnerar alltid ett blank värde. Eftersom det första argumentet är blank fortsätter utvärderingen med nästa argument tills ett värde som inte är blank hittas och icke-tom sträng. 1
Coalesce( "", "2" ) Testar det första argumentet som är en tom sträng. Eftersom det första argumentet är en tom sträng fortsätter utvärderingen med nästa argument tills ett värde som inte är blank hittas och icke-tom sträng. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Coalesce startar i början av argumentlistan och utvärderar varje argument i tur och ordning tills ett värde som inte är blank och en icke-tom sträng hittas. I så fall returnerar de fyra första argumenten blank eller icke-tom sträng så utvärdering fortsätter att femte argumentet. Det femte argumentet är icke blank och en sträng som inte är tom så utvärderingen slutar nu. Värdet för det femte argumentet returneras och det sjätte argumentet utvärderas inte. 3
Coalesce( "" ) Testar det första argumentet som är en tom sträng. Eftersom det första argumentet är en tom sträng och det inte finns några fler argument returneras funktionen blank. blank

IsBlank

  1. Skapa ett program från grunden, lägg till en Text Input-kontroll och döp till FirstName.

  2. Lägg till en etikett och ange egenskapen Text till följande formel:

    If( IsBlank( FirstName.Text ), "First Name is a required field." )
    

    Som standard anges egenskapen Text för en Text Input-kontroll till "Text Input". Eftersom egenskapen innehåller ett värde är den inte tom och etikettskontrollen visar inte några meddelanden.

  3. Ta bort alla tecken från Text Input-kontrollen, inklusive blanksteg.

    Eftersom egenskapen Text inte längre innehåller några tecken, kommer den att vara en tom sträng och IsBlank( FirstName.Text ) är true. Obligatoriskt fältmeddelandet visas.

Information om hur du utför verifiering genom att använda andra verktyg finns i funktionen Validate och Arbeta med datakällor.

Andra exempel:

Formel Beskrivning Resultat
IsBlank( Blank() ) Testar returvärde från funktionen Blank som returnerar alltid ett blank värde. true
IsBlank( "" ) En sträng som inte innehåller några tecken. true
IsBlank ("Hello") En sträng som innehåller ett eller flera tecken. false
IsBlank( AnyCollection ) Eftersom samlingen finns, är den inte tom, även om den inte innehåller några poster. Om du vill söka efter en tom samling använd IsEmpty i stället. false
IsBlank( Mid( "Hello", 17, 2 ) ) Det första tecknet för Mid är utanför slutet av strängen. Resultatet är en tom sträng. true
IsBlank( If( false, false ) ) En funktion If utan ElseResult. Eftersom villkoret alltid är false, returnerar detta If alltid blank. true

IsEmpty

  1. Skapa ett program från början och lägg till en Button kontroll.

  2. Ställ in knprogrammets egenskap OnSelect enligt den här formeln:

    Collect( IceCream , { Flavor: "Strawberry", Quantity: 300 }, { Flavor: "Chocolate", Quantity: 100 } )

  3. Förhandsgranska ditt program, klicka eller tryck på knappen som du har lagt till och stäng Förhandsgranskning.

    En samling som heter IceCream skapas och innehåller dessa data:

    Ett bord med jordgubbs- och chokladsmaker med kvantitet 300 och 100.

    Den här samlingen har två poster och är inte tom. IsEmpty (IceCream) returnerar false, och CountRows (IceCream) returnerar 2.

  4. Lägg till en knapp till och ge dess egenskap OnSelect följande formel:

    Clear( IceCream )

  5. Förhandsgranska din app, klicka eller tryck på knappen som du har lagt till och stäng Förhandsgranskning.

    Samlingen är nu tom:

    En samling med smak och kvantitet som tom samling.

    Funktionen Clear tar bort alla poster från en samling, vilket resulterar i en tom samling. IsEmpty (IceCream) returnerar true, och CountRows (IceCream) returnerar 0.

Du kan också använda IsEmpty för att testa om en beräknad tabell är tomt, alltså:

Formel Beskrivning Resultat
IsEmpty( [ 1, 2, 3 ] ) Tabellen med en kolumn innehåller tre poster och är därför inte tom. false
IsEmpty( [ ] ) Tabellen med en kolumn innehåller inte några poster och är tom. true
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) Tabellen med en kolumn innehåller inte några värden som är större än 5. Resultatet från filtret innehåller inte några poster och är tomt. true