Funkcie Sort a SortByColumns

Vzťahuje sa na: Aplikácie plátna Postupy v počítačovom prostredí Modelom riadené aplikácie Power Platform CLI

Zoradí tabuľku.

Poznámka

Príkazy PAC CLI pac power-fx nepodporujú funkciu SortByColumns .

Description

Funkcia Sort zoradí tabuľku podľa vzorca.

Vzorec sa vyhodnocuje pre každý záznam tabuľky a výsledky sa používajú na zoradenie tabuľky. Výsledkom vzorca musí byť číslo, reťazec alebo booleovská hodnota. Jeho výsledkom nesmie byť tabuľka ani záznam.

Polia záznamu, ktorý sa momentálne spracúva, sú k dispozícii v rámci vzorca. Použite operátor ThisRecord alebo jednoducho odkážte na polia podľa názvu, ako by ste urobili s ľubovoľnou inou hodnotou. Operátor As sa dá použiť aj na pomenovanie záznamu, ktorý sa práve spracúva, vďaka čomu môžete vytvoriť ľahšie pochopiteľný vzorec a sprístupniť vnorené záznamy. Ďalšie informácie nájdete v príkladoch nižšie a v téme, ako pracovať s rozsahom záznamu.

Ak chcete zoradiť najprv podľa jedného stĺpca a potom podľa iného, vložte vzorec Sort do iného vzorca. Nasledujúci vzorec môžete napríklad použiť na zoradenie tabuľky Kontakty najprv podľa stĺpca LastName a potom podľa stĺpca FirstName: Sort( Sort( Contacts, LastName ), FirstName )

Funkciu SortByColumns môžete tiež použiť na zoradenie tabuľky podľa jedného alebo viacerých stĺpcov.

Zoznam parametrov pre možnosť SortByColumns poskytuje názvy stĺpcov, podľa ktorých sa má zoraďovať, a smer zoradenia stĺpca. Zoradenie sa vykonáva v poradí parametrov (zoradenie najprv podľa prvého stĺpca, potom podľa druhého atď.). Názvy stĺpcov sú zadané ako reťazce a v prípade, že sú zahrnuté priamo do zoznamu parametrov, vyžadujú dvojité úvodzovky. Napríklad, SortByColumns( CustomerTable, "LastName" ).

Funkciu SortByColumns môžete skombinovať s ovládacím prvkom Rozbaľovací zoznam alebo Zoznam a umožniť tak používateľom zvoliť si, podľa ktorého stĺpca sa má zoradenie vykonať.

Okrem vzostupného a zostupného zoradenia môže funkcia SortByColumns zoraďovať podľa tabuľky s jedným stĺpcom hodnôt. Môžete napríklad zoradiť záznamy na základe názvu dňa v týždni tak, že ako poradie zoradenia zadáte [ "pondelok", "utorok", "streda", "štvrtok", "piatok", "sobota", "nedeľa" ]. Všetky záznamy, ktoré obsahujú pondelok, budú prvé, potom budú nasledovať záznamy s utorkom a tak ďalej. Záznamy, ktoré sa v tabuľke zoradenia nezobrazujú, sa zaradia na koniec zoznamu.

Tabuľky predstavujú hodnotu v Power Apps tak, ako reťazec alebo číslo. Môžu sa odovzdávať funkciám a funkcie ich môžu vracať. Funkcie Sort a SortByColumn tabuľku neupravia. Použijú ju ako argument a vrátia novú zoradenú tabuľku. Ďalšie podrobnosti nájdete v časti týkajúcej sa práce s tabuľkami.

Delegovanie

Keď to bude možné, platforma Power Apps bude delegovať operácie filtrovania a zoradenia na zdroj údajov a prechádzať stranami výsledkov na požiadanie. Keď napríklad spustíte aplikáciu, v ktorej sa zobrazuje ovládací prvok Galéria plný údajov, v zariadení sa najprv sprístupní iba prvá množina záznamov. Keď sa bude používateľ posúvať ďalej, zo zdroja údajov sa prenesú ďalšie údaje. Výsledkom bude rýchlejšie spustenie aplikácie a prístup k veľmi veľkým množinám údajov.

Delegovanie však nemusí byť vždy možné. Zdroje údajov sa líšia v tom, ktoré funkcie a operátory podporujú spolu s delegovaním. Ak úplné delegovanie vzorca nie je možné, prostredie vytvárania označí tú časť, ktorú nemožno delegovať, príznakom s upozornením. Ak je to možné, zvážte zmenu vzorca, aby ste sa vyhli funkciám a operátorom, ktoré nemožno delegovať. Zoznam delegovania podrobne uvádza, ktoré zdroje údajov a operácie možno delegovať.

Ak delegovanie nie je možné, platforma Power Apps stiahne iba malú množinu záznamov na lokálnu prácu. Funkcie filtrovania a zoradenia budú fungovať na obmedzenej množine záznamov. Obsah dostupný v Galérii nemusí byť úplný, čo môže používateľov zmiasť.

Ďalšie informácie nájdete v prehľade delegovania.

Syntax

Sort( Table, Formula [, SortOrder ] )

  • Table – povinné. Tabuľka na zoradenie.
  • Vzorec – povinné. Tento vzorec sa vyhodnocuje pre každý záznam tabuľky a výsledky sa používajú na zoradenie tabuľky. Na stĺpce môžete v tabuľke odkazovať.
  • SortOrder – voliteľné. Ak chcete zoradiť v zostupnom poradí, zadajte SortOrder.Descending. Predvolená hodnota je SortOrder.Ascending.

SortByColumns( Table, ColumnName1 [, SortOrder1, ColumnName2, SortOrder2, ... ] )

  • Table – povinné. Tabuľka na zoradenie.

  • ColumnName1, ColumnName2, … – povinné. Názvy stĺpcov, ktoré sa budú zoraďovať, ako reťazce.

  • SortOrder1, SortOrder2, … – voliteľné. SortOrder.Ascending alebo SortOrder.Descending. Predvolená hodnota je SortOrder.Ascending. Ak zadáte viac položiek ColumnNames, musia všetky okrem poslednej obsahovať SortOrder.

    Poznámka

    V prípade SharePoint a excelových zdrojov údajov obsahujúcich názvy stĺpcov s medzerami zadajte každú medzeru ako "_x0020_". Namiesto "Názov stĺpca" teda zadajte "Názov_x0020_stĺpca".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – povinné. Tabuľka na zoradenie.

  • ColumnName – povinné. Názov stĺpca, ktorý sa použije na zoradenie, ako reťazec.

  • SortOrderTable – povinné. Tabuľka s jedným stĺpcom hodnôt, podľa ktorých sa má zoraďovať.

    Poznámka

    V prípade SharePoint a excelových zdrojov údajov obsahujúcich názvy stĺpcov s medzerami zadajte každú medzeru ako "_x0020_". Namiesto "Názov stĺpca" teda zadajte "Názov_x0020_stĺpca".

Príklady

V nasledujúcich príkladoch použijeme zdroj údajovIceCream, ktorý obsahuje údaje v tejto tabuľke:

Príklad Zmrzlina.

Vzorec Popis Výsledok
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Zoradí tabuľku IceCream podľa stĺpca Flavor. Stĺpec Flavor obsahuje reťazce, preto sa tabuľka zoradí podľa abecedy. Poradie zoradenia je v predvolenom nastavení vzostupné. Abecedne zoradené.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Zoradí IceCream podľa stĺpca Množstvo. Stĺpec Množstvo obsahuje čísla, takže sa tabuľka zoradí podľa čísel. Poradie zoradenia je v predvolenom nastavení vzostupné. Zoradené číselne.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Zoradí IceCream podľa stĺpca Množstvo. Stĺpec Množstvo obsahuje čísla, takže sa tabuľka zoradí podľa čísel. Poradie zoradenia bolo zadané ako zostupné. Zoradené číselne a zostupne.
Sort( IceCream, Quantity + OnOrder ) Zoradí tabuľku IceCream podľa súčtu stĺpcov Množstvo a OnOrder pre každý záznam samostatne. Súčet je číslo, preto bude tabuľka zoradená číselne. Poradie zoradenia je v predvolenom nastavení vzostupné. Vzhľadom na to, že zoraďujeme podľa vzorca a nie podľa nespracovaných hodnôt stĺpca, nemôžeme použiť funkciu SortByColumns. Zoradené číselne a vzostupne.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending )
Zoradí tabuľku IceCream najprv podľa stĺpca OnOrder a potom podľa stĺpca Množstvo. Všimnite si, že hodnota Pistáciová je v prvom zoradení podľa možnosti OnOrder pred hodnotou Vanilková a že potom sa spoločne presunuli na ich príslušné miesto podľa možnosti Množstvo. Zoradené s Pistáciová nad Vanilková.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Zoradí tabuľku IceCream podľa stĺpca Flavor na základe tabuľky s jedným stĺpcom obsahujúcim hodnoty Pistáciová a Jahodová. Záznamy, ktoré majú možnosť Flavor s hodnotou Pistáciová sa vo výsledku budú zobrazovať prvé, po nich budú nasledovať záznamy obsahujúce príchuť Jahodová. Hodnoty v stĺpci Flavor, pri ktorých sa nenašla zhoda, napr. Vanilková, sa zobrazia až po položkách, pri ktorých sa zhoda našla. Zoradené s Pistáciová pod Jahodová.

Podrobne

Ak si chcete tieto príklady vyskúšať sami, vytvorte zdroj údajov IceCream ako kolekciu:

  1. Pridajte tlačidlo a nastavte jeho vlastnosť 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. Pozrite si ukážku aplikácie, stlačte tlačidlo a potom sa stlačením klávesa Esc vráťte do predvoleného pracovného priestoru.
  3. V ponuke Súbor vyberte položku Kolekcie a zobrazte kolekciu, ktorú ste práve vytvorili. Potom sa stlačením klávesa Esc vráťte do predvoleného pracovného priestoru.

Sort

  1. Pridajte ďalšie tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Predchádzajúci vzorec vytvorí druhú kolekciu s názvom SortByFlavor, ktorá obsahuje rovnaké údaje ako Ice Cream. Nová kolekcia však obsahuje údaje zoradené podľa abecedy vo vzostupnom poradí podľa stĺpca Flavor.

  2. Stlačte kláves F5, vyberte nové tlačidlo a potom stlačte kláves Esc.

  3. V ponuke Súbor vyberte položku Kolekcie a zobrazte obe kolekcie. Potom sa stlačením klávesa Esc vráťte do predvoleného pracovného priestoru.

  4. Zopakujte posledné tri kroky, ale zmeňte názov kolekcie, ktorú chcete vytvoriť, a nahraďte vzorec Sort iným vzorcom z tabuľky príkladov uvedenej v tejto časti vyššie používajúcej funkciu Sort.

SortByColumns

  1. Pridajte ďalšie tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    Predchádzajúci vzorec vytvorí tretiu kolekciu s názvom SortByQuantity, ktorá obsahuje rovnaké údaje ako Ice Cream. Nová kolekcia však obsahuje údaje zoradené číselne podľa stĺpca Množstvo vo vzostupnom poradí a potom podľa stĺpca Príchuť v zostupnom poradí.

  2. Stlačte kláves F5, vyberte nové tlačidlo a potom stlačte kláves Esc.

  3. V ponuke Súbor vyberte položku Kolekcie a zobrazte všetky tri kolekcie. Potom sa stlačením klávesa Esc vráťte do predvoleného pracovného priestoru.

  4. Zopakujte posledné tri kroky, ale zmeňte názov kolekcie, ktorú chcete vytvoriť, a nahraďte vzorec SortByColumns iným vzorcom z tabuľky príkladov uvedenej v tejto časti vyššie používajúcej funkciu SortByColumns.