GroupBy i Ungroup funkcije
Odnosi se na: Canvas aplikacije Aplikacije zasnovane na modelu Power Pages
Grupisani i razgrupisani zapisi iz tabele.
Opis
Funkcija GroupBy vraća tabelu sa zapisima grupiranim na osnovu vrednosti u jednoj ili više kolona. Zapisi iz iste grupe smeštaju se u jedan zapis, sa dodatnom kolonom koja sadrži ugnežđenu tabelu preostalih kolona.
Funkcija Ungroup preokreće proces GroupBy. Ova funkcija vraća tabelu, razbijajući u zasebne zapise sve zapise koji su grupisani zajedno.
Možete grupisati zapise koristeći GroupBy, izmenite tabelu koju vrati, a zatim razgrupišite zapise u izmenjenoj tabeli koristeći Ungroup. Na primer, možete da uklonite grupu zapisa sledeći ovaj pristup:
- Koristite funkciju GroupBy.
- Koristite funkciju Filter za uklanjanje cele grupe zapisa.
- Koristite funkciju Ungroup.
Takođe možete da objedinite rezultate na osnovu grupisanja:
- Koristite funkciju GroupBy.
- Koristite funkciju AddColumns sa Sum, Average i drugim agregatnim funkcijama da biste dodali novu kolonu, koja je agregat grupnih tabela.
- Koristite funkciju DropColumns za otpuštanje grupne tablice.
Ungroup pokušava da sačuva prvobitni redosled zapisa koji su ubačeni u GroupBy. To nije uvek moguće (na primer, ako originalna tabela sadrži prazne zapise).
Tabela je vrednost u Power Apps, baš kao niska ili broj. Možete odrediti tabelu kao argument funkcije, a funkcija može da vrati tabelu. GroupBy i Ungroup ne modifikuju tabelu; umesto toga uzimaju tabelu kao argument i vraćaju drugu tabelu. Za više detalja pogledajte rad sa tabelama.
Belešku
U Power Apps prethodnoj verziji 3.24042, imena kolona su specificirana tekstualnim nizom koristeći dvostruke navodnike, a ako su povezana sa izvor podataka takođe su morala da budu logička imena. Na primer, logičko ime "cr43e_name" sa dvostrukim navodnicima je korišćeno umesto ime za prikaz Ime bez navodnika. Za SharePoint i Ekcel izvore podataka koji sadrže imena kolona sa razmacima, svaki prostor je naveden sa "_x0020_", na primer "Ime kolone" kao "Column_x0020_Name". Nakon ove verzije, sve aplikacije su automatski ažurirane na novu sintaksu opisanu u ovom članku.
Sintaksa
GroupBi(Tabela,ColumnName1 [, ColumnName2 , ... ],GroupColumnName)
- Tabela - Obavezno. Tabela za grupisanje.
- ColumnNames - Obavezno. Imena kolona u tabeli po kojima se grupišu zapisi. Ove kolone postaju kolone u rezultirajućoj tabeli.
- GroupColumnName- Obavezno. Naziv kolone za čuvanje podataka o zapisu koji nije u ColumnName(s).
Ungroup(Tabela,GroupColumnName )
- Tabela - Obavezno. Tabela za razgrupisanje.
- GroupColumnName- Obavezno. Kolona koja sadrži podešavanje podataka o zapisu sa funkcijom GroupBy.
Primeri
Kreirajte kolekciju
- Dodajte dugme i podesite njegovo svojstvo Text tako da dugme prikazuje Originalno.
- Podesite svojstvo OnSelect dugmeta Original prema ovoj formuli:
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}
)
Dok držite taster Alt pritisnutim, izaberite dugme Original.
Upravo ste kreirali kolekciju, nazvanu CityPopulations, koja sadrži ove podatke:
Da biste prikazali ovu kolekciju, izaberite Kolekcije iz menija Datoteka, a zatim izaberite kolekciju CityPopulations. Pojavljuje se prvih pet zapisa u kolekciji:
Grupisanje zapisa
Dodajte još jedno dugme i podesite njegovo svojstvo Text na „Grupa“.
Podesite svojstvo OnSelect ovog dugmeta prema ovoj formuli:
ClearCollect( CitiesByCountry, GroupBy( CityPopulations, Country, Cities )
Dok držite taster Alt pritisnutim, izaberite dugme Group.
Upravo ste kreirali kolekciju po imenu CitiesByCountry, u kojoj su zapisi iz prethodne kolekcije grupisani po koloni Country.
Da biste prikazali prvih pet zapisa u ovoj kolekciji, izaberite Collections iz menija Datoteka.
Da biste prikazali populaciju gradova u zemlji / regionu, izaberite ikonu tabele u koloni Gradovi za tu zemlju / region (na primer, Nemačka):
Filtriranje i razgrupisanje zapisa
Dodajte još jedno dugme i podesite njegovo svojstvo Text tako da dugme prikazuje „Filter“.
Podesite svojstvo OnSelect ovog dugmeta prema ovoj formuli:
ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" u zemlji ) )
Dok držite taster Alt pritisnutim, izaberite dugme koje ste dodali.
Upravo ste kreirali treću kolekciju, pod nazivom CitiesByCountryFiltered, koja sadrži samo one zemlje koje u svom imenu imaju „e“ (to jest, ne Španija ili Italija).
Dodajte još jedno dugme i podesite njegovo svojstvo Text tako da dugme prikazuje „Ungroup“.
Podesite svojstvo OnSelect ovog dugmeta prema ovoj formuli:
ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities )
Koji rezultira u:
Objedinjeni rezultati
Još jedna operacija koju možemo izvršiti na grupisanoj tabeli je kompilacija rezultata. U ovom primeru, mi ćemo sumirati stanovništvo većih gradova u svakoj zemlji / regionu.
Dodajte još jedno dugme i podesite njegovo svojstvo Text tako da dugme prikazuje „Zbir“.
Podesite svojstvo OnSelect dugmeta „Zbir“ prema ovoj formuli:
ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'Zbir gradskih populacija', Sum( Gradovi, Stanovništvo ) ) )
Koji rezultira u:
AddColumns počinje sa osnovnom kolekcijom CitiesBiCountri i dodaje novu kolonu Zbir gradskih populacija. Vrednosti ove kolone izračunavaju se red po red na osnovu formule Sum( Cities, Population ). AddColumns obezbeđuje vrednost kolone Gradovi (tabela) za svaki red, a Sum dodaje stanovništvo za svaki red ove podtabele.
Sada kada imamo zbir koji želimo, možemo da koristimo DropColumns da biste uklonili pod tabele.
Dodajte još jedno dugme i podesite njegovo svojstvo Text tako da dugme prikazuje „SumOnly“.
Podesite svojstvo OnSelect dugmeta „SumOnly“ prema ovoj formuli:
ClearCollect( CityPopulationsSumOnly, DropColumns( CityPopulationsSum, Cities )
Koji rezultira u:
Imajte na umu da nismo morali da razgrupišemo ovu tabelu.