Seřadí tabulku.

Popis

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.

Fields of the record currently being processed are available within the formula. You simply reference them by name as you would any other value. You can also reference control properties and other values from throughout your app. For more details, see the examples below and working with record scope.

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 Rozevírací nabídka nebo Pole se seznamem 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 PowerApps 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.

Delegation

When possible, PowerApps will delegate filter and sort operations to the data source and page through the results on demand. For example, when you start an app that shows a Gallery control filled with data, only the first set of records will be initially brought to the device. As the user scrolls, additional data is brought down from the data source. The result is a faster start time for the app and access to very large data sets.

However, delegation may not always be possible. Data sources vary on what functions and operators they support with delegation. If complete delegation of a formula isn't possible, the authoring environment will flag the portion that can't be delegated with a warning. When possible, consider changing the formula to avoid functions and operators that can't be delegated. The delegation list details which data sources and operations can be delegated.

If delegation is not possible, PowerApps will pull down only a small set of records to work on locally. Filter and sort functions will operate on a reduced set of records. What is available in the Gallery may not be the complete story, which could be confusing to users.

See the delegation overview for more information.

Syntaxe

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

  • Tabulka – povinné. Tabulka, která se má seřadit
  • Vzorec – povinné. Tento 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í.

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

Příklady

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

Vzorec Popis Výsledek
Sort( Zmrzlina, Příchuť )

SortByColumns( Zmrzlina, "Příchuť" )
Seřadí tabulku Zmrzlina podle sloupce Příchuť. Sloupec Příchuť obsahuje řetězce, proto se tabulka seřadí podle abecedy. Pořadí řazení je ve výchozím nastavení vzestupné.
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é.
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é.
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.
Sort( Sort( Zmrzlina, Objednáno ), Množství )

SortByColumns( Zmrzlina, "Objednáno", Ascending, "Množství", 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 Zmrzlina podle sloupce Příchuť na základě tabulky s jedním sloupcem obsahujícím hodnoty Pistácie a Jahoda. Záznamy, které mají příchuť Jahoda se ve výsledku budou zobrazovat první, po nich budou následovat záznamy obsahující příchuť Pistácie. Hodnoty ve sloupci Příchuť, u kterých se nenašla shoda, např. Vanilka, 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:

  1. Přidejte tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:
    ClearCollect( Zmrzlina, { Příchuť: "Čokoláda", Množství: 100, Objednáno: 150 }, { Příchuť: "Vanilka", Množství: 200, Objednáno: 20 }, { Příchuť: "Jahoda", Množství: 300, Objednáno: 0 }, { Příchuť: "Máta s čokoládou", Množství: 60, Objednáno: 100 }, { Příchuť: "Pistácie", Množství: 200, Objednáno: 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.

Seřadit

  1. Přidejte další tlačítko a nastavte jeho vlastnost OnSelect na tento vzorec:
    ClearCollect( PodlePrichute, Sort( Zmrzlina, Příchuť ) )

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

  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( PodleMnozstvi, SortByColumns( Zmrzlina, "Množství", Ascending, "Příchuť", 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 Množství ve vzestupném pořadí a pak podle sloupce Příchuť 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.