Funkcja AddColumns, DropColumns, RenameColumns i ShowColumns

Dotyczy: Aplikacje oparte na kanwie Przepływy pulpitu Aplikacje oparte na modelach Power Platform CLI

Te funkcje umożliwiają kształtowanie tabeli przez dodanie, usunięcie, zmianę nazwy i wybranie jej kolumn.

Funkcja **ForAll może być również używana do kształtowania tabeli, zwracając tabelę nowych rekordów utworzonych z istniejących kolumn.

Omówienie

Te funkcje umożliwiają kształtowanie postaci tabeli przez dostosowanie jej kolumn:

  • Zredukowanie tabeli zawierającej wiele kolumn do jednej kolumny na potrzeby funkcji obsługujących jedna kolumnę, takich jak Lower lub Sqrt.
  • Dodanie kolumny obliczeniowej do tabeli (na przykład kolumny Cena łączna zawierającej wynik mnożenia kolumn Ilość i Cena jednostkowa).
  • Zmiana nazwy kolumny na opisową na potrzeby wyświetlania użytkownikom i używania w formułach.

Tabela to wartość w usłudze Power Apps, podobnie jak ciąg lub liczba. Tabelę można określić jako argument formuły, a funkcje mogą zwracać tabelę jako wynik.

Uwaga

Funkcje opisane w tym temacie nie umożliwiają modyfikowania początkowej tabeli. Zamiast tego pobierają tabelę jako argument i zwracają nową tabelę z zastosowanym przekształceniem. Aby uzyskać więcej szczegółów, zobacz artykuł dotyczący pracy z tabelami.

Za pomocą tych funkcji nie można zmodyfikować kolumn źródła danych. Dane należy zmodyfikować w ich źródle. Kolumny można dodać do kolekcji za pomocą funkcji Collect. Aby dowiedzieć się więcej, zobacz artykuł dotyczący pracy ze źródłami danych.

Podpis

Funkcja AddColumns umożliwia dodanie do tabeli kolumny i formuły definiującej wartości w tej kolumnie. Istniejące kolumny pozostaną bez zmian.

Formuła jest obliczana dla każdego rekordu w tabeli.

Pola aktualnie przetwarzanego rekordu są dostępne w obrębie formuły. Użyj operatora ThisRecord lub po prostu odwołuj się do pól, używając ich nazw, tak jak w przypadku każdej innej wartości. Możesz też użyć operatora As w celu nadania nazwy przetwarzanemu rekordowi, co umożliwi utworzenie bardziej zrozumiałej formuły oraz dostęp do zagnieżdżonych rekordów. Aby uzyskać więcej informacji, zobacz poniższe przykłady oraz temat Praca z zakresem rekordów.

Funkcja DropColumns umożliwia wykluczenie kolumn z tabeli. Wszystkie pozostałe kolumny pozostaną bez zmian. Funkcja DropColumns umożliwia wykluczenie, a funkcja ShowColumns dołączenie kolumn.

Użyj funkcji RenameColumns, aby zmienić nazwę jednej lub więcej kolumn tabeli, podając co najmniej jedną parę argumentów określającą nazwę kolumny zawartej w tabeli (starą nazwę, którą chcesz zamienić) i nazwę kolumny nieznajdującej się w tabeli (nową nazwę, której chcesz użyć). Stara nazwa musi już istnieć w tabeli, a nowa nazwa nie może istnieć. Każda nazwa kolumny może wystąpić na liście argumentów tylko raz jako stara nazwa kolumny lub nowa nazwa kolumny. Aby zmienić nazwę kolumny na już istniejącą, najpierw usuń istniejącą kolumnę za pomocą funkcji DropColumns lub zmień nazwę istniejącej kolumny, zagnieżdżając jedną funkcję RenameColumns w drugiej.

Funkcja ShowColumns umożliwia dołączenie kolumn do tabeli przy jednoczesnym usunięciu wszystkich pozostałych kolumn. Funkcja ShowColumns umożliwia utworzenie tabeli jednokolumnowej z tabeli wielokolumnowej. Funkcja ShowColumns dołącza kolumny, a funkcja DropColumns wyklucza kolumny.

W przypadku wszystkich tych funkcji wynik to nowa tabela z zastosowanym przekształceniem. Oryginalna tabela nie jest modyfikowana. Nie można modyfikować istniejącej tabeli formułą. SharePoint, Microsoft Dataverse, SQL Server i inne źródła danych udostępniają narzędzia do modyfikowania kolumn list, tabel i tabel, które często określa się mianem schematu. Funkcje opisane w tym artykule jedynie przekształcają tabelę wejściową, bez modyfikowania oryginału, w tabelę wyjściową do dalszego wykorzystania.

Argumenty tych funkcji służą do obsługi delegowania. Na przykład funkcja Filter używana jako argument ściągania rekordów pokrewnych wyszukuje wszystkie aukcje, nawet jeśli źródło danych '[dbo].[AllListings]' zawiera miliony wierszy:

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

Jednak dane wyjściowe tych funkcji podlegają limitowi rekordu, który nie jest delegowany. W tym przykładzie tylko rekordy 500 są zwracane nawet wtedy, gdy źródło danych RealEstateAgents zawiera 501 lub więcej rekordów.

Jeśli użyjesz AddColumns w ten sposób, Filtr musi wykonać osobne wywołania do źródła danych dla każdego z tych pierwszych rekordów w RealEstateAgents, co powoduje wiele zakłóceń w sieci. Jeśli [dbo](.[AllListings] jest na tyle małe i nie zmienia się często. Możesz wywołać funkcję Collect w OnStart, aby buforować źródło danych w aplikacji podczas jej uruchamiania. Zamiast tego można zmienić strukturę aplikacji, aby ściągnąć rekordy pokrewne tylko wtedy, gdy użytkownik zapyta o nie.

Uwaga

W Power Apps przed wersją 3.24042 nazwy kolumn były określane za pomocą ciągu tekstowego z podwójnymi cudzysłowami, a jeśli były połączone ze źródłem danych, musiały być również nazwami logicznymi. Na przykład nazwa logiczna "cr43e_name" z podwójnymi cudzysłowami została użyta zamiast nazwy wyświetlanej Nazwa bez cudzysłowów. W przypadku źródeł danych SharePoint i Excel, które zawierają nazwy kolumn ze spacjami, każda spacja została określona za pomocą "_x0020_", na przykład "Column Name" jako "Column_x0020_Name". Po tej wersji wszystkie aplikacje zostały automatycznie zaktualizowane do nowej składni opisanej w tym artykule.

Składnia

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

  • Tabela – wymagane. Tabela, na której będą wykonywane działania.
  • ColumnName(s) - wymagane. Nazwy kolumn do dodania.
  • Formuła – wartości wymagane. Formuły obliczane dla każdego rekordu. Wynik zostanie dodany jako wartość odpowiadającej nowej kolumny. W tej formule można przywoływać inne kolumny tej tabeli.

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

  • Tabela – wymagane. Tabela, na której będą wykonywane działania.
  • ColumnName(s) - wymagane. Nazwy kolumn do usunięcia.

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

  • Tabela – wymagane. Tabela, na której będą wykonywane działania.
  • StaraNazwaKolumny — wartość wymagana. Nazwa kolumny, którą chcesz zmienić, z oryginalnej tabeli. Ten element jest wyświetlany jako pierwszy w parze argumentów (lub pierwszy w każdej parze argumentów, gdy formuła zawiera więcej niż jedną parę).
  • NowaNazwaKolumny — wartość wymagana. Nazwy zastępujące. Ten element jest wyświetlany jako ostatni w parze argumentów (lub ostatni w każdej parze argumentów, gdy formuła zawiera więcej niż jedną parę).

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

  • Tabela – wymagane. Tabela, na której będą wykonywane działania.
  • ColumnName(s) - wymagane. Nazwy kolumn do uwzględnienia.

Przykłady

Na potrzeby przykładów w tej sekcji użyto źródła danych IceCreamSales, które zawiera dane z poniższej tabeli:

Przykład Icecream.

Żaden z tych przykładów nie powoduje zmodyfikowania źródła danych IceCreamSales. Każda funkcja przekształca wartości ze źródła danych do postaci tabeli i zwraca tę wartość jako wynik.

Formuła Podpis Result
AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold ) Dodaje kolumnę Przychód do wyniku. Dla każdego rekordu jest obliczana wartość CenaJednostkowa * LiczbaSprzedanych, a wartość jest umieszczana w nowej kolumnie. Rezultat z Truskawką, Czekoladą i Wanilią.
DropColumns( IceCreamSales, UnitPrice ) Wyklucza kolumnę UnitPrice z wyniku. Ta funkcja umożliwia wykluczenie kolumn, a funkcja ShowColumns umożliwia ich dołączenie. Wynik z Truskawkowym, Czekoladowym, Waniliowym mającym tylko kolumnę QuantitySold.
ShowColumns( IceCreamSales, Flavor ) Dołącza do wyniku tylko kolumnę Smak. Ta funkcja umożliwia dołączenie kolumn, a funkcja DropColumns umożliwia ich wykluczenie. Tylko kolumna Smak.
RenameColumns( IceCreamSales, UnitPrice, Price) Zmienia nazwę kolumny UnitPrice w wyniku. Wynik ze smakiem, ceną i przychodem.
RenameColumns( IceCreamSales, UnitPrice, Price, QuantitySold, Number) Zmienia nazwy kolumn UnitPrice i QuantitySold w wynikach. Wynik z 3 lodami i kolumnami jako Smak, Cena, Przychód.
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, Revenue,
UnitPrice * QuantitySold ),
UnitPrice, Price ),
Ilość )
Wykonuje kolejno następujące przekształcenia tabeli, rozpoczynając od wnętrza formuły:
  1. Dodaje kolumnę Przychód opartą na obliczonej dla każdego rekordu wartości CenaJednostkowa * Ilość.
  2. Zmienia nazwę kolumny CenaJednostkowa na Cena.
  3. Wyklucza kolumnę Ilość.
Ważna jest kolejność, na przykład nie można użyć w obliczeniach kolumny UnitPrice (CenaJednostkowa) po zmianie jej nazwy.
Przykład ceny jednostkowej lodów.

Krok po kroku

Spróbujmy przykłady z wcześniejszej wersji tego artykułu.

  1. Można utworzyć to kolekcję, dodając kontrolkę Button i ustawiając jej właściwość OnSelect na następującą formułę:

    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. Uruchom formułę, wybierając przycisk, przytrzymując klawisz Alt.

  3. Dodaj drugą kontrolkę Button i ustaw jej właściwość OnSelect na następującą formułę i następnie uruchomić ją:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, Revenue, UnitPrice * QuantitySold )
    )
    
  4. Z menu Plik wybierz Kolekcję, a następnie IceCreamSales, aby pokazać kolekcję.

    Tak jak w przypadku tej ilustracji, druga formuła nie została zmodyfikowana. Funkcja AddColumns została użyta do IceCreamSales jako argument tylko do odczytu; funkcja nie zmodyfikowała tabeli, do której odwołuje się ten argument.

    Podgląd kolekcji przedstawiający trzy rekordy z kolekcji ds. sprzedaży lodów, która nie zawiera kolumny z Przychodem.

  5. Wybierz FirstExample.

    Tak jak przedstawiono tę grafikę, druga formuła zwróciła nową tabelę zawierającą dodaną kolumnę. Funkcja ClearCollect przechwyciła nową tabelę w kolekcji FirstExample, dodając coś do oryginalnej tabeli, ponieważ przepływa ona przez funkcję bez modyfikowania źródła:

    Kolekcja przedstawia trzy rekordy z kolekcji pierwszego przykładu, które zawierają nową kolumnę z Przychodem.

Mapowanie kolumn w składniku

Zobacz: Mapuj kolumny.