Funkcije GroupBy i Razgrupiranje
Odnosi se na: Aplikacije od gotovih gradivnih elemenata Aplikacije stvorene prema modelu Power Pages
Grupira i razgrupira zapise neke tablice.
Opis
Funkcija GroupBy vraća tablicu sa zapisima grupiranim na temelju vrijednosti u jednoj ili više stupaca. Zapisi u istoj grupi smještaju se u jedan zapis, s dodatnim stupcem koji sadrži ugniježđenu tablicu preostalih stupaca.
Funkcija Ungroup preokreće proces GroupBy. Ova funkcija vraća tablicu, razbijajući u zasebne zapise sve zapise koji su bili grupirani zajedno.
Možete grupirati zapise koristeći GroupBy, izmijenite tablicu koju vraća i zatim razgrupirajte zapise u izmijenjenu tablicu koristeći Ungroup. Na primjer, možete ukloniti grupu zapisa slijedeći ovaj pristup:
- Koristite funkciju GroupBy.
- Upotrijebite funkciju Filter kako biste uklonili cijelu grupu zapisa.
- Koristite funkciju Ungroup.
Također, možete zbrojiti rezultate na temelju grupiranja:
- Koristite funkciju GroupBy.
- Funkciju AddColumns s funkcijama Sum,Average ... i drugim funkcijama zbrajanja koristite za dodavanje novog stupca koji je zbroj grupnih tablica.
- Upotrijebite funkciju DropColumns kako biste ispustili grupnu tablicu.
Ungroup pokušava sačuvati izvorni redoslijed zapisa koji su uneseni u GroupBy. To nije uvijek moguće (na primjer, ako originalna tablica sadrži zapise prazno).
Tablica predstavlja jednu vrijednost u aplikaciji Power Apps, baš poput nekog niza ili broja. Možete odrediti tablicu kao argument neke funkcije, a funkcija može vratiti tablicu. Funkcije GroupBy i Ungroup ne mijenjaju tablicu; umjesto toga uzimaju tablicu kao argument i vraćaju drugačiju tablicu. Dodatne informacije potražite u odjeljku rad s tablicama.
Napomena
Prije Power Apps verzije 3.24042 nazivi stupaca navedeni su tekstnim nizom pomoću dvostrukih navodnika, a ako su povezani s izvor podataka također su trebali biti logički nazivi. Na primjer, umjesto zaslonsko ime Ime bez navodnika korišten je logički naziv "cr43e_name" s dvostrukim navodnicima. Za SharePoint i Excelove izvore podataka koji sadrže nazive stupaca s razmacima, svaki je razmak određen sa" _x0020_", na primjer "Naziv stupca" kao "Column_x0020_Name". Nakon ove verzije sve su aplikacije automatski ažurirane na novu sintaksu opisanu u ovom članku.
Sintaksa
GroupBy( tablica, naziv stupca 1 [, naziv stupca 2, ... ], naziv grupnog stupca )
- Table – obavezno. Tablica koju treba grupirati.
- ColumnName(s) – obavezno. Nazivi stupaca u Tablica kojima se grupiraju zapisi. Ti stupci postaju stupci u rezultirajućoj tablici.
- GroupColumnName – obavezno. Naziv stupca za pohranu podataka o zapisu koji nije u naziv(ima) stupca.
Ungroup( tablica, naziv grupnog stupca )
- Table – obavezno. Tablica koju treba razgrupirati.
- GroupColumnName – obavezno. Stupac koji sadrži postavke podataka o zapisu s funkcijom GroupBy.
Primjeri
Stvaranje zbirke
- Dodajte gumb i postavite njegovo svojstvo Text tako da gumb prikazuje Original.
- Postavite svojstvo OnSelect gumba Original na ovu formulu:
ClearCollect( CityPopulations,
{ City: "London", Country: "United Kingdom", Population: 8615000},
{ City: "Berlin", Country: "Germany", Population: 3562000},
{ City: "Madrid", Country: "Spain", Population: 3165000},
{ City: "Rome", Country: "Italy", Population: 2874000},
{ City: "Paris", Country: "France", Population: 2273000},
{ City: "Hamburg", Country: "Germany", Population: 1760000},
{ City: "Barcelona", Country: "Spain", Population: 1602000},
{ City: "Munich", Country: "Germany", Population: 1494000},
{ City: "Milan", Country: "Italy", Population: 1344000}
)
Odaberite gumb Original dok držite pritisnutu tipku Alt.
Upravo ste stvorili zbirku, nazvanu CityPopulations, koja sadrži sljedeće podatke:
Da biste prikazali ovu zbirku, odaberite mogućnost Zbirke u izborniku Datoteka, a zatim odaberite zbirku CityPopulations. Pojavljuje se prvih pet zapisa u zbirci:
Grupiranje zapisa
Dodajte još jedan gumb i postavite njegovo svojstvo Text na „Group”.
Postavite svojstvo OnSelect ovog gumba na sljedeću formulu:
ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities ) )
Odaberite gumb Group dok držite pritisnutu tipku Alt.
Upravo ste stvorili zbirku, nazvanu CitiesByCountry, u kojoj su zapisi iz prethodne zbirke grupirani prema stupcu Country.
Za prikaz prvih pet zapisa u ovoj zbirci, odaberite mogućnost Zbirke u izborniku Datoteka.
Da biste prikazali populacije gradova u državi/regiji, odaberite ikonu tablice u stupcu Gradovi za tu državu/regiju (na primjer, Njemačka):
Filtriranje i razgrupiranje zapisa
Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „Filter”.
Postavite svojstvo OnSelect ovog gumba na sljedeću formulu:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" in Country ) )
Odaberite gumb koji ste dodali dok držite pritisnutu tipku Alt.
Upravo ste stvorili treću zbirku, nazvanu CitiesByCountryFiltered, koja sadrži samo one zemlje koje u svom nazivu imaju „e” (dakle, ne Španjolska ili Italija).
Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „Ungroup”.
Postavite svojstvo OnSelect ovog gumba na sljedeću formulu:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities ) )
To daje sljedeći rezultat:
Zbrajanje rezultata
Još jedna operacija koju možemo izvesti na grupiranoj tablici je sastavljanje rezultata. U ovom primjeru zbrojit ćemo broj stanovnika većih gradova u svakoj zemlji/regiji.
Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „Sum”.
Postavite svojstvo OnSelect gumba Sum na ovu formulu:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Zbroj gradskih populacija', Zbroj( gradovi, stanovništvo ) )
To daje sljedeći rezultat:
AddColumns započinje osnovnom zbirkom CitiesByCountry i dodaje novi stupac Sum of City Populations. Vrijednosti ovog stupca izračunavaju se redak po redak formulom Sum( Cities, Population ). AddColumns pruža vrijednost stupca Cities (tablica) za svaki redak i Sum dodaje Population za svaki redak ove podtablice.
Sada kada imamo sumu koju želimo, možemo iskoristiti DropColumns kako bismo uklonili podtablice.
Dodajte još jedan gumb i postavite njegovo svojstvo Text tako da gumb prikazuje „SumOnly”.
Postavite svojstvo OnSelect gumba „SumOnly” na ovu formulu:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities ) )
To daje sljedeći rezultat:
Imajte na umu da nismo morali razgrupirati ovu tablicu.