Funzioni AddColumns, DropColumns, RenameColumns e ShowColumns

Si applica a: app canvas flussi desktop app basate su modello Power Platform CLI

Trasformano una tabella aggiungendo, rimuovendo, rinominando e selezionando le colonne.

Panoramica

Queste funzioni trasformano una tabella modificando le relative colonne:

  • Riduci una tabella che contiene più colonne a una colonna singola per l'uso con funzioni di colonna singola, ad esempio Lower o Abs.
  • Aggiungi una colonna calcolata a una tabella, ad esempio, una colonna Total Price che visualizza il risultato della moltiplicazione di Quantity per Unit Price.
  • Rinomina una colonna con nomi più significativi, per la visualizzazione agli utenti o da usare nelle formule.

Una tabella è un valore in Power Apps, così come una stringa o un numero. Puoi specificare una tabella come argomento in una formula e le funzioni possono restituire una tabella come risultato.

Nota

Le funzioni illustrate in questo argomento non modificano la tabella originale. Al contrario, usano la tabella come argomento e restituiscono una nuova tabella con la trasformazione applicata. Per altre informazioni, vedi Utilizzo delle tabelle.

Non è possibile modificare le colonne di un'origine dati tramite queste funzioni. È necessario modificare i dati all'origine. Puoi aggiungere colonne a una raccolta con la funzione Collect. Per informazioni dettagliate, vedi Uso delle origini dati.

Descrizione

La funzione AddColumns aggiunge una colonna a una tabella e una formula definisce i valori della colonna. Le colonne esistenti rimangano invariate.

La formula viene valutata per ogni record della tabella.

I campi di record attualmente in elaborazione sono disponibili nella formula. Utilizza l'operatore ThisRecord o fai semplicemente riferimento ai campi in base al nome come faresti con qualsiasi altro valore. L'operatore As può anche essere utilizzato per denominare il record in fase di elaborazione in modo da semplificare la comprensione della formula e rendere accessibili i record nidificati. Per altre informazioni, consulta gli esempi di seguito e la sezione sull'utilizzo nell'ambito dei record.

La funzione DropColumns esclude colonne da una tabella. Le altre colonne rimangano invariate. La funzione DropColumns esclude colonne e la funzione ShowColumns include colonne.

Usa la funzione RenameColumns per rinominare una o più colonne di una tabella specificando almeno una coppia di argomenti che specifica il nome di una colonna contenuta nella tabella (il nome precedente che vuoi sostituire) e il nome di una colonna non contenuta nella tabella (il nuovo nome che vuoi usare). Il nome precedente deve essere già presente nella tabella, mentre il nuovo nome non deve essere presente. Ogni nome di colonna può comparire solo una volta nell'elenco degli argomenti come nome di colonna precedente o come nuovo nome di colonna. Per rinominare una colonna con un nome di colonna esistente, elimina prima la colonna esistente con DropColumns o rinomina la colonna esistente inserendo una funzione RenameColumns all'interno di un'altra funzione.

La funzione ShowColumns include colonne di una tabella ed esclude tutte le altre. Puoi usare ShowColumns per creare una tabella a colonna singola da una tabella a più colonne. ShowColumns include colonne e DropColumns esclude colonne.

Per tutte queste funzioni, il risultato è una nuova tabella con la trasformazione applicata. La tabella originale non viene modificata. Non è possibile modificare una tabella esistente con una formula. SharePoint, Microsoft Dataverse, SQL Server e altre origini dati forniscono strumenti per modificare le colonne di elenchi e tabelle, spesso chiamate schema. Le funzioni in questo argomento trasformano solo una tabella di input, senza modificare l'originale, in una tabella di output per un ulteriore utilizzo.

Gli argomenti di queste funzioni supportano la delega. Ad esempio, una funzione Filter utilizzata come argomento per estrarre ricerche di record correlati in tutti gli elenchi, anche se l'origine dati '[dbo].[AllListings]' contiene un milione di righe:

AddColumns( RealEstateAgents,
   "Listings",
   Filter(  '[dbo].[AllListings]', ListingAgentName = AgentName )
)

Tuttavia, l'output di queste funzioni è soggetto al limite di record di non delega. In questo esempio, vengono restituiti solo 500 record anche se l'origine dati RealEstateAgents ha oltre 501 record.

Se usi AddColumns in questo modo, Filter deve effettuare chiamate separate all'origine dati per ognuno di quei primi record in RealEstateAgents, generando molto traffico sulla rete. Se [dbo](.[AllListings] è di dimensioni abbastanza ridotte e non cambia spesso, puoi memorizzare l'origine dati nella cache dell'app con una chiamata alla funzione Collect in OnStart all'avvio dell'app. In alternativa, è possibile ristrutturare l'app in modo da estrarre i record correlati solo quando l'utente li richiede.

Sintassi

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

  • Table: obbligatorio. Tabella su cui eseguire le operazioni.
  • ColumnName(s): obbligatorio. Nomi delle colonne da aggiungere. Per questo argomento è necessario specificare una stringa, ad esempio "Name" tra virgolette doppie. È necessario specificare i nomi delle colonne utilizzando il relativo nome logico. Intellisense suggerirà solo nomi logici. Per il nome logico è sensibile alla distinzione tra maiuscole e minuscole.
  • Formula(s): obbligatorio. Formula da valutare per ogni record della tabella. Il risultato viene aggiunto come valore della nuova colonna corrispondente. Puoi fare riferimento ad altre colonne della tabella in questa formula.

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

  • Table: obbligatorio. Tabella su cui eseguire le operazioni.
  • ColumnName(s): obbligatorio. Nomi delle colonne da rimuovere. Per questo argomento è necessario specificare una stringa, ad esempio "Name" tra virgolette doppie. È necessario specificare i nomi delle colonne utilizzando il relativo nome logico. Intellisense suggerirà solo nomi logici. Per il nome logico è sensibile alla distinzione tra maiuscole e minuscole.

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

  • Table: obbligatorio. Tabella su cui eseguire le operazioni.
  • OldColumnName: obbligatorio. Nome di una colonna da rinominare della tabella originale. Questo elemento appare per primo nella coppia di argomenti (o per primo in ogni coppia di argomenti se la formula include più coppie). Il nome deve essere una stringa, ad esempio "Name" con le virgolette doppie incluse. È necessario specificare i nomi delle colonne utilizzando il relativo nome logico. Intellisense suggerirà solo nomi logici. Per il nome logico è sensibile alla distinzione tra maiuscole e minuscole.
  • NewColumnName: obbligatorio. Nome di sostituzione. Questo elemento appare per ultimo nella coppia di argomenti (o per ultimo in ogni coppia di argomenti se la formula include più coppie). Per questo argomento devi specificare una stringa, ad esempio "Customer Name" con le virgolette doppie incluse. È necessario specificare i nomi delle colonne utilizzando il relativo nome logico. Intellisense suggerirà solo nomi logici. Per il nome logico è sensibile alla distinzione tra maiuscole e minuscole.

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

  • Table: obbligatorio. Tabella su cui eseguire le operazioni.
  • ColumnName(s): obbligatorio. Nomi delle colonne da includere. Per questo argomento è necessario specificare una stringa, ad esempio "Name" tra virgolette doppie. È necessario specificare i nomi delle colonne utilizzando il relativo nome logico. Intellisense suggerirà solo nomi logici. Per il nome logico è sensibile alla distinzione tra maiuscole e minuscole.

Esempi

Gli esempi riportati di seguito usano l'origine dati IceCreamSales, che contiene i dati della tabella seguente:

Esempio IceCream.

Nessuno di questi esempi modifica l'origine dati IceCreamSales. Ogni funzione trasforma il valore dell'origine dati come tabella e restituisce tale valore come risultato.

Formula Descrizione Risultato
AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold ) Aggiunge la colonna Revenue al risultato. Per ogni record, viene calcolato il valore UnitPrice * QuantitySold e il risultato viene inserito nella nuova colonna. Risultato con fragola, cioccolato e vaniglia.
DropColumns( IceCreamSales, "UnitPrice" ) Esclude la colonna UnitPrice dal risultato. Usa questa funzione per escludere colonne e usa ShowColumns per includerle. Risultato con fragola, cioccolato, vaniglia con solo la colonna QuantitySold.
ShowColumns( IceCreamSales, "Flavor" ) Include solo la colonna Flavor nel risultato. Usa questa funzione per includere colonne e usa DropColumns per escluderle. Colonna solo gusto.
RenameColumns( IceCreamSales, "UnitPrice", "Price") Rinomina la colonna UnitPrice nel risultato. Risultato con gusto, prezzo e ricavi.
RenameColumns( IceCreamSales, "UnitPrice", "Price", "QuantitySold", "Number") Rinomina le colonne UnitPrice e QuantitySold nel risultato. Risultato con 3 gelati e colonne come gusto, prezzo, ricavi.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, "Revenue",
UnitPrice * QuantitySold ),
"UnitPrice", "Price" ),
"Quantity" )
Esegue le trasformazioni di tabella seguenti nell'ordine, a partire dall'interno della formula:
  1. Aggiunge una colonna Revenue basata sul calcolo per ogni record di UnitPrice * Quantity.
  2. Rinomina UnitPrice in Price.
  3. Esclude la colonna Quantity.
Tieni presente che l'ordine è importante. Ad esempio, non è possibile eseguire calcoli con UnitPrice dopo che la colonna è stata rinominata.
Esempio di gelato per prezzo unitario.

Procedura dettagliata

Proviamo alcuni degli esempi precedenti in questo argomento.

  1. Crea una raccolta aggiungendo un controllo Button e impostandone la proprietà OnSelect su questa formula:

    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. Esegui la formula selezionando il pulsante mentre tieni premuto ALT.

  3. Aggiungi un secondo controllo Button e impostane la proprietà OnSelect su questa formula ed eseguila:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold )
    )
    
  4. Nel menu File, seleziona Raccolte, quindi scegli IceCreamSales per visualizzare quella raccolta.

    Come mostra questo grafico, la seconda formula non ha modificato la raccolta. La funzione AddColumns ha utilizzato IceCreamSales come argomento di sola lettura; la funzione non ha modificato la tabella a cui fa riferimento l'argomento.

    Visualizzazione della raccolta che mostra tre record della raccolta Ice Cream Sales che non include una colonna Revenue.

  5. Seleziona FirstExample.

    Come mostra questo grafico, la seconda formula ha restituito una nuova tabella con la colonna aggiunta. La funzione ClearCollect ha acquisito la nuova tabella nella raccolta FirstExample, aggiungendo qualcosa alla tabella originale mentre usava la funzione senza modificare l'origine:

    Visualizzazione della raccolta che mostra tre record della raccolta First Example che include una nuova colonna Revenue.

Mappare colonne in un componente

Vedi Mappare colonne.