Funkce Blank, Coalesce, IsBlank a IsEmpty v Power Apps

Testuje, jestli je hodnota prázdná nebo jestli tabulka neobsahuje žádné záznamy, a umožňuje vytvářet prázdné hodnoty.

Přehled

Prázdná hodnota je zástupný text pro „žádná hodnota“ nebo „neznámá hodnota“. Například: ovládací prvek Combo box a jeho vlastnost Selected je prázdná, pokud uživatel neprovedl výběr. Mnoho zdrojů dat může ukládat a vracet hodnoty NULL, které se v Power Apps znázorňují jako prázdné.

Jakákoli vlastnost nebo počítaná hodnota v Power Apps může být prázdná. Logická hodnota například obsahuje obvykle jednu z těchto dvou hodnot: true (pravda) nebo false (nepravda). Ale kromě těchto dvou hodnot to také může být prázdná hodnota, což naznačuje, že stav není znám. Je to podobné jako v Microsoft Excel, kde buňka listu je na začátku prázdná bez jakéhokoli obsahu, ale může mimo jiné uchovávat i hodnotu PRAVDA nebo NEPRAVDA. Kdykoli lze obsah buňky znovu vymazat a obnovit tak prázdný stav buňky.

Prázdný řetězec představuje řetězec, který neobsahuje žádné znaky. Funkce Len vrací nulu pro takový řetězec a lze jej napsat ve vzorcích jako dvě dvojité uvozovky, mezi nimiž nic není "". Některé ovládací prvky a zdroje dat používají prázdný řetězec k označení stavu „bez hodnoty“. Chcete-li zjednodušit vytváření aplikací, funkce IsBlank a Coalesce testují jak prázdné hodnoty, tak prázdné řetězce.

V souvislosti s funkcí IsEmpty je prázdná hodnota specifická pro tabulky, které neobsahují žádné záznamy. Struktura tabulky může být neporušená a obsahovat názvy sloupců, ale žádná data v tabulce nejsou. Tabulka může být napřed prázdná, pak se do ní umístí záznamy, takže nebude prázdná, a pak se tyto záznamy odeberou a bude znovu prázdná.

Poznámka

Jsme v přechodném období. Do teď byla prázdná hodnota používána také k hlášení chyb, čímž bylo nemožné odlišit platnou „žádnou hodnotu“ od chyby. Z tohoto důvodu je momentálně ukládání prázdných hodnot podporováno jen u místních kolekcí. Můžete uložit prázdné hodnoty v jiných zdrojích dat, pokud zapnete experimentální funkci Správa chyb na úrovni vzorce pod Nastavení > Připravované funkce > Experimentální. Aktivně pracujeme na dokončení této funkce a dokončení správného oddělení prázdných hodnot od chyb.

Prázdný

Funkce Blank vrací prázdnou hodnotu. Používá se k ukládání hodnot NULL do zdroje dat, který tyto hodnoty podporuje. V podstatě to znamená, že se všechny hodnoty z daného pole odeberou.

IsBlank

Funkce IsBlank testuje prázdnou hodnotu nebo prázdný řetězec. Test obsahuje prázdné řetězce, které usnadňují vytváření aplikací, protože některé zdroje dat a ovládací prvky používají prázdný řetězec, pokud není přítomna žádná hodnota. Pro testování výhradně prázdné hodnoty použijte if( Value = Blank(), ... namísto IsBlank.

Při povolení zpracování chyb u stávajících aplikací zvažte nahrazení funkce IsBlank za funkci IsBlankOrError, aby zůstalo zachováno stávající chování aplikace. Před přidáním zpracování chyb byla k vyjádření jak hodnot null, tak chybových hodnot v databázi používána prázdná hodnota. Zpracování chyb odděluje tyto dvě interpretace prázdné hodnoty, což by mohlo změnit chování stávajících aplikací, které nadále používají funkci IsBlank.

Vrácenou hodnotou funkce IsBlank je logická hodnota pravda nebo nepravda.

Coalesce

Funkce Coalesce vyhodnocuje svoje argumenty podle pořadí a vrací první hodnotu, která není prázdná nebo prázdný řetězec. Tuto funkci použijte k nahrazení prázdné hodnoty nebo prázdného řetězce jinou hodnotou, ale ponechání hodnot a řetězců, které nejsou prázdné. Pokud jsou všechny argumenty prázdné nebo prázdné řetězce, pak funkce vrátí hodnotu prázdná, což dělá z funkce Coalesce vhodný nástroj pro převod prázdných řetězců na prázdné hodnoty.

Coalesce( value1, value2 ) je stručnější ekvivalent If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) a nevyžaduje dvojité vyhodnocení value1 a value2. Funkce If vrací prázdnou hodnotu, pokud neexistuje vzorec „else“, jako je tomu v tomto případě.

Všechny argumenty funkce Coalesce musí být stejného typu. Není možné kombinovat například čísla a textové řetězce. Návratová hodnota funkce Coalesce je tohoto běžného typu.

IsEmpty

Funkce IsEmpty testuje, jestli tabulka obsahuje nějaké záznamy. Je ekvivalentem k použití funkce CountRows a následné kontrole, jestli je výsledkem nula. Zkombinováním funkce IsEmpty s funkcí Errors můžete vyhledávat chyby ve zdroji dat.

Vrácenou hodnotou funkce IsEmpty je logická hodnota pravda nebo nepravda.

Syntaxe

Blank()

Coalesce( Hodnota1 [; Hodnota2; ... ] )

  • Hodnoty – povinné. Hodnoty, které se mají testovat. Každá hodnota je vyhodnocena v pořadí, dokud není nalezena hodnota, která není prázdná ani prázdný řetězec. Hodnoty po tomto bodě se nevyhodnocují.

IsBlank( Hodnota )

  • Hodnota - povinné Hodnota pro otestování prázdné hodnoty nebo prázdného řetězce.

IsEmpty( Tabulka )

  • Tabulka – povinné. Tabulka, ve které se má testovat výskyt záznamů.

Příklady

Blank

Poznámka

Následující příklad momentálně funguje jenom pro místní kolekce. Můžete uložit prázdné hodnoty v jiných zdrojích dat, pokud zapnete experimentální funkci Správa chyb na úrovni vzorce pod Nastavení > Připravované funkce > Experimentální. Aktivně pracujeme na dokončení této funkce a dokončení oddělení prázdných hodnot od chyb.

  1. Vytvořte aplikaci od začátku a přidejte ovládací prvek Button.

  2. Vlastnost OnSelect tlačítka nastavte na tento vzorec:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. Zobrazte náhled aplikace, klikněte nebo klepněte na tlačítko, které jste přidali, a pak zavřete náhled.

  4. V nabídce Soubor klikněte nebo klepněte na Kolekce.

    Zobrazí se kolekce Cities, která zobrazuje jeden záznam s položkami Seattle a Rainy:

    Kolekce zobrazující záznam s položkami Seattle a Rainy.

  5. Klikněte nebo klepněte na šipku zpět a vraťte se do výchozího pracovního prostoru.

  6. Přidejte ovládací prvek Label a jeho vlastnost Text nastavte na tento vzorec:

    IsBlank( First( Cities ).Weather )
    

    Popisek zobrazí hodnotu false, protože pole Weather obsahuje hodnotu (Rainy).

  7. Přidejte druhé tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. Zobrazte náhled aplikace, klikněte nebo klepněte na tlačítko, které jste přidali, a pak zavřete náhled.

    Pole Weather prvního záznamu v kolekci Cities se nahradí prázdnou hodnotou, takže položka Rainy, která tam byla dříve, se odebere.

    Kolekce zobrazující záznam s položkou Seattle a prázdným polem Weather.

    Popisek zobrazí hodnotu true, protože pole Weather už neobsahuje hodnotu.

Coalesce

Vzorec Popis Výsledek
Coalesce( Blank(), 1 ) Testuje hodnotu vrácenou z funkce Blank, která vždycky vrací prázdnou hodnotu. První argument je prázdný, takže vyhodnocování pokračuje dalšími argumenty až do nalezení hodnoty, která není prázdná ani prázdný řetězec. 1
Coalesce( "", "2" ) Testuje první argument, kterým je prázdný řetězec. První argument je prázdný řetězec, takže vyhodnocování pokračuje dalšími argumenty až do nalezení hodnoty, která není prázdná ani prázdný řetězec. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) Funkce Coalesce začne na začátku seznamu argumentů a vyhodnocuje postupně každý argument až do nalezení hodnoty, která není prázdná ani prázdný řetězec. V tomto případě první čtyři argumenty vrací prázdnou hodnotu nebo prázdný řetězec, takže vyhodnocování pokračuje pátým argumentem. Pátý argument není prázdná hodnota ani prázdný řetězec, takže hodnocení zde končí. Vrátí se hodnota pátého argumentu a šestý argument se nevyhodnocuje. 3
Coalesce( "" ) Testuje první argument, kterým je prázdný řetězec. Protože první argument je prázdný řetězec a neexistují žádné další argumenty, funkce vrací prázdnou hodnotu. prázdné

IsBlank

  1. Vytvořte aplikaci od začátku, přidejte ovládací prvek typu textový vstup a dejte mu název FirstName.

  2. Přidejte popisek a do jeho vlastnosti Text nastavte tento vzorec:

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

    Ve výchozím nastavení je ve vlastnosti Text ovládacího prvku typu textový vstup nastavený řetězec "Text input". Vlastnost obsahuje hodnotu, takže není prázdná a popisek nezobrazí žádnou zprávu.

  3. Odeberte z ovládacího prvku typu textový vstup všechny znaky včetně všech mezer.

    Vlastnost Text už neobsahuje žádné znaky, takže je prázdný řetězec a funkce IsBlank( FirstName.Text ) bude mít hodnotu true. Zobrazí se zpráva, že pole je povinné.

Informace o tom, jak provádět ověřování pomocí jiných nástrojů, najdete v tématech o funkci Validate a o práci se zdroji dat.

Další příklady:

Vzorec Popis Výsledek
IsBlank( Blank() ) Testuje hodnotu vrácenou z funkce Blank, která vždycky vrací prázdnou hodnotu. true
IsBlank( "" ) Řetězec, který neobsahuje žádné znaky true
IsBlank( "Hello" ) Řetězec, který obsahuje jeden nebo více znaků false
IsBlank( Libovolná kolekce ) Kolekce existuje, a proto pro tuto funkci není prázdná, ani když neobsahuje žádné záznamy. Pokud chcete zkontrolovat, jestli kolekce obsahuje záznamy, použijte místo toho funkci IsEmpty. false
IsBlank( Mid( "Hello"; 17; 2 ) ) Počáteční znak pro funkci Mid je až za koncem řetězce. Výsledkem je prázdný řetězec. true
IsBlank( If( false; false ) ) Funkce If bez argumentu ElseResult. Podmínka má vždycky hodnotu false, takže tato funkce If vždycky vrátí prázdnou hodnotu. true

IsEmpty

  1. Vytvořte aplikaci od začátku a přidejte ovládací prvek Button.

  2. Vlastnost OnSelect tlačítka nastavte na tento vzorec:

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

  3. Zobrazte náhled aplikace, klikněte nebo klepněte na tlačítko, které jste přidali, a pak zavřete náhled.

    Vytvoří se kolekce s názvem IceCream, která obsahuje tato data:

    Tabulka příchutí jahod a čokolády v množství 300 a 100.

    Tato kolekce má dva záznamy a není prázdná. Funkce IsEmpty( IceCream ) vrátí hodnotu false a funkce CountRows( IceCream ) vrátí hodnotu 2.

  4. Přidejte druhé tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:

    Clear( Zmrzlina )

  5. Zobrazte náhled aplikace, klikněte nebo klepněte na druhé tlačítko a pak zavřete náhled.

    Kolekce je teď prázdná:

    Kolekce s příchutí a množstvím jako prázdná kolekce.

    Funkce Clear odebere z kolekce všechny záznamy, takže výsledkem je prázdná kolekce. Funkce IsEmpty( IceCream ) vrátí hodnotu true a funkce CountRows( IceCream ) vrátí hodnotu 0.

Pomocí funkce IsEmpty můžete také otestovat, jestli je vypočítaná tabulka prázdná, jak ukazují tyto příklady:

Vzorec Popis Výsledek
IsEmpty( [ 1, 2, 3 ] ) Tabulka s jedním sloupcem obsahuje tři záznamy, takže není prázdná. false
IsEmpty( [ ] ) Tabulka s jedním sloupcem neobsahuje žádné záznamy, takže je prázdná. true
IsEmpty( Filter( [ 1; 2; 3 ]; Value > 5 ) ) Tabulka s jedním sloupcem neobsahuje žádné hodnoty větší než 5. Výsledek z funkce Filter neobsahuje žádné záznamy, takže je prázdný. true

Poznámka

Můžete nám sdělit, jaké máte jazykové preference pro dokumentaci? Zúčastněte se krátkého průzkumu. (upozorňujeme, že tento průzkum je v angličtině)

Průzkum bude trvat asi sedm minut. Nejsou shromažďovány žádné osobní údaje (prohlášení o zásadách ochrany osobních údajů).