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.

La funzione **ForAll può essere utilizzata anche per modellare una tabella, restituendo una tabella di nuovi record creati da colonne esistenti.

Descrizione

Queste funzioni trasformano una tabella modificando le relative colonne:

  • Ridurre una tabella che contiene più colonne a una colonna singola per l'uso con le funzioni di colonna singola, ad esempio Lower o Sqrt.
  • 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 ulteriori informazioni, vedi Uso delle origini dati.

Descrzione

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 articolo trasformano solo una tabella di input, senza modificare l'originale, in una tabella di output da utilizzare successivamente.

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] è abbastanza piccolo e non cambia spesso. Puoi chiamare la funzione Raccolta in OnStart per memorizzare nella cache l'origine dati nella tua app all'avvio. In alternativa, è possibile ristrutturare l'app in modo da estrarre i record correlati solo quando l'utente li richiede.

Nota

Nelle Power Apps precedenti alla versione 3.24042, i nomi delle colonne erano specificati con una stringa di testo utilizzando virgolette doppie e se collegati a un origine dati dovevano anche essere nomi logici. Ad esempio, è stato utilizzato il nome logico "cr43e_name" con virgolette doppie al posto di nome visualizzato Nome senza virgolette. Per SharePoint e le origini dati Excel che contengono nomi di colonne con spazi, ogni spazio è stato specificato con "_x0020_", ad esempio "Nome colonna" come "Nome_colonna_x0020". Dopo questa versione, tutte le app sono state aggiornate automaticamente alla nuova sintassi descritta in questo articolo.

Sintassi

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

  • Table: obbligatorio. Tabella su cui eseguire le operazioni.
  • ColumnName(s): obbligatorio. Nomi delle colonne da aggiungere.
  • Formula(s): obbligatorio. Formule 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.

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

  • Table: obbligatorio. Tabella su cui eseguire le operazioni.
  • OldColumnName: obbligatorio. Nomi delle colonne 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).
  • NewColumnName: obbligatorio. Nomi 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).

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

  • Table: obbligatorio. Tabella su cui eseguire le operazioni.
  • ColumnName(s): obbligatorio. Nomi delle colonne da includere.

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 Descrzione Result
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 Ricavi in base al calcolo di UnitPrice * Quantità per ogni record.
  2. Rinomina UnitPrice in Price.
  3. Esclude la colonna Quantity.
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 articolo.

  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.