Sdílet prostřednictvím


Funkce Sort a SortByColumns

Platí pro: aplikace na plátně toky na počítači modelem řízené aplikace Power Pages Power Platform CLI

Seřadí tabulku.

Poznámka:

PAC CLI Příkazy 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 hodnotou v Power Apps, stejně jako řetězec nebo číslo. Můžou se předávat funkcím a funkce je můžou vracet. Sort a SortByColumn neupravují tabulku; místo toho vezmou tabulku jako argument a vrátí novou tabulku, která byla seřazena. 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

Seřadit( 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.
  • SortOrder – volitelné. Pokud chcete řadit v sestupném pořadí, zadejte SortOrder.Descending. SortOrder.Ascending je výchozí hodnota.

Řadit podle sloupců( Tabulka, Název sloupce1 [, ŘaditPořadí1 , Název sloupce2, Řazení2, ... ] )

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

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

  • SortOrders – volitelné. SeřaditPořadí.Vzestupně nebo ŘaditPořadí.Sestupně. SortOrder.Ascending je výchozí. 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ázev sloupce, SortOrderTable )

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

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

  • SortOrderTable – 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 dat IceCream, který obsahuje data v této tabulce:

Příklad zmrzliny.

Vzorec Popis Výsledek
Seřadit (zmrzlina, příchuť)

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.
Seřadit (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ě.
Seřadit (Zmrzlina, Množství, SeřaditPořadí. Sestupně)

SortByColumns( IceCream, "Quantity", SortPorder.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ě.
Seřadit (zmrzlina, množství + na objednávku) 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ě.
Seřadit (Třídit (Zmrzlina, NaObjednávku), Množství)

SortByColumns( IceCream, "OnOrder", SortPorder.Ascending, "Quantity", SortPorder.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( Zmrzlina, "Příchuť", [ "Pistácie", "Jahoda"] ) 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, { Příchuť: "Čokoláda", Množství: 100, NaObjednávku: 150 }, { Příchuť: "Vanilka", Množství: 200, NaObjednávku : 20 }, { Příchuť: "Jahoda", Množství: 300, NaObjednávku: 0 }, { Příchuť: "Mátová čokoláda ", Množství: 60, NaObjednávku: 100 }, { Příchuť: "Pistácie", Množství: 200, NaObjednávku: 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, Flavour))

    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, "Množství", SortPořadí.Vzestupně, "Příchuť", SortPořadí.Sestupně) )

    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.