Rendezés és SortByColumns függvény
A következőkre vonatkozik: Vászonalapú alkalmazások Asztali folyamatok Modellvezérelt alkalmazások Power Pages Power Platform CLI
Ezek a függvények táblák rendezésére szolgálnak.
Feljegyzés
A PAC CLI PAC POWER-FX parancsok nem támogatják a SortByColumns függvényt.
Description
A Sort függvény táblákat rendez a megadott képlet alapján.
A képletet a szoftver a táblában szerepelő minden rekord vonatkozásában kiértékeli, a tábla pedig az így kapott eredmények alapján rendeződik. A képlet eredménye szám, sztring vagy logikai érték lehet – tábla vagy rekord nem.
Az aktuálisan feldolgozás alatt álló rekordmezők elérhetők a képletben. Használja a ThisRecord operátort, vagy egyszerűen hivatkozzon név szerint a mezőkre, ahogy más értéket is hivatkozna. Az As operátor a feldolgozás alatt álló rekord elnevezésére használatos, amellyel könnyebben érthető a képlet, és hozzáférhetőbbek a beágyazott rekordok. További információkért lásd az alábbi példákat és a rekord hatókörével való munkát.
Egy oszlop, majd egy másik oszlop szerinti rendezéshez ágyazzon be egy Sort függvényt egy másikba. Ha például a Névjegyek nevű táblát szeretné először a Vezetéknév, majd az Utónév oszlop alapján rendezni: Sort( Sort( Névjegyek, Vezetéknév ), Utónév )
Egy tábla egy vagy több oszlop szerinti rendezéséhez a SortByColumns függvényt is használhatja.
A SortByColumns paraméterlistájában adhatja meg a rendezéshez használandó oszlopok nevét és az egyes oszlopokhoz tartozó rendezési irányt. A rendezés a paraméterek sorrendjében történik (a tábla először az első, majd a második oszlop alapján lesz rendezve, és így tovább). Mivel az oszlopnevek sztringként vannak megadva, ezért idézőjelek közé kell őket foglalni a paraméterlistában. Például: SortByColumns( Ügyféltábla, "Vezetéknév" ).
Ha a SortByColumns függvényt a Legördülő menü vagy a Listapanel vezérlővel kombinálja, a táblát használók kiválaszthatják a rendezés alapjául szolgáló oszlopokat.
A SortByColumns függvénnyel nemcsak növekvő vagy csökkenő sorrendbe rendezhet, hanem egy egyoszlopos tábla értékei alapján is. Rendezhet például rekordok alapján, ha a rendezés alapjaként megadja a hét napjainak a nevét: [ "Hétfő", "Kedd", "Szerda", "Csütörtök", "Péntek", "Szombat", "Vasárnap" ] A "Hétfő" értéket tartalmazó rekordok kerülnek előre, azokat a "Kedd" követi, és így tovább. A rendezési táblában nem szereplő rekordok a lista végére kerülnek.
A táblázatok értékek, akárcsak a karakterláncok Power Apps vagy számok. így függvények alapjául és eredményeként is szolgálhatnak. A Rendezés és a SortByColumn nem módosítja a táblát, hanem argumentumként fogad el egy táblázatot, és egy új, rendezett táblát ad vissza. További részleteket a táblákkal való munkával foglalkozó témakörben talál.
Meghatalmazás
Amikor lehetséges, a Power Apps az adatforrásnak delegálja a szűrési és rendezési műveleteket, és igény szerint lapozza át az eredményeket. Ha például elindít egy alkalmazást, amely megjelenít egy adatokkal feltöltött gyűjtemény vezérlőt, először csak a bejegyzések első csoportja kerül az eszközre. Miközben a felhasználó görget, további adatok lekérése történik az adatforrásból. Az eredmény az alkalmazás gyorsabb indulása, és a hozzáférés a nagyon nagy adathalmazokhoz.
Azonban előfordulhat, hogy a delegálás nem mindig lehetséges. Az adatforrások eltérőek abból a szempontból, hogy milyen függvények és operátorok esetében támogatják a delegálást. Ha egy képlet teljes delegálása nem lehetséges, a fejlesztői környezet figyelmeztetéssel jelöli meg a nem delegálható részt. Amikor csak lehetséges, érdemes módosítani a képletet, hogy le legyenek nem delegálható függvények és operátorok. A delegálási lista részletesen tartalmazza, hogy mely adatforrások és milyen műveletek delegálhatók.
Ha a delegálás nem lehetséges, a Power Apps a bejegyzéseknek csak egy kis részét hívja le helyben történő használata. A szűrés és rendezés funkciók korlátozott bejegyzéshalmazon fognak működni. Előfordulhat, hogy az, ami a gyűjteményben rendelkezésre áll, nem fedi le a teljes képet, ami zavaros lehet a felhasználók számára.
További információkért lásd: a delegálás áttekintése.
Szintaxis
Rendezés( Táblázat; Formula [; Rendezési sorrend ] )
- Tábla - Kötelező. A rendezendő tábla.
- Képlet - kötelező. A képletet a szoftver a táblában szerepelő minden rekord vonatkozásában kiértékeli, a tábla pedig az így kapott eredmények alapján rendeződik. A hivatkozás alapjául a táblában szereplő oszlopok használhatók.
- SortOrder – Nem kötelező. Adja meg a SortOrder.Descending argumentumot a tábla csökkenő sorrendben történő rendezéséhez. A SortOrder.Ascending az alapértelmezett érték.
SortByColumns( Table, ColumnName1 [, SortOrder1, ColumnName2, SortOrder2, ... ] )
Tábla - Kötelező. A rendezendő tábla.
ColumnNames - Kötelező. A rendezendő oszlopok sztringként megadva.
SortOrders - Nem kötelező. SortOrder.Ascending vagy SortOrder.Descending. A SortOrder.Ascending az alapértelmezett beállítás. Ha több Oszlopnév van megadva, az utolsó kivételével az összes oszlopnak tartalmaznia kell a SortOrder argumentumot.
Feljegyzés
Azoknál a SharePoint- és Excel-adatforrásoknál, amelyek szóközzel ellátott oszlopneveket tartalmaznak, minden szóközt „_x0020_”-ként adjon meg. Például a „Column Name” oszlopot „Column_x0020_Name” értékként adja meg.
SortByColumns( Tábla; Oszlopnév; SortOrderTable )
Tábla - Kötelező. A rendezendő tábla.
ColumnName – Kötelező. A rendezendő oszlop sztringként megadva.
SortOrderTable - Kötelező. A rendezés alapjául szolgáló értékek egyoszlopos táblában.
Feljegyzés
Azoknál a SharePoint- és Excel-adatforrásoknál, amelyek szóközzel ellátott oszlopneveket tartalmaznak, minden szóközt „_x0020_”-ként adjon meg. Például a „Column Name” oszlopot „Column_x0020_Name” értékként adja meg.
Példák
A következő példában a Jégkrémadatforrást használjuk, amely ebben a táblában szerepelteti az adatokat:
Képlet | Ismertetés | Eredmény |
---|---|---|
Rendezés( Fagylalt, íz ) SortByColumns( Fagylalt, "Íz" ) |
A Jégkrém adatforrást az Íz oszlop alapján rendezi. Az Íz oszlop sztringekből áll, így a tábla betűrendben lesz látható. Alapértelmezés szerint a rendezés iránya növekvő. | |
Sort( Fagylalt, mennyiség ) SortByColumns( Fagylalt, "Mennyiség" ) |
A Jégkrém adatforrást a Mennyiség oszlop alapján rendezi. A Mennyiség oszlop számokból áll, ezért a tábla numerikusan lesz rendezve. Alapértelmezés szerint a rendezés iránya növekvő. | |
Sort( Fagylalt, mennyiség, SortOrder.Csökkenő ) SortByColumns( Jégkrém, "Mennyiség", SortOrder.Csökkenő ) |
A Jégkrém adatforrást a Mennyiség oszlop alapján rendezi. A Mennyiség oszlop számokból áll, ezért a rendezés numerikusan történik. A rendezés iránya csökkenőként lett megadva. | |
Sort( Fagylalt, mennyiség + rendelésre ) | A Jégkrém adatforrást a Mennyiség és a Megrendelve oszlop összege alapján rendezi rekordonként. Az összeg egy szám, így a rendezés numerikusan történik. Alapértelmezés szerint a rendezés iránya növekvő. Mivel a rendezés képlet alapján történik, nem nyers oszlopérték szerint, a SortByColumns ebben az esetben nem használható. | |
Sort( Sort( IceCream, OnOrder ), Mennyiség ) SortByColumns( Jégkrém, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending ) |
A Jégkrém adatforrást először a Megrendelve, majd a Mennyiség oszlop alapján rendezi. Megfigyelhető, hogy a „Pisztácia” a „Vanília” elé került a Megrendelve oszlop alapján végzett első rendezéskor, majd a Mennyiség oszlop alapján történt második rendezés után mindkettő a megfelelő helyre került. | |
SortByColumns( Fagylalt, "Íz", [ "Pisztácia", "Eper" ] ) | A Jégkrém adatforrást az Íz oszlop alapján rendezi egy egyoszlopos táblával, amely a „Pisztácia” és az „Eper” értéket tartalmazza. Azok a rekordok, amelyek Íz-értéke „Pisztácia”, előre kerülnek, őket pedig az „Eper” értékűek követik. Az Íz oszlop azon értékei, amelyekkel nincs egyezés, például a „Vanília”, az egyezést mutató elemek mögé kerülnek. |
Lépésről lépésre
Ezeket a példákat úgy próbálhatja ki, ha gyűjteményként létrehozza a Jégkrém adatforrást:
- Adjon hozzá egy gombot, és a Kiválasztáskor tulajdonság értékeként adja meg ezt a képletet:
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 } ) - Tekintse meg az alkalmazás előnézetét, kattintson a gombra, majd az Esc billentyűt lenyomva térjen vissza az alapértelmezett munkaterületre.
- Az így létrehozott gyűjteményt a Fájl menü Gyűjtemények elemét választva jelenítheti meg, majd az Esc billentyűt lenyomva térhet vissza az alapértelmezett munkaterületre.
Sort
Adjon hozzá egy újabb gombot, az OnSelect tulajdonság értékeként pedig állítsa be ezt a képletet:
ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )Ez a képlet egy második, SortByFlavor (Ízszerintirendezés) nevű gyűjteményt hoz létre, amely a Jégkrém gyűjteménnyel azonos adatokat tartalmaz. Az új gyűjtemény azonban már az Íz oszlop alapján, növekvő betűrendben jeleníti meg az adatokat.
Nyomja le az F5 billentyűt, kattintson az új gombra, majd nyomja le az Esc billentyűt.
A két gyűjteményt a Fájl menü Gyűjtemények elemét választva jelenítheti meg, majd az Esc billentyűt lenyomva térhet vissza az alapértelmezett munkaterületre.
Ismételje meg az utolsó három lépést, de módosítsa a létrehozni kívánt gyűjtemény nevét, a Sort függvényt pedig cserélje a példákat tartalmazó fenti táblázat egy másik Sort függvényére.
SortByColumns
Adjon hozzá egy újabb gombot, az OnSelect tulajdonság értékeként pedig állítsa be ezt a képletet:
ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Csökkenő ) )Ez a képlet egy harmadik, SortByQuantity (Mennyiségszerintirendezés) nevű gyűjteményt hoz létre, amely a Jégkrém gyűjteménnyel azonos adatokat tartalmaz. Az új gyűjtemény azonban először a Mennyiség oszlop szerint növekvő numerikus sorrendbe, majd az Íz oszlop alapján csökkenő sorrendbe van rendezve.
Nyomja le az F5 billentyűt, kattintson az új gombra, majd nyomja le az Esc billentyűt.
A három gyűjteményt a Fájl menü Gyűjtemények elemét választva jelenítheti meg, majd az Esc billentyűt lenyomva térhet vissza az alapértelmezett munkaterületre.
Ismételje meg az utolsó három lépést, de módosítsa a létrehozni kívánt gyűjtemény nevét, a SortByColumns függvényt pedig cserélje a példákat tartalmazó fenti táblázat egy másik SortByColumns függvényére.