AddColumns, DropColumns, RenameColumns és ShowColumns függvény
A következőkre vonatkozik: Vászonalapú alkalmazások Asztali folyamatok Modellvezérelt alkalmazások Power Platform CLI
Egy tábla alakítása hozzáadással, eltávolítással, átnevezéssel, majd az oszlopok kijelölésével.
A **ForAll függvény tábla formázására is használható a meglévő oszlopokból létrehozott új rekordokat tartalmazó tábla visszaadásával.
Áttekintés
Ezek a függvények egy táblát alakítanak oszlopainak kiigazításával:
- A több oszlopot tartalmazó táblákat egyetlen oszlopra csökkentheti az egyoszlopos függvényekkel (például Alacsonyabb vagy Sqrt) való használathoz.
- Vegyen fel egy számított oszlopot a táblához (például egy Teljes ár oszlopot, amely a Mennyiség és az Egységár szorzatát jeleníti meg).
- Nevezze át az oszlopot egy könnyebben beazonosítható névre a felhasználóknak való megjelenítéshez vagy képletekben való használathoz.
A táblák éppúgy értékek a Power Apps rendszerben, mint a sztringek vagy a számok, a képletek argumentumaként egy táblát is megadhat, és a függvények táblát is visszaadhatnak eredményként.
Feljegyzés
A jelen témakörben ismertetett függvények nem módosítják az eredeti táblákat. Ehelyett argumentumként fogadhatnak egy táblát, és átalakító alkalmazásával egy új táblát adnak vissza. További információt a Táblázatok használata című témakörben talál.
Az adatforrás oszlopai nem módosíthatók ezen függvények használatával. Az adatokat a forrásban kell módosítania. A Collect függvénnyel hozzáadhat oszlopokat egy gyűjteményhez. További információ: Adatforrások használata.
Description
Az AddColumns függvény oszlopot ad hozzá egy táblához, és egy képlettel meghatározza az értékeket az adott oszlopban. A létező oszlopok változatlanok maradnak.
A képletet a tábla minden egyes rekordja esetében kiértékeli.
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.
A DropColumns függvény oszlopokat zár ki egy táblából. Az összes többi oszlop változatlan marad. A DropColumns nem tartalmazza az oszlopokat, a ShowColumns pedig oszlopokat tartalmaz.
A tábla egy vagy több oszlopának átnevezésére használja a RenameColumns függvényt, amihez adjon meg legalább egy argumentumpárt, amely meghatározza a táblában szereplő oszlop nevét (a régi nevet, amelyet le szeretne cserélni) és annak az oszlopnak a nevét, amely nem szerepel a táblában (az új nevet, amelyet használni szeretne). A régi névnek már a táblában kell lennie, az új névnek pedig még nem szabad léteznie. Előfordulhat, hogy minden oszlopnév csak egyszer jelenik meg az argumentumlistában, régi oszlopnévként vagy új oszlopnévként. Ha egy meglévő oszlopnévre szeretné átnevezni az oszlopot, először dobja el a meglévő oszlopot a DropColumns használatával, vagy nevezze át a meglévő oszlopot, hogy ne legyen útban az egyik RenameColumns függvény másikba való beágyazásával.
A ShowColumns függvény beveszi egy tábla adott oszlopait, és kizárja az összes többi oszlopot. A ShowColumns függvényt egyoszlopos tábla létrehozására használhatja egy több oszlopot tartalmazó táblából. A ShowColumns oszlopokat vesz be, a DropColumns pedig oszlopokat zár ki.
Mindezen függvények eredménye egy új tábla, alkalmazott átalakítóval. Az eredeti tábla nem módosul. Képlettel rendelkező meglévő táblázat nem módosítható. A SharePoint, a Microsoft Dataverse, az SQL Server és más adatforrások eszközöket biztosítanak a listák, táblázatok és táblázatok oszlopainak módosítására, amelyeket gyakran sémának neveznek. A cikkben szereplő függvények csak egy bemeneti táblát alakítanak át kimeneti táblává az eredeti módosítása nélkül további használatra.
A függvények argumentumai támogatják a delegálást. Egy Filter függvény például argumentumként használható a kapcsolódó bejegyzések megkereséséhez az összes listaelemen, még akkor is, ha a '[dbo].[AllListings]' adatforrás millió sort tartalmaz:
AddColumns( RealEstateAgents,
Listings,
Filter( '[dbo].[AllListings]', ListingAgentName = AgentName )
)
Ezeknek a függvényeknek a kimenetére a nem delegált rekordkorlát is érvényes. Ebben a példában a rendszer csak 500 bejegyzést ad vissza, még akkor is, ha a RealEstateAgents adatforrás 501 vagy több bejegyzést tartalmaz.
Ha így használja az AddColumns függvényt, a szűrőnek külön hívásokat kell kezdeményeznie a adatforrás a RealEstateAgents minden egyes első rekordjához, ami sok hálózati csevegést okoz. Ha [dbo](.[AllListings] elég kicsi, és nem változik gyakran. Az OnStart Collect függvényének meghívásával gyorsítótárazhatja az alkalmazás adatforrás indításakor. Másik lehetőségként átalakíthatja az alkalmazást, hogy a kapcsolódó bejegyzéseket csak akkor húzza le a rendszer, ha a felhasználó kéri azokat.
Feljegyzés
A Power Apps 3.24042 verzió előtt az oszlopneveket idézőjelbe tett szöveges karakterlánccal adták meg, és ha adatforrás kapcsolódtak, logikai neveknek is kellett lenniük. Például a "cr43e_name" logikai nevet idézőjelek nélkül használtuk a megjelenítendő név Név idézőjelek nélkül. A szóközöket tartalmazó oszlopneveket tartalmazó SharePoint és Excel-adatforrások esetében minden szóköz a "_x0020_" szóval lett megadva, például "Oszlopnév" mint "Column_x0020_Name". Ezt a verziót követően az összes alkalmazás automatikusan frissült a cikkben ismertetett új szintaxisra.
Szintaxis
AddColumns( Tábla, Oszlopnév1, Formula1 [, Oszlopnév2, Képlet2, ... ] )
- Tábla - Kötelező. A művelethez használni kívánt tábla.
- ColumnNames - Kötelező. A hozzáadni kívánt oszlopok neve.
- Képletek - Kötelező. Az egyes rekordok kiértékeléséhez szükséges képletek. Az eredmény a megfelelő új oszlop értékeként kerül hozzáadásra. A tábla egyéb oszlopaira ebben a képletben hivatkozhat.
DropColumns( Table, ColumnName1 [, ColumnName2, ... ] )
- Tábla - Kötelező. A művelethez használni kívánt tábla.
- ColumnNames - Kötelező. Az eldobni kívánt oszlopok neve.
RenameColumns( Table, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )
- Tábla - Kötelező. A művelethez használni kívánt tábla.
- OldColumnNames - Kötelező. Az eredeti táblából átnevezni kívánt oszlopok neve. Ez az elem elsőként jelenik meg az argumentumpárban (vagy minden argumentumpárban elsőként, ha a képlet egynél több párt tartalmaz).
- NewColumnNames – Kötelező. Helyettesítő nevek. Ez az elem utolsóként jelenik meg az argumentumpárban (vagy minden argumentumpárban utolsóként, ha a képlet egynél több párt tartalmaz).
ShowColumns( Table, ColumnName1 [, ColumnName2, ... ] )
- Tábla - Kötelező. A művelethez használni kívánt tábla.
- ColumnNames - Kötelező. A belefoglalni kívánt oszlopok neve.
Példák
A következő példában az IceCreamSales nevű adatforrást használjuk, amely a következő táblában szerepelteti az adatokat:
Ezek a példák egyike sem módosítja az IceCreamSales adatforrást. Minden egyes függvény átalakítja az adatforrást táblaként, és ezt az értéket adja vissza eredményként.
Képlet | Description | Result |
---|---|---|
AddColumns( IceCreamSales, Bevétel, Egységár * QuantitySold ) | Hozzáad egy Bevétel oszlopot az eredményhez. Az egyes rekordoknál kiértékeli a UnitPrice * QuantitySold képletet, és az eredményt az új oszlopba helyezi. | |
DropColumns( IceCreamSales, UnitPrice ) | Kizárja a UnitPrice (Egységár) oszlopot az eredményből. Ezen függvény segítségével kizárhat oszlopokat, és használhatja ShowColumns-t azok felvételéhez. | |
ShowColumns( IceCreamSales, Flavor ) | Csak a Flavor (Íz) oszlopot szerepelteti az eredményben. Ezen függvény segítségével vehet fel oszlopokat, és használhatja DropColumns-t azok kizárására. | |
RenameColumns( IceCreamSales, UnitPrice, Price) | Átnevezi a UnitPrice (Egységár) oszlopot az eredményben. | |
RenameColumns( IceCreamSales, UnitPrice, Price, QuantitySold, Number) | Átnevezi a UnitPrice (Egységár) és a QuantitySold (EladottMennyiség) oszlopot az eredményben. | |
DropColumns( RenameColumns( AddColumns( IceCreamSales, bevétel, UnitPrice * QuantitySold ), Egységár, ár ), Mennyiség ) |
A következő táblaátalakításokat hajtja végre sorrendben, kezdve a képlet belsejétől:
|
Lépésről lépésre
Próbáljunk ki néhány példát a cikk korábbi részéből.
Hozzon létre gyűjteményt hozzáadva egy Gomb vezérlőelemet, és az OnSelect tulajdonság értékeként adja meg a következő képletet:
ClearCollect( IceCreamSales, Table( { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 }, { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 }, { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 } ) )
Az Alt billentyűt lenyomva tartva futtassa a képletet a gomb kiválasztásával.
Adjon hozzá egy második Gomb vezérlőelemet, és az OnSelect tulajdonság értékeként adja meg a következő képletet, majd futtassa:
ClearCollect( FirstExample, AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) )
A Fájl menüben válassza a Gyűjtemények lehetőséget, majd válassza az IceCreamSales elemet a gyűjtemény megtekintéséhez.
Az ábrán látható módon a második képlet nem módosította ezt a gyűjteményt. Az AddColumns függvény az IceCreamSales elemet csak olvasható argumentumként használta; a függvény nem módosította azt a táblát, amelyre az argumentum hivatkozik.
Válassza a FirstExample lehetőséget.
Az ábrán látható módon a második képlet a hozzáadott oszlopot tartalmazó új táblát adja vissza. A ClearCollect függvény a FirstExample gyűjteményben rögzítette az új táblát, hozzátéve valamit az eredeti táblához, ahogy a függvényen a forrás módosítása nélkül átáramlik:
Oszlopokat képez le egy összetevőben
További információ: Oszlopok leképezése.