Funktionerne Blank, Coalesce, IsBlank og IsEmpty
Gælder for: Lærredapps Formelkolonner Dataverse for skrivebordsflow Modelbaserede apps Power Pages Power Platform CLI
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
Tom er en pladsholder for "ingen værdi" eller "ukendt værdi". Egenskaben ... Valgt er f.eks. tom , hvis brugeren ikke har foretaget et valg. 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 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 funktionen Eksperimental formelniveau til fejlstyring under 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
Gælder for: Lærredapps Formelkolonner for modelbaserede apps Dataverse
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
Gælder for: Lærredapps Modelbaserede apps
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. Funktionen IsBlank overvejer tomme tabeller som ikke tomme, og IsEmpty skal bruges til at teste en tabel.
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
Gælder for: Lærredapps Modelbaserede apps
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 kortfattede ækvivalent til If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 )
og kræver ikke, at værdi1 og værdi2 evalueres 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
Gælder for: Lærredapps Modelbaserede apps
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( Værdi1 [; Værdi2;... ] )
- Værdier – 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( Værdi )
- Værdi – Påkrævet. Værdi, der skal testes som en tom værdi eller en tom streng.
IsEmpty( Tabel )
- Tabel - Påkrævet. Tabel, der skal undersøges for poster.
Eksempler
Tom
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 funktionen Eksperimental formelniveau til fejlstyring under Indstillinger>Kommende funktioner>Eksperimental. Vi arbejder aktivt på at afslutte denne funktion og fuldføre den rigtige adskillelse af tomme værdier fra fejlene.
Opret en app fra bunden, og tilføj et Button-kontrolelement.
Angiv knappens egenskab OnSelect til denne formel:
ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
Gennemse din app, klik eller tryk på den knap, du har tilføjet, og luk derefter Forhåndsvisning.
Klik eller tryk på Samlinger i menuen Filer.
Samlingen Cities vises, hvor der står "Seattle" og "Rainy" for én post:
Klik eller tryk på pilen Tilbage for at vende tilbage til standardarbejdsområdet.
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").
Tilføj endnu en knap, og indstil dens OnSelect-egenskab til denne formel:
Patch( Cities, First( Cities ), { Weather: Blank() } )
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.
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 efter tur, indtil der findes en ikke-tom værdi og 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 tomog 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. | hvid |
IsBlank
Opret en app fra bunden, tilføj et tekstinputkontrolelement, og navngiv det FirstName.
Tilføj en 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.
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. | sand |
IsBlank( "" ) | En streng, der ikke indeholder nogen tegn. | sand |
IsBlank( "Hej" ) | En streng, der indeholder et eller flere tegn. | falsk |
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. | falsk |
IsBlank( Mid( "Hej", 17, 2) ) | Det første tegn for Mid er efter slutningen af strengen. Resultatet er en tom streng. | sand |
IsBlank( Hvis( falsk, falsk ) ) | En If-funktion uden ElseResult. Da betingelsen altid er falsk, returnere denne If-funktion altid tom. | sand |
IsEmpty
Opret en app fra bunden, og tilføj et Button-kontrolelement.
Angiv knappens egenskab OnSelect til denne formel:
Collect (IceCream, { Flavor: "Strawberry", Antal: 300 }, { Flavor: "Chocolate", Antal: 100 } )
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:
Samlingen har to poster og er ikke tom. IsEmpty( IceCream ) returnerer falsk, og CountRows( IceCream ) returnerer 2.
Tilføj endnu en knap, og indstil dens OnSelect-egenskab til denne formel:
Klar ( IceCream )
Gennemse din app, klik eller tryk på den anden knap, og luk derefter Forhåndsvisning.
Samlingen er nu tom:
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. | falsk |
IsEmpty( [ ] ) | Tabellen med en enkelt kolonne indeholder ingen poste og er tom. | sand |
IsEmpty( Filter ( [ 1, 2, 3 ], Værdi > 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. | sand |