Funkcie Sort a SortByColumns
Vzťahuje sa na: aplikácie plátna toky na počítači aplikácie riadené modelom Power Pages 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 sú hodnotou v Power Apps, rovnako ako reťazec alebo číslo. Môžu sa odovzdávať funkciám a funkcie ich môžu vracať. Sort a SortByColumn neupravujte tabuľku; namiesto toho berú tabuľku ako argument a vrátia novú tabuľku, ktorá bola zoradená. Ď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
Zoradiť( Tabuľka, Vzorec [, ZoradiťPoradie ] )
- Tabuľka – 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. SortOrder.Ascending je predvolená hodnota.
Zoradiť podľa stĺpcov( Tabuľka, Názov stĺpca1 [, ZoradiťPoradie1 , Názov stĺpca2, SortOrder2, ... ] )
Tabuľka – povinné. Tabuľka na zoradenie.
Názvy stĺpcov – povinné. Názvy stĺpcov, ktoré sa budú zoraďovať, ako reťazce.
SortOrders – voliteľné. Zoradenie.Vzostupné alebo Zoradenie.Zostupne. 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( Tabuľka, Názov stĺpca, SortOrderTable )
Tabuľka – povinné. Tabuľka na zoradenie.
Názov stĺpca – 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 údajov IceCream, ktorý obsahuje údaje v tejto tabuľke:
Vzorec | Popis | Výsledok |
---|---|---|
Zoradiť (zmrzlina, príchuť) 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é. | |
Zoradiť (zmrzlina, množstvo) SortByColumns( Zmrzlina, "Množstvo" ) |
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é. | |
Zoradiť (Zmrzlina, Množstvo, ZoradiťPoradie.Zostupne) SortByColumns( Zmrzlina, "Množstvo", SortPorder.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é. | |
Zoradiť (zmrzlina, množstvo + na objednávku) | 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. | |
Triediť (Triediť (Zmrzlina, Pri objednávke), Množstvo) SortByColumns( Zmrzlina, "OnOrder", SortOrder.Vzostupne, "Množstvo", ZoradiťPoradie.Vzostupne ) |
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( Zmrzlina, "Príchuť", [ "Pistácie", "Jahoda"] ) | 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, { Príchuť: "Čokoláda", množstvo: 100, na objednávku: 150 }, { Príchuť: "vanilka", množstvo: 200, na objednávku : 20 }, { Príchuť: "Jahoda", Množstvo: 300, Na Objednávku: 0 }, { Príchuť: "Mätová čokoláda ", Množstvo: 60, PriObjednávka: 100 }, { Príchuť: "Pistácie", Množstvo: 200, PriObjednávka: 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( Zmrzlina, "Množstvo", ZoradiťPoradie.Vzostupne, "Príchuť", ZoradiťPoradie.Zostupne) )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.