De functies AddColumns, DropColumns RenameColumns en ShowColumns in Power Apps

Hiermee geeft u een tabel vorm door kolommen op te nemen, te verwijderen, te selecteren of door de naam ervan te wijzigen.

Overzicht

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 Abs.
  • 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.

Beschrijving

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.

De functie DropColumns verwijdert kolommen uit een tabel. Alle andere kolommen blijven ongewijzigd. DropColumns verwijdert kolommen en ShowColumns voegt kolommen toe.

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 mag slechts één keer voorkomen in de argumentenlijst, hetzij als oude kolomnaam, hetzij 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 voegt kolommen toe en DropColumns verwijdert kolommen.

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 onderwerp 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 doen naar de gegevensbron voor elk van die eerste records in RealEstateAgents, wat veel netwerkverkeer veroorzaakt. Als [dbo].[AllListings] klein is en niet vaak wijzigt, kunt u met de functie Collect in OnStart de gegevensbron in uw app cachen wanneer deze start. Als alternatief kunt u uw app zo herstructureren dat u de gerelateerde records alleen binnenhaalt wanneer de gebruiker erom vraagt.

Syntaxis

AddColumns( Table, ColumnName1, Formula1 [, ColumnName2, Formula2, ... ] )

  • Tabel: vereist. De tabel waarop de bewerking wordt toegepast.
  • ColumnName(s): vereist. De namen van een of meer kolommen die moeten worden toegevoegd. Voor dit argument moet u een tekenreeks opgeven (bijvoorbeeld "Name", inclusief dubbele aanhalingstekens).
  • Formula(s): vereist. De formule(s) die moet(en) 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( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table: vereist. De tabel waarop de bewerking wordt toegepast.
  • ColumnName(s): vereist. Namen van een of meer kolommen die moeten worden verwijderd. Voor dit argument moet u een tekenreeks opgeven (bijvoorbeeld "Name", inclusief dubbele aanhalingstekens).

RenameColumns( Table, OldColumnName1, NewColumnName1 [, OldColumnName2, NewColumnName2, ... ] )

  • Table: vereist. De tabel waarop de bewerking wordt toegepast.
  • OldColumnName: vereist. De naam van een kolom in de originele tabel die een nieuwe naam moet krijgen. Dit element verschijnt als eerste in het argumentpaar (of als eerste in ieder argumentpaar als de formule meer dan één paar bevat). Deze naam moet een tekenreeks zijn (bijvoorbeeld "Name", inclusief de dubbele aanhalingstekens).
  • NewColumnName: vereist. Vervangende naam. Dit element verschijnt als laatst in het argumentpaar (of als laatst in ieder argumentpaar als de formule meer dan één paar bevat). Voor dit argument moet u een tekenreeks opgeven (bijvoorbeeld "Customer Name", inclusief dubbele aanhalingstekens).

ShowColumns( Table, ColumnName1 [, ColumnName2, ... ] )

  • Table: vereist. De tabel waarop de bewerking wordt toegepast.
  • ColumnName(s): vereist. Namen van een of meer kolommen die moeten worden opgenomen. Voor dit argument moet u een tekenreeks opgeven (bijvoorbeeld "Name", inclusief dubbele aanhalingstekens).

Voorbeelden

In de voorbeelden in deze sectie wordt de gegevensbron IceCreamSales gebruikt, die de gegevens in deze tabel bevat:

IJsvoorbeeld.

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 Beschrijving Resultaat
AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold ) 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. Resultaat met Aardbei, Chocolade en Vanille.
DropColumns( IceCreamSales, "UnitPrice" ) 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. Resultaat met Aardbei, Chocolade, Vanille met alleen de kolom AantalVerkocht.
ShowColumns( IceCreamSales, "Flavor" ) 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. Kolom Alleen smaak.
RenameColumns( IceCreamSales, "UnitPrice", "Price") Verandert de naam van de kolom UnitPrice in het resultaat. Resultaat met smaak, prijs en omzet.
RenameColumns( IceCreamSales, "UnitPrice", "Price", "QuantitySold", "Number") Geeft de kolommen UnitPrice en QuantitySold in het resultaat een andere naam. Resultaat met 3 ijsjes en kolommen als Smaak, Prijs, Omzet.
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:
  1. Voegt de kolom Revenue toe op basis van de berekening per record van UnitPrice * Quantity.
  2. Wijzigt de naam van UnitPrice in Price.
  3. Sluit de kolom Quantity uit.
Let erop dat de volgorde belangrijk is. U kunt bijvoorbeeld niet rekenen met de kolom UnitPrice nadat de naam ervan is gewijzigd.
IJsvoorbeeld voor eenheidsprijs.

Stapsgewijs

Laten we enkele eerder genoemde voorbeelden uit dit onderwerp eens proberen.

  1. 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 }
        )
    )
    
  2. Voer de formule uit door de knop te selecteren terwijl u de Alt-toets ingedrukt houdt.

  3. 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 )
    ) 
    
  4. 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.

    De verzamelingkijker met drie records van de verzameling IJsverkoop die geen kolom Revenue bevat.

  5. 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:

    De verzamelingkijker met drie records van de verzameling First Example die een nieuwe kolom Revenue bevat.