Funkcije sortiranja i sortiranja po stupcima
Odnosi se na: Aplikacije radnog područja Tijekovi radne površine CLI aplikacija Power Pages Power Platform utemeljenih na modelu
Sortira tablicu.
Napomena
PAC CLI pac power-fx naredbe ne podržavaju funkciju SortByColumns .
Opis
Funkcija Sort sortira tablicu na temelju neke formule.
Formula se procjenjuje za svaki zapis tablice, a rezultati koriste za sortiranje tablice. Formula mora rezultirati brojem, nizom ili Booleovom vrijednošću; ne može rezultirati tablicom ili zapisom.
Polja zapisa koja se trenutno obrađuju dostupna su unutar formule. Upotrijebite ThisRecord operator ili jednostavno spomenite polja imenom na isti način kao i bilo koju drugu vrijednost. Za imenovanje zapisa koji se obrađuje možete upotrijebiti i As operator, a to vam može pomoći učiniti formulu razumljivijom, a ugniježđene zapise pristupačnijima. Više informacija potražite u primjerima u nastavku i radu u djelokrugu zapisa.
Da biste sortirali prvo po jednom, a zatim po nekom drugom stupcu, ugradite jednu funkciju Sort unutar druge. Na primjer, možete koristiti ovu formulu za sortiranje tablice Contacts prvo po stupcu LastName, a zatim po stupcu FirstName: Sort( Sort( Contacts, LastName ), FirstName )
Funkcija SortByColumns također se može koristiti za sortiranje tablice na temelju jednog ili više stupaca.
Popis parametara za SortByColumns daje nazive stupaca po kojima će se sortirati, kao i smjer sortiranja po stupcu. Sortiranje se vrši redoslijedom parametara (sortiranje najprije po prvom stupcu, zatim po drugom itd.). Nazivi stupaca navedeni su kao nizovi i zahtijevaju dvostruke navodnike ako su izravno uključeni u popis parametara. Na primjer, SortByColumns( CustomerTable, "LastName" ).
Možete kombinirati SortByColumns s kontrolom Drop down ili List box kako bi se korisnicima omogućilo da odaberu po kojem će se stupcu sortirati.
Osim sortiranja uzlazno ili silazno, SortByColumns može sortirati i na temelju jednostupčane tablice s vrijednostima. Na primjer, možete sortirati zapis po nazivu dana u tjednu unoseći [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] kao redoslijed sortiranja. Svi zapisi koji imaju Monday doći će prvi, nakon čega slijedi Tuesday itd. Pronađeni zapisi koji se ne pojavljuju u tablici sortiranja stavljaju se na kraj popisa.
Tablice su vrijednost u Power Apps, baš kao i niz ili broj. Mogu se proslijeđivati funkcijama i iz njih vraćati. Sortiraj i SortByColumn ne mijenjaju tablicu, već uzimaju tablicu kao argument i vraćaju novu tablicu koja je sortirana. Dodatne informacije potražite u odjeljku rad s tablicama.
Delegacija
Kadgod je moguće, Power Apps će delegirati filtar i sortirat radnje u izvor podataka i stranicu kroz rezultate na zahtjev. Na primjer, kad pokrenete aplikaciju koja prikazuje kontrolu Galerija ispunjenu podacima, uređaju će se donijeti samo prvi skup podataka. Dok se korisnik pomiče, dodatni se podaci preuzimaju iz izvora podataka. Rezultat je brže vrijeme pokretanja za aplikaciju i pristup vrlo velikim skupovima podataka.
Međutim, delegiranje nije uvijek moguće. Izvori podataka razlikuju se prema funkcijama i radnjama koje su podržane uz delegiranje. Ako potpuno delegiranje formule nije moguće, okruženje za stvaranje sadržaja označit će dio koji se ne može delegirati upozorenjem. Kadgod je to moguće, uzmite u obzir izmjenu formule za izbjegavanje funkcija i operatera koji se ne mogu delegirati. Popis delegacija detaljno iznosi koji se izvori podataka i radnje mogu delegirati.
Ako delegiranje nije moguće, Power Apps će preuzeti samo mali skup zapisa na kojima se može lokalno raditi. Filtriranje i sortiranje funkcija radit će na smanjenom skupu zapisa. Ono što je dostupno u Galeriji možda neće biti potpuna priča, što može biti zbunjujuće za korisnike.
Dodatne informacije potražite u odjeljku Pregled delegiranja.
Sintaksa
Sort( tablica; formula [; redoslijed sortiranja] )
- Tablica - Obavezno. Tablica koja se sortira.
- Formula - Obavezno. Ova formula se procjenjuje za svaki zapis tablice, a rezultati koriste za sortiranje tablice. Možete referencirati stupce unutar tablice.
- SortOrder - Nije obavezno. Navedite SortOrder.Descending kako biste sortirali tablicu silaznim redoslijedom. SortOrder.Ascending je zadana vrijednost.
SortByColumns(Tablica,ColumnName1 [, SortOrder1,ColumnName2,SortOrder2 , ... ] )
Tablica - Obavezno. Tablica koja se sortira.
ColumnNames - Obavezno. Nazivi stupaca po kojima se sortira, kao nizovi.
SortOrders - Nije obavezno. SortOrder.Ascending ili SortOrder.Descending. SortOrder.Ascending je zadana postavka. Ako se navede više vrijednosti ColumnNames, svi osim zadnjeg stupca moraju sadržavati SortOrder.
Napomena
U slučaju SharePoint i Excel izvora podataka koji sadrže nazive stupaca s razmacima, svaki razmak navedite kao "_x0020_". Na primjer, navedite "Column Name" kao "Column_x0020_Name".
SortByColumns(Tablica ; ColumnName; SortOrderTable )
Tablica - Obavezno. Tablica koja se sortira.
ColumnName- Obavezno. Naziv stupca po kojem se sortira, kao nizovi.
SortOrderTable - obavezno. Jednostupčana tablica vrijednosti po kojoj se sortira.
Napomena
U slučaju SharePoint i Excel izvora podataka koji sadrže nazive stupaca s razmacima, svaki razmak navedite kao "_x0020_". Na primjer, navedite "Column Name" kao "Column_x0020_Name".
Primjeri
U sljedećim primjerima koristit ćemo IceCreamizvor podataka, koji sadrži podatke u ovoj tablici:
Formula | Opis | Rezultat |
---|---|---|
Sort( sladoled, okus) SortByColumns( Sladoled, "Okus") |
Sortira IceCream po stupcu Flavor. Stupac Flavor sadrži nizove, pa se tablica sortira abecedno. Po zadanim postavkama, redoslijed sortiranja je uzlazan. | |
Sort( Sladoled, količina ) SortByColumns( Sladoled, "Količina") |
Sortira IceCream po stupcu Quantity. Stupac Quantity sadrži brojeve, pa se tablica sortira numerički. Po zadanim postavkama, redoslijed sortiranja je uzlazan. | |
Sort( Sladoled, Količina, SortOrder.Silazno ) SortByColumns( Sladoled, "Količina", SortOrder.Silazno) |
Sortira IceCream po stupcu Quantity. Stupac Quantity sadrži brojeve, pa se sortiranje provodi numerički. Redoslijed sortiranja naveden je kao silazni. | |
Sort( Sladoled, količina + po narudžbi) | Sortira IceCream zbrojem njegovih stupaca Quantity i OnOrder za svaki zapis pojedinačno. Zbroj je broj, pa se tablica sortira numerički. Po zadanim postavkama, redoslijed sortiranja je uzlazan. Kako sortiramo prema formuli, a ne po sirovim vrijednostima stupaca, nema ekvivalenta korištenju funkcije SortByColumns. | |
Sort( Sort( IceCream, OnOrder ), Količina ) SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending ) |
Sortira IceCream prvo po stupcu OnOrder, a zatim po stupcu Quantity. Imajte na umu da se „Pistachio” uzdigao iznad „Vanilla” pri prvom sortiranju po stupcu OnOrder, a onda su se zajedno pomaknuli na prikladno mjesto po stupcu Količina. | |
SortByColumns( Sladoled, "Okus", [ "Pistacija", "Jagoda" ] ) | Sortira IceCream po stupcu Flavor na temelju jednostupčane tablice koja sadrži vrijednosti „Pistachio” i „Strawberry”. Zapisi koji za Flavor imaju „Pistachio” pojavit će se prvi u rezultatu, za čim slijede zapisi koji sadrže „Strawberry”. Vrijednosti u stupcu Flavor koje nemaju podudaranja, kao što je „Vanilla”, pojavit će se nakon podudarnih stavki. |
Korak po korak
Da biste sami izveli ove primjere, stvorite izvor podataka IceCream kao zbirku:
- Dodajte gumb i postavite njegovo svojstvo OnSelect na ovu formulu:
ClearCollect (sladoled, { okus: "čokolada", količina: 100, po narudžbi: 150 }, { okus: "vanilija", količina: 200, po narudžbi: 20 }, { okus: "jagoda", količina: 300, po narudžbi: 0 }, { okus: "čokolada od mente", količina: 60, po narudžbi: 100 }, { okus: "pistacija", količina: 200, po narudžbi: 10 } ) - Prikažite pretpregled aplikacije, odaberite gumb, a zatim pritisnite Esc da biste se vratili na zadani radni prostor.
- Odaberite Zbirke u izborniku Datoteka kako biste prikazali zbirku koju ste upravo stvorili, a zatim pritisnite Esc da biste se vratili na zadani radni prostor.
Sort
Dodajte još jedan gumb i postavite njegovo svojstvo OnSelect na ovu formulu:
ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )Prethodna formula stvara drugu zbirku, nazvanu SortByFlavor, koja sadrži iste podatke kao IceCream. No, nova zbirka sadrži podatke sortirane abecedno prema stupcu Flavor i to uzlaznim redoslijedom.
Pritisnite F5 i odaberite novi gumb, a zatim pritisnite Esc.
Odaberite Zbirke u izborniku Datoteka kako biste prikazali obje zbirke, a zatim pritisnite Esc da biste se vratili na zadani radni prostor.
Ponovite posljednja tri koraka, ali promijenite naziv zbirke koju želite stvoriti i zamijenite formulu funkcije Sort drugačijom formulom iz tablice primjera navedene ranije u ovom odjeljku, koja koristi funkciju Sort.
SortByColumns
Dodajte još jedan gumb i postavite njegovo svojstvo OnSelect na ovu formulu:
ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )Prethodna formula stvara treću zbirku, nazvanu SortByQuantity, koja sadrži iste podatke kao IceCream. No, nova zbirka sadrži podatke sortirane numerički po stupcu Quantity i to uzlaznim redoslijedom, a zatim po stupcu Flavor silaznim redoslijedom.
Pritisnite F5 i odaberite novi gumb, a zatim pritisnite Esc.
Odaberite Zbirke u izborniku Datoteka kako biste prikazali sve tri zbirke, a zatim pritisnite Esc da biste se vratili na zadani radni prostor.
Ponovite posljednja tri koraka, ali promijenite naziv zbirke koju želite stvoriti i zamijenite formulu funkcije SortByColumns drugačijom formulom iz tablice primjera navedene ranije u ovom odjeljku, koja koristi funkciju SortByColumns.