De functies AddColumns, DropColumns RenameColumns en ShowColumns
Van toepassing op: Canvas-apps Bureaublad-stromen Modelgestuurde apps Power Platform CLI
Hiermee geeft u een tabel vorm door kolommen op te nemen, te verwijderen, te selecteren of door de naam ervan te wijzigen.
De functie **ForAll kan ook worden gebruikt om een tabel vorm te geven, door een tabel terug te geven met nieuwe records die zijn gemaakt op basis van bestaande kolommen.
Samenzicht
Met deze functies bepaalt u de vorm van een tabel door de kolommen aan te passen:
- Een tabel met meerdere kolommen terugbrengen tot één kolom voor gebruik met functies die één kolom ondersteunen, zoals Lower of Sqrt.
- Een berekende kolom toevoegen aan een tabel (bijvoorbeeld de kolom Total Price met de uitkomst van de vermenigvuldiging van Quantity met Unit Price).
- Een kolom een zinvollere naam geven die wordt weergegeven aan gebruikers of gebruikt in formules.
Een tabel is een waarde in Power Apps, net zoals een tekenreeks of getal. U kunt een tabel opgeven als argument in een formule en functies kunnen een tabel retourneren als resultaat.
Notitie
De functies die in dit onderwerp worden beschreven, veranderen de oorspronkelijke tabel niet. In plaats daarvan nemen ze een tabel als argument en retourneren ze een nieuwe tabel waarop een transformatie is toegepast. Zie Werken met tabellen voor meer informatie.
U kunt de kolommen van een gegevensbron niet wijzigen met behulp van deze functies. U moet de gegevens bij de bron wijzigen. U kunt kolommen toevoegen aan een verzameling met de functie Collect. Zie Werken met gegevensbronnen voor meer informatie.
Omschrijving
De functie AddColumns voegt een kolom toe aan een tabel en een formule definieert de waarden in die kolom. Bestaande kolommen blijven ongewijzigd.
De formule wordt geëvalueerd voor elke record in de tabel.
Velden van de momenteel verwerkte record zijn beschikbaar in de formule. Gebruik de operator ThisRecord of verwijs gewoon met de naam naar velden, zoals u dat ook bij andere waarden zou doen. De operator As kan ook worden gebruikt om een naam te geven aan de record die wordt verwerkt, wat kan helpen uw formule begrijpelijker te maken en geneste records toegankelijk te maken. Meer informatie vindt u in de voorbeelden hieronder en in werken met recordbereik.
Met de functie DropColumns worden kolommen uit een tabel verwijderd. Alle andere kolommen blijven ongewijzigd. DropColumns sluit kolommen uit en ShowColumns neemt kolommen op.
Gebruik de functie RenameColumns om één of meer kolommen van een tabel een nieuwe naam te geven door ten minste één argumentpaar op te geven dat de naam van een kolom in de tabel opgeeft (de oude naam die u wilt vervangen) en de naam van een kolom die niet in de tabel staat (de nieuwe naam die u wilt gebruiken). De oude naam moet bestaan in de tabel, de nieuwe naam juist niet. Elke kolomnaam komt mogelijk slechts één keer voor in de argumentenlijst, als oude kolomnaam of als nieuwe kolomnaam. Als u een kolom de naam wilt geven van een bestaande kolom, moet u eerst de bestaande kolom verwijderen met DropColumns, of de bestaande kolom een nieuwe naam geven door de functie RenameColumns in te nesten in een andere kolom.
De functie ShowColumns neemt kolommen uit een tabel op en sluit alle andere kolommen uit. U kunt de functie ShowColumns gebruiken om een tabel met één kolom te maken van een tabel met meerdere kolommen. ShowColumns neemt kolommen op en DropColumns sluit kolommen uit.
Voor al deze functies is het resultaat een nieuwe tabel waarop de transformatie is toegepast. De oorspronkelijke tabel wordt niet gewijzigd. U kunt niet een bestaande tabel met een formule wijzigen. SharePoint, Microsoft Dataverse, SQL Server en andere gegevensbronnen bieden hulpmiddelen voor het wijzigen van de kolommen van lijsten, tabellen en tabellen, die vaak het schema worden genoemd. De functies in dit artikel transformeren alleen een invoertabel, zonder het origineel te wijzigen, naar een uitvoertabel voor verder gebruik.
De argumenten voor deze functies ondersteunen delegeren. Bijvoorbeeld een functie Filter die wordt gebruikt als argument om verwante records door alle vermeldingen te halen, zelfs als de gegevensbron '[dbo].[AllListings]' een miljoen rijen bevat:
AddColumns( RealEstateAgents,
Listings,
Filter( '[dbo].[AllListings]', ListingAgentName = AgentName )
)
De uitvoer van deze functies is echter onderworpen aan de recordlimiet voor niet-delegering. In dit voorbeeld worden slechts 500 records geretourneerd, zelfs als de gegevensbron RealEstateAgents 501 of meer records heeft.
Als u AddColumns op deze manier gebruikt, moet Filter afzonderlijk aanroepen verzenden naar de gegevensbron voor elk van de eerste records in RealEstateAgents. Dit veroorzaakt veel netwerkverkeer. Als [dbo](.[AllListings] klein genoeg is en niet vaak verandert. U kunt de functie Collect in OnStart aanroepen om de gegevensbron in uw app in de cache op te slaan wanneer deze start. Als alternatief kunt u uw app zo herstructureren dat u de gerelateerde records alleen binnenhaalt wanneer de gebruiker erom vraagt.
Notitie
In Power Apps vóór versie 3.24042 werden kolomnamen voor de zoekfunctie Search gespecificeerd met een tekenreeks met dubbele aanhalingstekens, en indien verbonden met een gegevensbron het moesten ook logische namen zijn. Zo werd bijvoorbeeld de logische naam "cr43e_name" met dubbele aanhalingstekens gebruikt in plaats van de weergavenaam Naam zonder aanhalingstekens. Voor SharePoint- en Excel-gegevensbronnen die kolomnamen met spaties bevatten, werd elke spatie gespecificeerd met "_x0020_", bijvoorbeeld "Column Name" als "Column_x0020_Name". Na deze versie werden alle apps automatisch bijgewerkt naar de nieuwe syntaxis die in dit artikel wordt beschreven.
Syntaxis
AddColumns( Tabel, KolomNaam1, Formule1 [, KolomNaam2, Formule2, ... ] )
- Tabel - Verplicht. De tabel waarop de bewerking wordt toegepast.
- Kolomnamen - Verplicht. Namen van de kolommen die moeten worden toegevoegd.
- Formules - Verplicht. Formules die moet worden geëvalueerd voor elke record. Het resultaat wordt toegevoegd als de waarde van de bijbehorende nieuwe kolom. In deze formule kunt u verwijzen naar andere kolommen in de tabel.
DropColumns( Tabel, KolomNaam1 [, KolomNaam2, ... ] )
- Tabel - Verplicht. De tabel waarop de bewerking wordt toegepast.
- Kolomnamen - Verplicht. Namen van de kolommen die moeten worden verwijderd.
RenameColumns( Tabel, OudeKolomNaam1, NieuweKolomNaam1 [, OudeKolomNaam2, NieuweKolomNaam2, ... ] )
- Tabel - Verplicht. De tabel waarop de bewerking wordt toegepast.
- OldColumnNames - Verplicht. Namen van de kolommen waarvan de naam moet worden gewijzigd vanuit de oorspronkelijke tabel. Dit element verschijnt als eerste in het argumentpaar (of als eerste in ieder argumentpaar als de formule meer dan één paar bevat).
- NewColumnNames - Verplicht. Vervangende namen. Dit element verschijnt als laatst in het argumentpaar (of als laatst in ieder argumentpaar als de formule meer dan één paar bevat).
ShowColumns( Tabel, KolomNaam1 [, KolomNaam2, ... ] )
- Tabel - Verplicht. De tabel waarop de bewerking wordt toegepast.
- Kolomnamen - Verplicht. Namen van de kolommen die moeten worden opgenomen.
Voorbeelden
In de voorbeelden in deze sectie wordt de gegevensbron IceCreamSales gebruikt, die de gegevens in deze tabel bevat:
Geen van deze voorbeelden wijzigt de gegevensbron IceCreamSales. Elke functie transformeert de waarde van de gegevensbron als een tabel en retourneert die waarde als resultaat.
Formule | Omschrijving | Result |
---|---|---|
AddColumns(IJsVerkoop, Omzet, Eenheidsprijs * hoeveelheidVerkocht) | Voegt de kolom Revenue toe aan het resultaat. Voor elke record wordt UnitPrice * QuantitySold geëvalueerd en het resultaat wordt in de nieuwe kolom geplaatst. | |
DropColumns(IJsVerkoop, EenheidsPrijs) | Sluit de kolom UnitPrice uit van het resultaat. Gebruik deze functie om kolommen uit te sluiten en gebruik de functie ShowColumns om kolommen op te nemen. | |
ShowColumns(IJsVerkoop, Smaak) | Neemt alleen de kolom Flavor op in het resultaat. Gebruik deze functie om kolommen op te nemen en gebruik de functie DropColumns om kolommen uit te sluiten. | |
RenameColumns(IJsVerkoop, EenheidsPrijs, Prijs) | Verandert de naam van de kolom UnitPrice in het resultaat. | |
RenameColumns(IJsVerkoop, EenheidsPrijs, Prijs, hoeveelheidVerkocht, Aantal) | Geeft de kolommen UnitPrice en QuantitySold in het resultaat een andere naam. | |
DropColumns( RenameColumns( AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ), UnitPrice, Price ), Quantity ) |
Voert de volgende tabeltransformaties uit in volgorde van vermelding, waarbij de formule van binnen naar buiten wordt verwerkt:
|
Stapsgewijs
Laten we enkele eerder genoemde voorbeelden uit dit artikel eens proberen.
Maak een verzameling door een besturingselement Button toe te voegen en de eigenschap OnSelect ervan in te stellen op de volgende formule:
ClearCollect( IceCreamSales, Table( { Flavor: "Strawberry", UnitPrice: 1.99, QuantitySold: 20 }, { Flavor: "Chocolate", UnitPrice: 2.99, QuantitySold: 45 }, { Flavor: "Vanilla", UnitPrice: 1.50, QuantitySold: 35 } ) )
Voer de formule uit door de knop te selecteren terwijl u de Alt-toets ingedrukt houdt.
Voeg een tweede besturingselement Button toe, stel de eigenschap OnSelect van dit element in op deze formule en selecteer de knop:
ClearCollect( FirstExample, AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) )
Selecteer in het menu File de optie Collections en selecteer vervolgens IceCreamSales om die verzameling weer te geven.
Zoals deze afbeelding laat zien, heeft de tweede formule deze verzameling niet gewijzigd. De functie AddColumns gebruikt IceCreamSales als alleen-lezen argument; de functie wijzigt niet de tabel waarnaar dat argument verwijst.
Selecteer FirstExample.
In deze afbeelding ziet u dat de tweede formule een nieuwe tabel retourneerde met de toegevoegde kolom. De functie ClearCollect legde de nieuwe tabel vast in de verzameling FirstExample, waarbij iets werd toegevoegd aan de originele tabel terwijl deze door de functie stroomde zonder de bron te wijzigen:
Kolommen toewijzen in een onderdeel
Zie Kolommen toewijzen.