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:
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é. | |
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é. | |
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é. | |
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. | |
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. | |
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. |
Podrobne
Ak si chcete tieto príklady vyskúšať sami, vytvorte zdroj údajov IceCream ako kolekciu:
- 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 } ) - 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.
- 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
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.
Stlačte kláves F5, vyberte nové tlačidlo a potom stlačte kláves Esc.
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.
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
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í.
Stlačte kláves F5, vyberte nové tlačidlo a potom stlačte kláves Esc.
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.
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.