Funkce AddColumns, DropColumns, RenameColumns a ShowColumns

Platí pro: aplikace plátna desktopové toky modelem řízené aplikace Power Platform CLI

Tyto funkce tvarují tabulku přidáním, zahozením, přejmenováním a výběrem sloupců.

Přehled

Tyto funkce tvarují tabulku úpravou jejích sloupců. Umožňují:

  • Zredukovat tabulku obsahující více sloupců na jednosloupcovou tabulku, která dovoluje použití jednosloupcových funkcí, například funkcí Lower nebo Abs.
  • Přidat do tabulky počítaný sloupec (třeba sloupec Celková cena, který zobrazuje výsledky násobení Množství a Jednotkové ceny).
  • Přejmenovat sloupec na něco smysluplnějšího pro zobrazení uživatelům nebo pro použití ve vzorcích.

Tabulka je v Power Apps, hodnotou, stejně jako třeba řetězec nebo číslo. Tabulku můžete zadat jako argument ve vzorci a funkce můžou jako výsledek vrátit tabulku.

Poznámka:

Funkce popisované v tomto tématu nemění původní tabulku. Místo toho přebírají tabulku jako argument a vracejí novou tabulku s použitou transformací. Další podrobnosti najdete v části týkající se práce s tabulkami.

Pomocí těchto funkcí nemůžete měnit sloupce zdroje dat. Data musíte změnit v jejich zdroji. Sloupce můžete přidat do kolekce pomocí funkce Collect. Další podrobnosti najdete v části týkající se práce se zdroji dat.

Popis

Funkce AddColumns přidá do tabulky sloupec – a vzorec definuje hodnoty v tomto sloupci. Existující sloupce zůstanou nezměněné.

Vzorec se vyhodnocuje pro každý záznam tabulky.

Aktuálně zpracovávaná pole záznamu jsou dostupná v rámci vzorce. Použijte operátor ThisRecord nebo jednoduše odkazujte na pole podle jména, jako byste měli jakoukoli jinou hodnotu. Operátor As lze také použít k pojmenování zpracovávaného záznamu, což může usnadnit pochopení vzorce a zpřístupnit vnořené záznamy. Další informace uvádějí následující příklady a práce s rozsahem záznamu.

Funkce DropColumns vyloučí sloupce z tabulky. Všechny ostatní sloupce zůstanou nezměněné. Funkce DropColumns sloupce vyloučí, funkce ShowColumns sloupce zahrne.

Funkce RenameColumns slouží k přejmenování jednoho či více sloupců tabulky. Zadejte minimálně jednu dvojici argumentů, která určuje název sloupce obsaženého v tabulce (starý název, který chcete nahradit) a název sloupce, který v tabulce není (nový název, který chcete použít). Starý název musí už v tabulce existovat a nový název v tabulce existovat nesmí. Každý název sloupce se může v seznamu argumentů vyskytovat pouze jednou, buď jako starý název sloupce, nebo jako nový název sloupce. Pokud chcete přejmenovat sloupec na název, který už existuje, nejprve zahoďte existující sloupec pomocí funkce DropColumns, nebo přejmenujte existující sloupec tak, že vnoříte jednu funkci RenameColumns do jiné.

Funkce ShowColumns zahrne sloupce tabulky a zahodí všechny ostatní sloupce. Pomocí funkce ShowColumns můžete z vícesloupcové tabulky vytvořit jednosloupcovou. Funkce DropColumns sloupce vyloučí, funkce ShowColumns sloupce zahrne.

U všech těchto funkcí je výsledkem nová tabulka s použitou transformací. Původní tabulka se nezmění. Existující tabulku nelze upravit pomocí vzorce. SharePoint, Microsoft Dataverse, SQL Server a další zdroje dat poskytují nástroje pro úpravu sloupců seznamů, tabulek a tabulek, které se často označují jako schéma. Funkce v tomto tématu transformují pouze vstupní tabulku, aniž by došlo k úpravě originálu, na výstupní tabulku pro další použití.

Argumenty k těmto funkcím podporují delegování. Například: Funkce Filter používaná jako argument pro vyhledávání v souvisejících záznamech vyhledávání ve všech výpisech, i když zdroj dat '[dbo].[AllListings]' obsahuje milion řádků:

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

Výstup těchto funkcí však podléhá limitu záznamu bez delegování. V tomto příkladu je vráceno pouze 500 záznamů, i když zdroj dat RealEstateAgents má 501 nebo více záznamů.

Pokud používáte funkci AddColumns tímto způsobem, funkce Filter musí uskutečnit samostatná volání do zdroje dat pro každý z těchto prvních záznamů ve zdroji dat RealEstateAgents, což způsobuje hustý síťový provoz. Pokud je zdroj dat [dbo](.[AllListings] dostatečně malý a často se nemění, můžete volat funkci Collect v OnStart k uložení zdroje dat do mezipaměti v aplikaci, když se spustí. Alternativně můžete svou aplikaci restrukturalizovat, takže si související záznamy natáhnete, pouze pokud o ně uživatel požádá.

Syntaxe

AddColumns( Tabulka; NázevSloupce1; Vzorec1 [; NázevSloupce2; Vzorec2; ... ] )

  • Tabulka – povinné. Tabulka, se kterou se má provést výpočet
  • NázevSloupce – povinné. Názvy sloupců, které se mají přidat. Pro tento argument musíte zadat řetězec (například"Název" včetně uvozovek). Názvy sloupců musíte zadat pomocí jejich logického názvu. Intellisense navrhne pouze logická jména. U logického názvu je rozlišována velikost písmen.
  • Vzorec – povinné. Vzorce, které se mají vyhodnotit pro každý záznam. Výsledek se přidá jako hodnota příslušného nového sloupce. V tomto vzorci můžete odkazovat na jiné sloupce tabulky.

DropColumns( Tabulka; NázevSloupce1 [; NázevSloupce2; ... ] )

  • Tabulka – povinné. Tabulka, se kterou se má provést výpočet
  • NázevSloupce – povinné. Názvy sloupců, které se mají zahodit. Pro tento argument musíte zadat řetězec (například"Název" včetně uvozovek). Názvy sloupců musíte zadat pomocí jejich logického názvu. Intellisense navrhne pouze logická jména. U logického názvu je rozlišována velikost písmen.

RenameColumns( Tabulka, StarýNázevSloupce1, NovýNázevSloupce1 [, StarýNázevSloupce2, NovýNázevSloupce2, ... ] )

  • Tabulka – povinné. Tabulka, se kterou se má provést výpočet
  • StarýNázevSloupce – povinné. Název sloupce, který se má přejmenovat z původní tabulky. Tento prvek se zobrazí ve dvojici argumentů jako první (nebo jako první v každé dvojici argumentů, pokud vzorec obsahuje více dvojic). Tento název musí být řetězec (například "Název" včetně uvozovek). Názvy sloupců musíte zadat pomocí jejich logického názvu. Intellisense navrhne pouze logická jména. U logického názvu je rozlišována velikost písmen.
  • NovýNázevSloupce – povinné. Náhradní název. Tento prvek se zobrazí ve dvojici argumentů jako poslední (nebo jako poslední v každé dvojici argumentů, pokud vzorec obsahuje více dvojic). Pro tento argument musíte zadat řetězec (například "Jméno zákazníka" včetně uvozovek). Názvy sloupců musíte zadat pomocí jejich logického názvu. Intellisense navrhne pouze logická jména. U logického názvu je rozlišována velikost písmen.

ShowColumns( Tabulka; NázevSloupce1 [; NázevSloupce2; ... ] )

  • Tabulka – povinné. Tabulka, se kterou se má provést výpočet
  • NázevSloupce – povinné. Názvy sloupců, které se mají zahrnout. Pro tento argument musíte zadat řetězec (například"Název" včetně uvozovek). Názvy sloupců musíte zadat pomocí jejich logického názvu. Intellisense navrhne pouze logická jména. U logického názvu je rozlišována velikost písmen.

Příklady

Příklady v této části používají zdroj dat IceCreamSales (ProdejeZmrzliny), který obsahuje data v této tabulce:

Příklad zmrzliny.

Žádný z těchto příkladů nemění zdroj dat IceCreamSales. Každá funkce transformuje hodnotu zdroje dat jako tabulku a vrátí tuto hodnotu jako výsledek.

Vzorec Popis Výsledek
AddColumns( IceCreamSales; "Revenue"; UnitPrice * QuantitySold ) Přidá do výsledku sloupec Revenue (Výnos). Pro každý záznam se vypočítá součin jednotkové ceny a prodaného množství (UnitPrice * QuantitySold) a výsledek se umístí do nového sloupce. Výsledek s jahodou (Strawberry), čokoládou (Chocolate) a vanilkou (Vanilla).
DropColumns( IceCreamSales; "UnitPrice" ) Vyloučí z výsledku sloupec UnitPrice (JednotkováCena). Pomocí této funkce můžete sloupce vyloučit a pomocí funkce ShowColumns je můžete zahrnout. Výsledek s jahodou (Strawberry), čokoládou (Chocolate) a vanilkou (Vanilla), který má pouze sloupec QuantitySold.
ShowColumns( IceCreamSales; "Flavor" ) Zahrne do výsledku jenom sloupec Flavor. Pomocí této funkce můžete sloupce zahrnout a pomocí funkce DropColumns je můžete vyloučit. Pouze sloupec s příchutí (Flavor).
RenameColumns( IceCreamSales; "UnitPrice"; "Price") Přejmenuje ve výsledku sloupec UnitPrice. Výsledek s příchutí, cenou a výnosy (Flavor, Price a Revenue).
RenameColumns( IceCreamSales, "UnitPrice", "Price", "QuantitySold", "Number") Ve výsledku přejmenuje sloupce UnitPrice a QuantitySold. Výsledek se 3 zmrzlinami a sloupci příchuti, ceny a výnosu (Flavour, Price, Revenue).
DropColumns(
RenameColumns(
AddColumns( IceCreamSales, "Revenue",
UnitPrice * QuantitySold ),
"UnitPrice", "Price" ),
"Quantity" )
Provede následující transformace tabulky v uvedeném pořadí, přičemž začne zevnitř vzorce:
  1. Přidá sloupec Revenue na základě výpočtu součinů UnitPrice * Quantity pro jednotlivé záznamy.
  2. Přejmenuje sloupec UnitPrice na Price.
  3. Vyloučí sloupec Quantity.
Na pořadí záleží. Třeba po přejmenování sloupce UnitPrice už s ním nemůžeme počítat.
Příklad zmrzliny pro jednotkovou cenu.

Podrobný postup

Zkusme některé z příkladů z předchozího v tomto téma.

  1. Vytvořte kolekci přidáním ovládacího prvku Tlačítko a nastavením jeho vlastnosti OnSelect na tento vzorec:

    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. Spusťte vzorec výběrem tlačítka, zatímco držíte stisknutou klávesu Alt.

  3. Přidejte druhý ovládací prvek Button, do jeho vlastnosti OnSelect nastavte tento vzorec a spusťte jej:

    ClearCollect( FirstExample,
       AddColumns( IceCreamSales, "Revenue", UnitPrice * QuantitySold )
    )
    
  4. V nabídce Soubor výberte Kolekce a pak vyberte IceCreamSales pro zobrazení kolekce.

    Jak ukazuje tento obrázek, druhý vzorec tuto sbírku neupravil. Funkce AddColumns použila IceCreamSales jako argument jen pro čtení; funkce neupravila tabulku, na kterou se tento argument vztahuje.

    Prohlížeč kolekce zobrazující tři záznamy kolekce prodeje zmrzliny, která neobsahuje sloupec Tržby.

  5. Vyberte FirstExample.

    Jak ukazuje tento obrázek, druhý vzorec vrátil novou tabulku s přidaným sloupcem. Funkce ClearCollect zachytila novou tabulku v kolekci FirstExample a přidala něco do původní tabulky, protože proudila funkcí, aniž by se upravoval zdroj:

    Prohlížeč kolekce zobrazující tři záznamy kolekce První příklad, která obsahuje nový sloupec Tržby.

Mapování sloupců v komponentě

Viz Mapování sloupců.