Funkce Sort a SortByColumns

Platí pro: aplikace plátna desktopové toky modelem řízené aplikace Power Platform CLI

Seřadí tabulku.

Poznámka:

Příkazy PAC CLI pac power-fx nepodporují funkci SortByColumns.

Description

Funkce Sort seřadí tabulku podle vzorce.

Vzorec se vyhodnocuje pro každý záznam tabulky a výsledky se používají k seřazení tabulky. Výsledkem vzorce musí být číslo, řetězec nebo logická hodnota. Jeho výsledkem nesmí být tabulka nebo záznam.

Aktuálně zpracovávaná pole záznamu jsou dostupná v rámci vzorce. Použijte operátor ThisRecord nebo jednoduše odkazujte na pole podle jména, jako byste měli jakoukoli jinou hodnotu. Operátor As lze také použít k pojmenování zpracovávaného záznamu, což může usnadnit pochopení vzorce a zpřístupnit vnořené záznamy. Další informace uvádějí následující příklady a práce s rozsahem záznamu.

Pokud chcete provádět řazení nejprve podle jednoho sloupce a potom podle jiného, vložíte vzorec Sort do jiného vzorce. Například můžete použít tento vzorec k seřazení tabulky Kontakty nejprve podle sloupce Prijmeni a potom podle sloupce Jmeno: Sort( Sort( Kontakty, Prijmeni ), Jmeno ).

Funkci SortByColumns můžete také použít k seřazení tabulky podle jednoho nebo více sloupců.

Seznam parametrů pro SortByColumns poskytuje názvy sloupců, podle kterých se má řadit, a směr řazení sloupce. Řazení se provádí v pořadí parametrů (řazení nejprve podle prvního sloupce, potom podle druhého atd.) Názvy sloupců jsou zadané jako řetězce, a v případě, že jsou zahrnuté přímo do seznamu parametrů, vyžadují dvojité uvozovky. Například SortByColumns( TabulkaZakazniku, "Prijmeni" ).

SortByColumns můžete zkombinovat s ovládacím prvkem Drop down nebo List box a umožnit tak uživatelům zvolit si, podle kterého sloupce se má řazení provést.

Kromě vzestupného a sestupného řazení může SortByColumns řadit na základě tabulky s jedním sloupcem hodnot. Můžete třeba řadit záznamy na základě názvu dne v týdnu tak, že jako pořadí řazení zadáte [ "pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota", "neděle" ]. Všechny záznamy, které obsahují pondělí, budou první, potom budou následovat záznamy s úterým a tak dále. Záznamy, které se v řadicí tabulce nezobrazují, se zařadí na konec seznamu.

Tabulky jsou v Power Apps hodnotou, stejně jako třeba řetězec nebo číslo. Můžou se předávat funkcím a funkce je můžou vracet. Funkce Sort a SortByColumn tabulku neupraví. Použijí ji jako argument a vrátí novou seřazenou tabulku. Další podrobnosti najdete v části týkající se práce s tabulkami.

Delegování

Pokud to je možné, budou Power Apps delegovat operace filtrování a řazení do zdroje dat a na stránku prostřednictvím výsledků na vyžádání. Když například spustíte aplikaci, která obsahuje ovládací prvek Galerie s daty, bude do zařízení na počátku přenesena pouze první sada záznamů. Při procházení zdroj dat poskytuje další data. Výsledkem je rychlejší doba spouštění aplikace a přístup k velmi velkým sadám dat.

Delegování však nemusí být vždy možné. Zdroje dat se liší podle funkcí a operátorů, které při delegování podporují. Pokud není úplné delegování vzorce možné, označí autorské prostředí část, kterou nelze delegovat, varováním. Pokud to je možné, zvažte změnu vzorce tak, aby neobsahoval funkce a operátory, které nelze delegovat. Seznam delegování podrobně uvádí, které zdroje dat a operace lze delegovat.

Pokud delegování není možné Power Apps stáhne pouze malou sadu záznamů pro místní práci. Funkce filtrování a řazení budou fungovat pouze u redukované sady záznamů. Co je dostupné v Galerii nemusí být kompletní, což by mohlo být pro uživatele matoucí.

Další informace viz přehled delegování.

Syntaxe

Sort( Tabulka, Vzorec [, PořadíŘazení ] )

  • Tabulka – povinné. Tabulka, která se má seřadit.
  • Vzorec – povinné. Tetno vzorec se vyhodnocuje pro každý záznam tabulky a výsledky se používají k seřazení tabulky. Na sloupce v tabulce můžete odkazovat.
  • PořadíŘazení – volitelné. Pokud chcete řadit v sestupném pořadí, zadejte SortOrder.Descending. Výchozí hodnota je SortOrder.Ascending.

SortByColumns( Tabulka, NázevSloupce1 [, PořadíŘazení1, NázevSloupce2, PořadíŘazení2, ... ] )

  • Tabulka – povinné. Tabulka, která se má seřadit.

  • NázevSloupce – povinné. Názvy sloupců, které se budou řadit, jako řetězce.

  • PořadíŘazení – volitelné. SortOrder.Ascending nebo SortOrder.Descending. Výchozí je SortOrder.Ascending. Pokud zadáte více položek NázevSloupce, musí všechny kromě poslední obsahovat PořadíŘazení.

    Poznámka:

    V případě zdrojů dat SharePoint a Excel obsahujících názvy sloupců s mezerami zadejte každou mezeru jako „_x0020_“. Místo Název sloupce tedy zadejte Název_x0020_sloupce.

SortByColumns( Tabulka, NázevSloupce, TabulkaPořadíŘazení )

  • Tabulka – povinné. Tabulka, která se má seřadit.

  • NázevSloupce – povinné. Název sloupce, který se použije k seřazení, jako řetězec.

  • TabulkaPořadíŘazení – povinné. Tabulka s jedním sloupcem hodnot, podle kterých se má řadit.

    Poznámka:

    V případě zdrojů dat SharePoint a Excel obsahujících názvy sloupců s mezerami zadejte každou mezeru jako „_x0020_“. Místo Název sloupce tedy zadejte Název_x0020_sloupce.

Příklady

V následujících příkladech použijeme zdroj datIceCream, který obsahuje data v této tabulce:

Příklad zmrzliny.

Vzorec Popis Výsledek
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Seřadí tabulku IceCream podle sloupce Flavor. Sloupec Flavor obsahuje řetězce, proto se tabulka seřadí podle abecedy. Pořadí řazení je ve výchozím nastavení vzestupné. Seřazeno podle abecedy.
Sort( Zmrzlina, Množství )

SortByColumns( Zmrzlina, "Množství" )
Seřadí tabulku Zmrzlina podle sloupce Množství. Sloupec Množství obsahuje čísla, takže se tabulka seřadí podle čísel. Pořadí řazení je ve výchozím nastavení vzestupné. Seřazeno číselně.
Sort( Zmrzlina, Množství, SortOrder.Descending )

SortByColumns( Zmrzlina, "Množství", SortOrder.Descending )
Seřadí tabulku Zmrzlina podle sloupce Množství. Sloupec Množství obsahuje čísla, takže se tabulka seřadí podle čísel. Pořadí řazení jsme zadali jako sestupné. Seřazeno číselně a sestupně.
Sort( Zmrzlina, Množství + Objednáno ) Seřadí tabulku Zmrzlina podle součtu sloupců Množství a Objednáno pro každý záznam samostatně. Součet je číslo, proto bude tabulka seřazená číselně. Pořadí řazení je ve výchozím nastavení vzestupné. Vzhledem k tomu, že provádíme řazení podle vzorce a nikoli podle nezpracovaných hodnot sloupce, nemůžeme použít funkci SortByColumns. Seřazeno číselně a vzestupně.
Sort( Sort( Zmrzlina, Objednáno ), Množství )

SortByColumns( Zmrzlina, "Objednáno", SortOrder.Ascending, "Množství", SortOrder.Ascending )
Seřadí tabulku Zmrzlina nejprve podle sloupce Objednáno a potom podle sloupce Množství. Všimněte si, že Pistácie je v prvním řazení podle Objednáno před Vanilkou a že potom se společně přesunuly na jejich příslušné místo podle Množství. Seřazeno s Pistácií nad Vanilkou.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Seřadí tabulku IceCream podle sloupce Flavor na základě tabulky s jedním sloupcem obsahujícím hodnoty "Pistachio" a "Strawberry". Záznamy, které mají Flavor "Pistachio" se ve výsledku budou zobrazovat první, po nich budou následovat záznamy obsahující příchuť "Strawberry". Hodnoty ve sloupci Flavor, u kterých se nenašla shoda, např. Vanilla, se zobrazí až po položkách, u kterých se shoda našla. Seřazeno s Pistácií nad Jahodami.

Podrobný postup

Pokud si chcete tyto příklady vyzkoušet sami, vytvořte zdroj dat Zmrzlina jako kolekci:

  1. Přidejte tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:
    ClearCollect( IceCream, { Flavor: "Chocolate", Quantity: 100, OnOrder: 150 }, { Flavor: "Vanilla", Quantity: 200, OnOrder: 20 }, { Flavor: "Strawberry", Quantity: 300, OnOrder: 0 }, { Flavor: "Mint Chocolate", Quantity: 60, OnOrder: 100 }, { Flavor: "Pistachio", Quantity: 200, OnOrder: 10 } )
  2. Podívejte se na náhled aplikace, vyberte tlačítko a pak se stisknutím klávesy Esc vraťte do výchozího pracovního prostoru.
  3. V nabídce Soubor vyberte Kolekce a zobrazte kolekci, kterou jste právě vytvořili. Pak se stisknutím klávesy Esc vraťte do výchozího pracovního prostoru.

Sort

  1. Přidejte další tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Předchozí vzorec vytvoří druhou kolekci s názvem SortByFlavor, která obsahuje stejná data jako Ice Cream. Nová kolekce ale obsahuje data seřazená podle abecedy ve vzestupném pořadí podle sloupce Flavor.

  2. Stiskněte klávesu F5, vyberte nové tlačítko a pak stiskněte klávesu Esc.

  3. V nabídce Soubor vyberte Kolekce a zobrazte obě kolekce. Pak se stisknutím klávesy Esc vraťte do výchozího pracovního prostoru.

  4. Opakujte poslední tři kroky, ale změňte název kolekce, kterou chcete vytvořit, a nahraďte vzorec Sort jiným vzorcem z tabulky příkladů uvedené v této části výše používajících funkci Sort.

SortByColumns

  1. Přidejte další tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:
    ClearCollect( SortByQuantity, SortByColumns( Zmrzlina, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    Předchozí vzorec vytvoří třetí kolekci s názvem PodleMnozství, která obsahuje stejná data jako Zmrzlina. Nová kolekce ale obsahuje data seřazená číselně podle sloupce Quantity ve vzestupném pořadí a pak podle sloupce Flavor v sestupném pořadí.

  2. Stiskněte klávesu F5, vyberte nové tlačítko a pak stiskněte klávesu Esc.

  3. V nabídce Soubor vyberte Kolekce a zobrazte všechny tři kolekce. Pak se stisknutím klávesy Esc vraťte do výchozího pracovního prostoru.

  4. Opakujte poslední tři kroky, ale změňte název kolekce, kterou chcete vytvořit, a nahraďte vzorec SortByColumns jiným vzorcem z tabulky příkladů uvedené v této části výše používajících funkci SortByColumns.