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:
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ř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ř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ř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ř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í. | |
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. |
Podrobný postup
Pokud si chcete tyto příklady vyzkoušet sami, vytvořte zdroj dat Zmrzlina jako kolekci:
- 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 } ) - 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.
- 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
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.
Stiskněte klávesu F5, vyberte nové tlačítko a pak stiskněte klávesu Esc.
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.
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
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í.
Stiskněte klávesu F5, vyberte nové tlačítko a pak stiskněte klávesu Esc.
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.
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.