Funktionerne Blank, Coalesce, IsBlank og IsEmpty i Power Apps

Undersøger, om en værdi er tom, eller en tabel ikke indeholder nogen poster, og gør det muligt at oprette tom værdier.

Oversigt

Blank er en pladsholder for "ingen værdi" eller "ukendt værdi". Egenskaben Selected for et Kombinationsboks-kontrolelement er f.eks. tom, hvis brugeren ikke har foretaget en markering. Mange datakilder kan lagre og returnere NULL-værdier, hvilket gengives i Power Apps som tom.

Alle egenskaber eller beregnede værdier i Power Apps kan være tom. En boolesk værdi har f.eks. normalt en af to værdier: sand eller falsk. Ud over disse to kan det også være tom, der angiver, at tilstanden ikke er kendt. Dette svarer til Microsoft Excel, hvor en celle i et regneark til at starte med er tom, men bl.a. kan indeholde værdierne TRUE eller FALSE. Indholdet i cellen kan når som helst ryddes, så vender det tilbage til tilstanden tom.

Tom streng refererer til en streng, der ikke indeholder nogen tegn. Funktionen Len returnerer nul for en sådan streng, og den kan skrives i formler som to dobbelte anførselstegn uden noget imellem "". I visse kontrolelementer og datakilder bruges en tom streng til at angive betingelsen "no value". Funktionerne IsBlank og Coalesce tester for tomme værdier eller tomme strenge for at gøre det nemmere at oprette apps.

I forbindelse med funktionen IsEmpty er empty specifik for tabeller, der ikke indeholder poster. Tabelstrukturen kan være intakt og komplet med kolonnenavne, men der er ingen data i tabellen. En tabel kan starte med at være tom, hvorefter der indhentes poster, og så er den ikke tom længere. Derefter kan posterne fjernes, og den er tom igen.

Bemærk

Vi arbejder i en overgangsperiode. Indtil nu har tom også været brugt til at rapportere fejl, hvilket gør det umuligt at skelne mellem en gyldig "ingen værdi" fra en fejl. Derfor understøttes lagring af tomme værdier i øjeblikket kun for lokale samlinger. Du kan gemme tomme værdier i andre datakilder, hvis du slår eksperimentalfunktionen Fejlhåndtering på formelniveau til under Filer > Indstillinger > Kommende funktioner > Eksperimental. Vi arbejder aktivt på at afslutte denne funktion og fuldføre den rette adskillelse af tomme værdier fra fejlene.

Tom

Funktionen Blank returnerer en tom værdi. Brug denne funktion til at lagre en NULL-værdi i en datakilde, der understøtter disse værdier, hvorved enhver værdi fjernes fra feltet.

IsBlank

Funktionen IsBlank tester for en tom værdi eller en tom streng. Testen inkluderer tomme strenge til at lette oprettelse af apps, da visse datakilder og kontrolelementer bruger en tom streng, når der ikke findes en værdi. Hvis du vil teste specifikt for en tom værdi, skal du bruge if( Value = Blank(), ... i stedet for IsBlank.

Når du aktiverer fejlhåndtering for eksisterende apps, kan du overveje at erstatte IsBlank med IsBlankOrError for at bevare den eksisterende appfunktionsmåde. Før fejlhåndteringen blev tilføjet, blev der brugt en tom værdi til at repræsentere både null-værdier fra databaser og fejlværdier. Fejlhåndtering adskiller disse to fortolkninger af tom, hvilket kan ændre funktionsmåden for eksisterende apps, der fortsætter med at bruge IsBlank.

Returværdien for IsBlank er boolesk sand eller falsk.

Coalesce

Funktionen Coalesce evaluerer argumenterne i rækkefølge og returnerer den første værdi, der ikke er tom eller en tom streng. Brug denne funktion til at erstatte en tomme værdi eller en tom streng med en anden værdi, men lade strengværdier, der ikke er tomme, og som ikke er tomme, være uændrede. Hvis alle argumenterne er tomme eller tomme strenge, returnerer funktionen blank, hvilket gør Coalesce til en god måde at konvertere tomme strenge til tomme værdier på.

Coalesce( value1, value2 ) er den mere koncise ækvivalent af If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) og kræver ikke værdi1 og værdi2 til at blive evalueret to gange. Funktionen If returnerer tom, hvis der ikke findes en "Else"-formel, som det er tilfældet her.

Alle argumenter for Coalesce skal være af samme type, du kan f.eks. ikke blande tal med tekststrenge. Returværdien fra Coalesce er af denne almindelige type.

IsEmpty

Funktionen IsEmpty undersøger, om en tabel indeholder poster. Det svarer til at bruge funktionen CountRows og kontrollere efter nul. Du kan søge efter fejl i datakilder ved at kombinere funktionen IsEmpty med funktionen Errors.

Returværdien for IsEmpty er boolesk sand eller falsk.

Syntaks

Blank()

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

  • Value(s) – påkrævet. Værdier, der skal undersøges. De enkelte værdier evalueres i rækkefølge, indtil der findes en værdi, der ikke er tom, og der blev ikke fundet en tom streng. Værdier, der er efter dette punkt, evalueres ikke.

IsBlank( Value )

  • Value – påkrævet. Værdi, der skal testes som en tom værdi eller en tom streng.

IsEmpty( Table )

  • Table – påkrævet. Tabel, der skal undersøges for poster.

Eksempler

Blank

Bemærk

I øjeblikket fungerer følgende eksempel kun for lokale samlinger. Du kan gemme tomme værdier i andre datakilder, hvis du slår eksperimentalfunktionen Fejlhåndtering på formelniveau til under Filer > Indstillinger > Kommende funktioner > Eksperimental. Vi arbejder aktivt på at afslutte denne funktion og fuldføre den rigtige adskillelse af tomme værdier fra fejlene.

  1. Opret en app fra bunden, og tilføj et Button-kontrolelement.

  2. Angiv knappens egenskab OnSelect til denne formel:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Gennemse din app, klik eller tryk på den knap, du har tilføjet, og luk derefter Forhåndsvisning.

  4. Klik eller tryk på Samlinger i menuen Filer.

    Samlingen Cities vises, hvor der står "Seattle" og "Rainy" for én post:

    Samling, der viser Seattle med vejret "Rainy".

  5. Klik eller tryk på pilen Tilbage for at vende tilbage til standardarbejdsområdet.

  6. Tilføj et Label-kontrolelement, og indstil dets Text-egenskab til denne formel:

    IsBlank( First( Cities ).Weather )
    

    Etiketten-viser falsk, da feltet Weather indeholder en værdi ("Rainy").

  7. Tilføj endnu en knap, og indstil dens OnSelect-egenskab til denne formel:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Gennemse din app, klik eller tryk på den knap, du har tilføjet, og luk derefter Forhåndsvisning.

    Feltet Weather i den første post i Cities erstattes med en tom, hvilket fjerner "Rainy", som var der tidligere.

    Samling, der viser Seattle med et tomt Weather-felt.

    Etiketten viser sand, da feltet Weather ikke længere indeholder en værdi.

Coalesce

Formel Beskrivelse Resultat
Coalesce( Blank(), 1 ) Tester returværdien fra funktionen Blank, som altid returnerer en tom værdi. Da det første argument er tom, fortsætter evalueringen med det næste argument, indtil der findes en værdi, som ikke er tom, og en streng, der ikke er tom. 1
Coalesce( "", "2" ) Tester det første argument, som er en tom streng. Da det første argument er en tom streng, fortsætter evalueringen med det næste argument, indtil der findes en værdi, som ikke er tom, og en streng, der ikke er tom. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Coalesce starter i begyndelsen af argumentlisten og evaluerer hvert argument skiftevist, indtil der findes en værdi, som ikke tom, eller en streng, der ikke er tom. I dette tilfælde returnerer de første fire argumenter alle tom eller en tom streng, så evalueringen fortsætter til det femte argument. Det femte argument er ikke tom og en streng, som ikke er tom, så evalueringen stopper her. Værdien af det femte argument returneres, og det sjette argument evalueres ikke. 3
Coalesce( "" ) Tester det første argument, som er en tom streng. Da det første argument er en tom streng, og der ikke er flere argumenter, returnerer funktionen tom. tom

IsBlank

  1. Opret en app fra bunden, tilføj et tekstinputkontrolelement, og navngiv det FirstName.

  2. Tilføj et etiket, og angiv dens egenskab Text til denne formel:

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

    Som standard er Text-egenskaben af et tekstinputkontrolelement fastsat til "Text input". Da egenskaben indeholder en værdi, er den ikke tom, og der vises ikke nogen meddelelse på etiketten.

  3. Fjern alle tegn fra kontrolelementet tekstinput, herunder mellemrum.

    Da egenskaben Text ikke længere indeholde nogen tegn, er den en tom streng, og IsBlank( FirstName.Text ) er sand. Det påkrævede meddelelsesfelt vises.

Du kan få oplysninger om, hvordan du udfører validering ved hjælp af andre værktøjer, under funktionen Validate og arbejde med datakilder.

Andre eksempler:

Formel Beskrivelse Resultat
IsBlank( Blank() ) Tester returværdien fra funktionen Blank, som altid returnerer en tom værdi. true
IsBlank( "" ) En streng, der ikke indeholder nogen tegn. true
IsBlank( "Hello" ) En streng, der indeholder et eller flere tegn. false
IsBlank( AnyCollection ) Da samlingen findes, er den ikke tom, selvom den ikke indeholder nogen poster. Hvis du vil undersøge, om der er en tom samling, skal du i stedet bruge IsEmpty. false
IsBlank( Mid( "Hello", 17, 2 ) ) Det første tegn for Mid er efter slutningen af strengen. Resultatet er en tom streng. true
IsBlank( If( false, false ) ) En If-funktion uden ElseResult. Da betingelsen altid er falsk, returnere denne If-funktion altid tom. true

IsEmpty

  1. Opret en app fra bunden, og tilføj et Button-kontrolelement.

  2. Angiv knappens egenskab OnSelect til denne formel:

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

  3. Gennemse din app, klik eller tryk på den knap, du har tilføjet, og luk derefter Forhåndsvisning.

    En samling med navnet IceCream oprettes og indeholder disse data:

    En tabel over smagstyperne Strawberry og Chocolate med mængderne 300 og 100.

    Samlingen har to poster og er ikke tom. IsEmpty( IceCream ) returnerer falsk, og CountRows( IceCream ) returnerer 2.

  4. Tilføj endnu en knap, og indstil dens OnSelect-egenskab til denne formel:

    Clear( IceCream )

  5. Gennemse din app, klik eller tryk på den anden knap, og luk derefter Forhåndsvisning.

    Samlingen er nu tom:

    En samling med smag og mængde som tom samling.

    Funktionen Clear fjerner alle poster fra en samling, hvilket resulterer i en tom samling. IsEmpty( IceCream ) returnerer sand, og CountRows( IceCream ) returnerer 0.

Du kan også bruge IsEmpty til at undersøge, om en beregnet tabel er tom, som disse eksempler viser:

Formel Beskrivelse Resultat
IsEmpty( [ 1, 2, 3 ] ) Tabellen med en enkelt kolonne indeholder tre poster og er derfor ikke tom. false
IsEmpty( [ ] ) Tabellen med en enkelt kolonne indeholder ingen poste og er tom. true
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) Tabellen med en enkelt kolonne indeholder ingen værdier, der er større end 5. Resultatet af filteret indeholder ingen poster og er tomt. true