Funkciji Sort in SortByColumns
Velja za: Aplikacije Canvas Namizne tokove Aplikacije, ki temeljijo na modelu Power Pages Power Platform CLI
Razvrsti tabelo.
opomba,
Ukazi PAC CLI pac power-fx ne podpirajo funkcije SortByColumns .
Description
Funkcija Sort razvrsti tabelo na podlagi formule.
Formula se ovrednoteni za vsak zapis tabele, rezultati pa se uporabijo za razvrščanje tabele. Formula mora vrniti številko, niz ali logično vrednost; ne more vrniti tabele ali zapisa.
Polja zapisa, ki je trenutno v obdelavi, so na voljo v okviru formule. Uporabite operator ThisRecord ali pa polja preprosto navedite poimensko, kot bi storili za katero koli drugo vrednost. Operator As lahko uporabite tudi za poimenovanje zapisa, ki se obdeluje, s čimer bo formulo lažje razumeti in bodo dostopni ugnezdeni zapisi. Več informacij je v spodnjih primerih in razdelku delo z obsegom zapisov.
Če želite razvrstiti tabelo najprej po enem stolpcu in nato po drugem, vdelajte formulo Sort v drugo enako formulo. To formulo lahko na primer uporabite za razvrščanje tabele Contacts najprej po stolpcu LastName in nato po stolpcu FirstName: Sort( Sort( Contacts, LastName ), FirstName )
Funkcijo SortByColumns lahko uporabite tudi za razvrščanje tabele na podlagi enega ali več stolpcev.
Seznam parametrov za SortByColumns navede imena stolpcev, po katerih se bo tabela razvrščala, in smer razvrščanja na stolpec. Razvrščanje se izvede v vrstnem redu parametrov (najprej se razvršča po prvem stolpcu, nato po drugem in tako naprej). Imena stolpcev so navedena kot nizi, ki zahtevajo dvojne narekovaje, če so neposredno vključeni na seznam parametrov. Na primer SortByColumns( CustomerTable, "LastName" ).
Funkcijo SortByColumns lahko združite s kontrolnikom Drop down ali List box in omogočite uporabnikom, da izberejo, po katerem stolpcu bodo razvrščali tabelo.
Poleg naraščajočega ali padajočega razvrščanja lahko funkcija SortByColumns razvršča na podlagi tabele vrednosti z enim stolpcem. Zapis lahko na primer razvrstite glede na ime dneva v tednu, tako da kot vrstni red razvrščanja navedete [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]. Vsi zapisi z vrednostjo Monday so prvi, sledijo jim tisti z vrednostjo Tuesday in tako naprej. Najdeni zapisi, ki niso prikazani v tabeli za razvrščanje, so premaknjeni na konec seznama.
Tabele so vrednost v Power Apps, tako kot niz ali številka. Lahko so posredovane funkcijam in vrnjene iz njih. Sort in SortByColumn ne spreminjata tabele; namesto tega vzamejo tabelo kot argument in vrnejo novo tabelo, ki je bila razvrščena. Za več informacij glejte delo s tabelami.
Pooblastitev
Kadar je mogoče, storitev Power Apps pooblasti postopke filtriranja in razvrščanja za vir podatkov in stran prek rezultatov na zahtevo. Ko na primer zaženete aplikacijo, ki prikaže kontrolnik Galerija s podatki, se v napravo prvotno prenese samo prvi nabor zapisov. Ko se uporabnik pomika po zaslonu navzdol, se iz vira podatkov prenesejo dodatni podatki. Rezultat tega je krajši čas zagona aplikacije in dostop do obsežnih naborov podatkov.
Vendar pa pooblastitev ni možna v vseh primerih. Viri podatkov se razlikujejo v tem, katere funkcije in operatorje podpirajo s pooblaščanjem. Če popolna pooblastitev formule ni mogoča, okolje za ustvarjanje prikaže opozorilo za del, ki ga ni mogoče pooblastiti. Če je mogoče, poskusite spremeniti formulo, da se izognete funkcijam in operatorjem, ki jih ni mogoče pooblastiti. Seznam pooblaščanja podrobneje navaja, katere vire podatkov in postopke je mogoče pooblastiti.
Če pooblastitev ni mogoča, storitev Power Apps pridobi le majhen nabor zapisov, na katerem lahko delate lokalno. Funkcije za filtriranje in razvrščanje bodo delovale tudi na manjšem naboru zapisov. Kar bo prikazano v galeriji, morda ne bo predstavljalo celotne slike, to pa je za uporabnike lahko nejasno.
Če želite več informacij, glejte razdelek Pregled pooblastitev.
Sintaksa
Razvrsti( Tabela, Formula [, Vrstni red ] )
- Tabela - obvezno. Tabela za razvrščanje.
- Formula - obvezno. Ta formula se ovrednoteni za vsak zapis tabele, rezultati pa se uporabijo za razvrščanje tabele. Referencirate lahko stolpce znotraj tabele.
- Vrstni red - Izbirno. Vnesite SortOrder.Descending, da razvrstite tabelo v padajočem vrstnem redu. SortOrder.Ascending je privzeta vrednost.
SortByColumns( Tabela, ColumnName1 [, SortOrder1 , ColumnName2, SortOrder2, ... ] )
Tabela - obvezno. Tabela za razvrščanje.
Imena stolpcev - obvezno. Imena stolpcev kot nizi za razvrščanje.
SortOrders - Izbirno. SortOrder.Ascending ali SortOrder.Descending. SortOrder.Ascending je privzeta vrednost. Če je navedenih več ColumnNames, morajo vsi, razen zadnjega stolpca, vsebovati SortOrder.
opomba,
Za vire podatkov SharePoint in Excel, ki vsebujejo imena stolpcev s presledki, določite vsak presledek kot "_x0020_". Npr. določite »Column Name« kot »Column_x0020_Name«.
SortByColumns( Tabela, ImeStolpca, SortOrderTable )
Tabela - obvezno. Tabela za razvrščanje.
ColumnName - obvezno. Ime stolpca kot niz za razvrščanje.
SortOrderTable - Zahtevano. Tabela vrednosti z enim stolpcem, po kateri se bo razvrščalo.
opomba,
Za vire podatkov SharePoint in Excel, ki vsebujejo imena stolpcev s presledki, določite vsak presledek kot "_x0020_". Npr. določite »Column Name« kot »Column_x0020_Name«.
Primeri
V spodnjih primerih bomo uporabili vir podatkov IceCream, ki vsebuje podatke v tej tabeli:
Formula | Opis | Rezultat |
---|---|---|
Razvrsti (sladoled, okus) Razvrsti po stolpcih (Sladoled, "Okus") |
Razvrsti IceCream po stolpcu Flavor. Stolpec Flavour vsebuje nize, zato je tabela razvrščena po abecednem redu. Vrstni red razvrščanja je privzeto naraščajoč. | |
Razvrsti (sladoled, količina) SortByColumns( IceCream, "Quantity") |
Razvrsti IceCream po stolpcu Quantity. Stolpec Quantity vsebuje številke, zato je tabela razvrščena številsko. Vrstni red razvrščanja je privzeto naraščajoč. | |
Razvrsti (sladoled, količina, vrstni red. padajoče) SortByColumns( IceCream, "Quantity", SortOrder.Descending ) |
Razvrsti IceCream po stolpcu Quantity. Stolpec Quantity vsebuje številke, zato je razvrščanje številsko. Vrstni red razvrščanja je določen kot padajoč. | |
Razvrsti (sladoled, količina + po naročilu) | Razvrsti IceCream po vsoti stolpcev Quantity in OnOrder za vsak zapis posebej. Vsota je število, zato je tabela razvrščena številsko. Vrstni red razvrščanja je privzeto naraščajoč. Ker razvrščamo po formuli in ne po neobdelanih vrednostih stolpcev, ni ekvivalenta, ki uporablja SortByColumns. | |
Razvrsti (Razvrsti (sladoled, po naročilu), količina) SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending ) |
Razvrsti IceCream najprej po stolpcu OnOrder in nato po stolpcu Quantity. Upoštevajte, da je bil okus »Pistachio« premaknjen nad okus »Vanilla« pri prvem razvrščanju na podlagi stolpca OnOrder, nato pa sta se skupaj premaknila na ustrezno mesto na podlagi stolpca Quantity. | |
Razvrsti po stolpcih (Sladoled, "Okus", [ "Pistacija", "Jagoda" ] ) | Razvrsti IceCream po stolpcu Flavor na podlagi tabele z enim stolpcem, ki vsebuje okusa »Pistachio« in »Strawberry«. Zapisi, ki imajo v stolpcu Flavor vrednost »Pistacchio«, so v rezultatih prikazani najprej, sledijo pa jim zapisi, ki vsebujejo vrednost »Strawberry«. Vrednosti v stolpcu Flavor, ki se ne ujemajo, na primer »Vanilla«, so prikazane za elementi, za katere je bilo najdeno ujemanje. |
Korak za korakom
Če želite te primere zagnati sami, ustvarite vir podatkov IceCream kot zbirko:
- Dodajte gumb in nastavite njegovo lastnost OnSelect na to formulo:
ClearCollect( Sladoled, { Okus: "Čokolada", Količina: 100, Naročilo: 150 }, { Okus: "Vanilija", Količina: 200, Naročilo : 20 }, { Okus: "Jagoda", Količina: 300, Ob naročilu: 0 }, { Okus: "Mint čokolada ", Količina: 60, Naročilo: 100 }, { Okus: "Pistacija", Količina: 200, Naročilo: 10 } ) - Odprite predogled aplikacije, izberite gumb in nato pritisnite tipko Esc, da se vrnete v privzeti delovni prostor.
- V meniju Datoteka izberite Zbirke, da prikažete zbirko, ki ste jo pravkar ustvarili, nato pa pritisnite Esc, da se vrnete v privzeti delovni prostor.
Razvrščanje
Dodajte še en gumb in nastavite njegovo lastnost OnSelect na to formulo:
ClearCollect( SortByFlavor, Sort(IceCream, Flavor) )Prejšnja formula ustvari drugo zbirko, imenovano SortByFlavor, ki vsebuje iste podatke kot IceCream. Vendar nova zbirka vsebuje podatke, razvrščene po abecedi po stolpcu Flavor v naraščajočem vrstnem redu.
Pritisnite tipko F5, izberite novi gumb in pritisnite tipko Esc.
V meniju Datoteka izberite Zbirke, da prikažete obe zbirki, nato pa pritisnite Esc, da se vrnete v privzeti delovni prostor.
Ponovite zadnje tri korake, vendar spremenite ime zbirke, ki jo želite ustvariti, ter zamenjajte formulo Sort z drugo formulo iz tabele primerov zgoraj v tem razdelku, ki uporablja Sort.
SortByColumns
Dodajte še en gumb in nastavite njegovo lastnost OnSelect na to formulo:
ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Alavor", SortOrder.Descending ) )Prejšnja formula ustvari tretjo zbirko, imenovano SortByQuantity, ki vsebuje iste podatke kot IceCream. Vendar nova zbirka vsebuje podatke, ki so razvrščeni številsko po stolpcu Quantity v naraščajočem vrstnem redu in nato po stolpcu Flavor v padajočem vrstnem redu.
Pritisnite tipko F5, izberite novi gumb in pritisnite tipko Esc.
V meniju Datoteka izberite Zbirke, da prikažete vse tri zbirke, nato pa pritisnite Esc, da se vrnete v privzeti delovni prostor.
Ponovite zadnje tri korake, vendar spremenite ime zbirke, ki jo želite ustvariti, ter zamenjajte formulo SortByColumns z drugo formulo iz tabele primerov zgoraj v tem razdelku, ki uporablja SortByColumns.