Funkcije sortiranja i sortiranjaStupaca

Odnosi se na: Aplikacije od gotovih gradivnih elemenata Tokovi radne površine CLI aplikacije stvorene prema Power Platform 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 aplikaciji Power Apps, baš poput nekog niza ili broja. Mogu se proslijeđivati funkcijama i iz njih vraćati. Funkcije Sort i SortByColumn ne mijenjaju tablicu; umjesto toga uzimaju tablicu kao argument i vraćaju novu, sortiranu tablicu. 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( Table, Formula [, SortOrder ] )

  • Table – 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 – neobavezno. Navedite SortOrder.Descending kako biste sortirali tablicu silaznim redoslijedom. SortOrder.Ascending je zadana vrijednost.

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

  • Table – obavezno. Tablica koja se sortira.

  • ColumnName(s) – obavezno. Nazivi stupaca po kojima se sortira, kao nizovi.

  • SortOrder(s) – neobavezno. SortOrder.Ascending ili SortOrder.Descending. SortOrder.Ascending je zadana vrijednost. 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( Table, ColumnName, SortOrderTable )

  • Table – 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:

Primjer za sladoled.

Formula Opis Rezultat
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Sortira IceCream po stupcu Flavor. Stupac Flavor sadrži nizove, pa se tablica sortira abecedno. Po zadanim postavkama, redoslijed sortiranja je uzlazan. Sortirano po abecedi.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Sortira IceCream po stupcu Quantity. Stupac Quantity sadrži brojeve, pa se tablica sortira numerički. Po zadanim postavkama, redoslijed sortiranja je uzlazan. Sortirano numerički.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Sortira IceCream po stupcu Quantity. Stupac Quantity sadrži brojeve, pa se sortiranje provodi numerički. Redoslijed sortiranja naveden je kao silazni. Sortirano numerički i silazno.
Sort( IceCream, Quantity + OnOrder ) 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. Sortirano numerički i uzlazno.
Sort( Sort( IceCream, OnOrder ), Quantity )

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. Sortirano s pistacijom iznad vanilije.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) 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. Sortirano s pistacijom iznad jagode.

Korak po korak

Da biste sami izveli ove primjere, stvorite izvor podataka IceCream kao zbirku:

  1. Dodajte gumb i postavite njegovo svojstvo OnSelect na ovu formulu:
    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. Prikažite pretpregled aplikacije, odaberite gumb, a zatim pritisnite Esc da biste se vratili na zadani radni prostor.
  3. 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

  1. 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.

  2. Pritisnite F5 i odaberite novi gumb, a zatim pritisnite Esc.

  3. Odaberite Zbirke u izborniku Datoteka kako biste prikazali obje zbirke, a zatim pritisnite Esc da biste se vratili na zadani radni prostor.

  4. 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

  1. Dodajte još jedan gumb i postavite njegovo svojstvo OnSelect na ovu formulu:
    ClearCollect( SortByQuantity, SortByColumns( Sladoled, "Količina", 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.

  2. Pritisnite F5 i odaberite novi gumb, a zatim pritisnite Esc.

  3. Odaberite Zbirke u izborniku Datoteka kako biste prikazali sve tri zbirke, a zatim pritisnite Esc da biste se vratili na zadani radni prostor.

  4. 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.