Deli putem


Funkcije sortiranja i sortiranjaByColumns

Važi za: Canvas aplikacije Desktop flows Model-driven apps Power Pages Power Platform CLI

Sortira tabelu.

Belešku

PAC CLI pac power-fx komande ne podržavaju funkciju SortByColumns .

Opis

Funkcija Sort sortira tabelu na osnovu formule.

Formula se izračunava za svaki zapis u tabeli, a rezultati se koriste za sortiranje tabele. Formula mora da ima broj, nisku ili logičku vrednost kao rezultat; ona ne može da ima tabelu ili zapis kao rezultat.

Polja zapisa koji se trenutno obrađuje su dostupna u formuli. Koristite operator ThisRecord ili jednostavno stavite referencu na polja po nazivu kao i bilo koju drugu vrednost. Možete i da koristite operator As za imenovanje zapisa koji se obrađuje što može da pomogne da vaša formula bude lakša za razumevanje i učini ugnežđene zapise dostupnima. Više informacija potražite u primerima u nastavku i članku o radu sa opsegom zapisa.

Da biste prvo sortirali po jednoj koloni, a zatim po drugoj, u drugu kolonu ste umetnuli formulu Sort. Na primer, možete koristiti ovu formulu da biste prvo sortirali tabelu Contacts prema koloni LastName, a zatim prema koloni FirstName: Sort( Sort( Contacts, LastName ), FirstName )

Funkcija SortByColumns se takođe može koristiti za sortiranje tabele na osnovu jedne ili više kolona.

Lista parametara za SortByColumns daje nazive kolona za poređenje i smer sortiranja po koloni. Sortiranje se obavlja po redosledu parametara (sortirano prvo prema prvoj koloni, zatim prema drugoj i tako redom). Nazivi kolona su navedeni kao niske za koje su potrebni dvostruki navodnici ako su direktno uključene u listu parametara. Na primer, SortByColumns( CustomerTable, "LastName" ).

Možete da kombinujete SortByColumns sa kontrolom Padajuća lista ili Polje liste kako bi se omogućilo korisnicima da odaberu po kojoj koloni će sortirati.

Pored rastućeg ili opadajućeg sortiranja, SortByColumns može sortirati prema tabeli vrednosti sa jednim kolonom. Na primer, možete sortirati zapis na osnovu imena dana u nedelji unošenjem podataka [„ponedeljak“, „utorak“, „sreda“, „četvrtak“, „petak“, „subota“, „nedelja“] kao redosled sortiranja. Svi zapisi koji imaju ponedeljak" biće na prvom mestu, a za njima sledi utorak i tako redom. Pronađeni zapisi koji se ne pojavljuju u tabeli sortiranja stavljaju se na kraj liste.

Tabele su vrednost u Power Apps, baš kao niska ili broj. Mogu se proslediti u funkcije i funkcije ih mogu vratiti. Sort i SortByColumn ne menjaju tabelu; umesto toga uzimaju tabelu kao argument i vraćaju novu tabelu koja je sortirana. Za više detalja pogledajte rad sa tabelama.

Delegiranje

Kada je moguće, Power Apps će delegirati operacije za filtriranje i sortiranje izvoru podataka i stranici pomoću rezultata na zahtev. Na primer, kada pokrenete aplikaciju u kojoj je prikazana kontrola Galerija popunjena podacima, samo prvi skup zapisa će prvobitno biti prenet u uređaj. Dok korisnik pomera sadržaj, dodatni podaci se preuzimaju iz izvora podataka. Rezultat je brže vreme pokretanja aplikacije i pristup veoma velikim skupovima podataka.

Međutim, delegiranje nije uvek moguće. Izvori podataka se razlikuju prema funkcijama i operatorima koje podržavaju pomoću delegiranja. Ako kompletno delegiranje formule nije moguće, okruženje za kreiranje koristi upozorenje da označi deo koji ne može da se delegira. Kada je moguće, razmislite o promeni formule da biste izbegli funkcije i operatore koji ne mogu da se delegiraju. Lista delegiranja navodi koji izvori podataka i operacije mogu da se delegiraju.

Ako delegiranje nije moguće, Power Apps preuzima samo mali skup zapisa sa kojima može lokalno da se radi. Funkcije filtriranja i sortiranja funkcionišu na ograničenom skupu zapisa. Ono što je dostupno u Galeriji možda nije kompletna slika, što može da zbuni korisnike.

Više informacija potražite u pregledu delegiranja.

Sintaksa

Sort( Table, Formula [, SortOrder ] )

  • Table – Obavezno. Tabela za sortiranje.
  • Formula – Obavezno. Ova formula se izračunava za svaki zapis u tabeli, a rezultati se koriste za sortiranje tabele. Možete da referencirate kolone unutar tabele.
  • SortOrder – Opcionalno. Navedite SortOrder.Descending za sortiranje tabele u opadajućem redosledu. SortOrder.Ascending je podrazumevana vrednost.

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

  • Table – Obavezno. Tabela za sortiranje.

  • ColumnName(s) – Obavezno. Nazivi kolona za sortiranje, kao niske.

  • SortOrder(s) – Opcionalno. SortOrder.Ascending ili SortOrder.Descending. SortOrder.Ascending je podrazumevana vrednost. Ako ima više ColumnNames, sve kolone osim poslednje moraju da sadrže SortOrder.

    Belešku

    Za SharePoint i Excel izvore podataka koji sadrže nazive kolona sa razmacima, navedite svaki razmak kao "_x0020_". Na primer, navedite "Column Name" kao "Column_x0020_Name".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – Obavezno. Tabela za sortiranje.

  • ColumnName – Obavezno. Naziv kolone za sortiranje, kao niske.

  • SortOrderTable – Obavezno. Tabela vrednosti sa jednom kolonom prema kojoj se sortira.

    Belešku

    Za SharePoint i Excel izvore podataka koji sadrže nazive kolona sa razmacima, navedite svaki razmak kao "_x0020_". Na primer, navedite "Column Name" kao "Column_x0020_Name".

Primeri

Za sledeće primere ćemo koristiti IceCream izvor podataka, koji sadrži podatke u ovoj tabeli:

IceCream primer.

Formula Opis rezultat
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Sortira IceCream prema koloni Flavor. Kolona Flavor sadrži niske, pa je tabela sortirana po abecedi. Podrazumevano je redosled sortiranja rastući. Sortirano po azbučnom redu.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Sortira IceCream prema koloni Quantity. Kolona Quantity sadrži brojeve, pa je tabela sortirana numerički. Podrazumevano je redosled sortiranja rastući. Sortirano numerički.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Sortira IceCream prema koloni Quantity. Kolona Quantity sadrži brojeve, pa se sortiranje obavlja numerički. Redosled sortiranja je naveden kao opadajući. Sortirano numerički i u opadajućem redosledu.
Sort( IceCream, Quantity + OnOrder ) Sortira IceCream prema zbiru kolona Quantity i OnOrder posebno za svaki zapis. Zbir je broj, pa je tabela sortirana numerički. Podrazumevano je redosled sortiranja rastući. Pošto sortiramo prema formuli, a ne po sirovim vrednostima kolona, nema ekvivalentne upotrebe SortByColumns. Sortirano numerički i u rastućem redosledu.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns(IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending )
Sortira prvo IceCream prema koloni OnOrder, a zatim prema koloni Quantity. Imajte na umu da se „Pistachio“ podigao iznad „Vanilla“ u prvom sortiranju zasnovanom na OnOrder, a zatim su se zajedno premestili na odgovarajuće mesto na osnovu Quantity. Sortirano sa pistaćima iznad vanilije.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Sortira IceCream prema koloni Flavor na osnovu kolone sa jednom tabelom koja sadrži "Pistachio" i "Strawberry". Zapisi koji imaju Flavor "Pistachio" će se prvi pojaviti u rezultatu, a zatim slede zapisi koji sadrže "Strawberry". Za vrednosti u koloni Flavor koji se ne podudaraju, kao što je "Vanilla", pojaviće se posle stavki koje se podudaraju. Sortirano sa pistaćima iznad jagode.

Korak po korak

Da biste sami pokrenuli ove primere, kreirajte izvor podataka IceCream kao kolekciju:

  1. Dodajte dugme i podesite njegovo svojstvo OnSelect prema ovoj formuli:
    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. Pregledajte aplikaciju, izaberite dugme, pritisnite Esc da biste se vratili na podrazumevani radni prostor.
  3. Izaberite Kolekcije u meniju Datoteka za prikaz kolekcije koju ste upravo kreirali, a zatim pritisnite taster Esc da biste se vratili na podrazumevani radni prostor.

Sortiraj

  1. Dodajte drugo dugme i podesite njegovo svojstvo OnSelect prema ovoj formuli:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Prethodna formula kreira drugu kolekciju, koja je nazvana SortByFlavor, koja sadrži iste podatke kao Ice Cream. Međutim, nova kolekcija sadrži podatke poređane abecednim redom prema koloni Flavor u rastućem redosledu.

  2. Pritisnite F5 i izaberite novo dugme, a zatim pritisnite taster Esc.

  3. Izaberite Kolekcije u meniju Datoteka za prikaz obe kolekcije, a zatim pritisnite taster Esc da biste se vratili na podrazumevani radni prostor.

  4. Ponovite poslednja tri koraka, ali promenite ime kolekcije koju želite da kreirate i zamenite formulu Sort drugačijom formulom nego što je u tabeli sa primerima iz ovog odeljka koja koristi Sort.

SortByColumns

  1. Dodajte drugo dugme i podesite njegovo svojstvo OnSelect prema ovoj formuli:
    ClearCollect(SortByQuantity, SortByColumns(IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    Prethodna formula kreira treću kolekciju, koja je nazvana SortByQuantity, koja sadrži iste podatke kao Ice Cream. Međutim, nova kolekcija sadrži podatke sortirane numerički prema koloni Quantity u rastućem redosledu, a zatim prema koloni Flavor u opadajućem redosledu.

  2. Pritisnite F5 i izaberite novo dugme, a zatim pritisnite taster Esc.

  3. Izaberite Kolekcije u meniju Datoteka za prikaz sve tri kolekcije, a zatim pritisnite taster Esc da biste se vratili na podrazumevani radni prostor.

  4. Ponovite poslednja tri koraka, ali promenite ime kolekcije koju želite da kreirate i zamenite formulu SortByColumns drugačijom formulom nego što je u tabeli sa primerima iz ovog odeljka koja koristi SortByColumns.