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. DropColumns esclude le colonne e ShowColumns include le 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 le colonne e DropColumns esclude le 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
AggiungiColonne( Tabella, NomeColonna1, Formula1 [, NomeColonna2, Formula2, ... ] )
- Tabella - Obbligatorio. Tabella su cui eseguire le operazioni.
- ColumnNames - Obbligatorio. Nomi delle colonne da aggiungere.
- Formule - 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( Tabella, NomeColonna1 [, NomeColonna2, ... ] )
- Tabella - Obbligatorio. Tabella su cui eseguire le operazioni.
- ColumnNames - Obbligatorio. Nomi delle colonne da rimuovere.
RinominaColonne( Tabella, VecchioNomeColonna1, NuovoNomeColonna1 [, VecchioNomeColonna2, NuovoNomeColonna2, ... ] )
- Tabella - Obbligatorio. Tabella su cui eseguire le operazioni.
- OldColumnNames - 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).
- NewColumnNames - 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).
Mostra colonne( Tabella, Nome colonna1 [, Nome colonna2, ... ] )
- Tabella - Obbligatorio. Tabella su cui eseguire le operazioni.
- ColumnNames - Obbligatorio. Nomi delle colonne da includere.
Esempi
Gli esempi riportati di seguito usano l'origine dati IceCreamSales, che contiene i dati della tabella seguente:
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(VenditeGelato, Ricavi, PrezzoUnitario * QuantitàVenduta) | Aggiunge la colonna Revenue al risultato. Per ogni record, viene calcolato il valore UnitPrice * QuantitySold e il risultato viene inserito nella nuova colonna. | |
DropColumns(VenditeIceCream, PrezzoUnitario) | Esclude la colonna UnitPrice dal risultato. Usa questa funzione per escludere colonne e usa ShowColumns per includerle. | |
Mostra colonne (Vendite gelato, Gusto) | Include solo la colonna Flavor nel risultato. Usa questa funzione per includere colonne e usa DropColumns per escluderle. | |
Rinomina colonne (VenditeIceCream, PrezzoUnitario, Prezzo) | Rinomina la colonna UnitPrice nel risultato. | |
RinominaColonne(VenditeGelato, PrezzoUnitario, Prezzo, QuantitàVenduta, Numero) | Rinomina le colonne UnitPrice e QuantitySold nel risultato. | |
Elimina colonne( RenameColumns( AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ), UnitPrice, Price ), Quantity ) |
Esegue le trasformazioni di tabella seguenti nell'ordine, a partire dall'interno della formula:
|
Procedura dettagliata
Proviamo alcuni degli esempi precedenti in questo articolo.
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 } ) )
Esegui la formula selezionando il pulsante mentre tieni premuto ALT.
Aggiungi un secondo controllo Button e impostane la proprietà OnSelect su questa formula ed eseguila:
ClearCollect( FirstExample, AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold ) )
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.
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:
Mappare colonne in un componente
Vedi Mappare colonne.