Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pokud jste použili jiný programovací nástroj, například Visual Basic nebo JavaScript, můžete se zeptat: Kde jsou proměnné? Power Apps funguje jinak a potřebuje jiný přístup. Místo využití proměnné si při vytváření aplikace plátna položte otázku: Co bych udělal(a) v Excelu?
V jiných nástrojích můžete explicitně provést výpočet a výsledek uložit do proměnné. Power Apps a Excel ale automaticky přepočítávají vzorce při změnách vstupních dat, takže obvykle nemusíte vytvářet ani aktualizovat proměnné. Díky tomuto přístupu snadněji vytváříte, rozumíte a udržujete aplikaci.
Někdy potřebujete v Power Apps použít proměnné, které rozšiřují model Excelu přidáním vzorců chování. Tyto vzorce se spustí, když například uživatel klikne nebo klepne na tlačítko. Ve vzorci chování je často užitečné nastavit proměnnou pro použití v jiných vzorcích.
Obecně se proměnným vyhýbejte. Někdy ale jen proměnná umožňuje vytvořit požadované prostředí. Proměnné jsou implicitně vytvářeny a psány, když se objevují ve funkcích, které nastavují jejich hodnoty.
Převod aplikace Excel na Power Apps
Aplikace Excel
Pojďme si zopakovat, jak funguje Excel. Buňka může mít hodnotu, například číslo nebo řetězec, nebo vzorec založený na hodnotách jiných buněk. Když do buňky zadáte jinou hodnotu, Excel automaticky přepočítá všechny vzorce, které závisí na nové hodnotě. Abyste toto chování povolili, nemusíte provádět žádné programování.
V následujícím příkladu buňka A3 používá vzorec A1+A2. Pokud se změní A1 nebo A2, A3 se automaticky přepočítá. Toto chování nevyžaduje kódování mimo samotný vzorec.
Excel nemá proměnné. Hodnota buňky se vzorcem se mění na základě vstupu, ale neexistuje způsob, jak si zapamatovat výsledek vzorce a uložit ho do buňky nebo kdekoli jinde. Pokud změníte hodnotu buňky, může se změnit celá tabulka a všechny dříve počítané hodnoty se ztratí. Buňky můžete kopírovat a vkládat, ale to je ruční proces a nelze to provádět se vzorci.
Power Apps
Aplikace, které vytvoříte v Power Apps, fungují podobně jako Excel. Místo aktualizace buněk přidáte ovládací prvky kamkoli na obrazovku a pojmenujete je pro použití ve vzorcích.
Například chování Excelu v aplikaci můžete zkopírovat přidáním ovládacího prvku Label s názvem Label1 a dvěma ovládacími prvky textového vstupu s názvy TextInput1 a TextInput2. Pokud nastavíte Vlastnost TextLabel1 na TextInput1 + TextInput2, vždy zobrazí součet čísel v TextInput1 a TextInput2 automaticky.
Všimněte si, že ovládací prvek Label1 je vybraný a zobrazuje svůj vzorec Text v řádku vzorců v horní části obrazovky. Vzorec TextInput1 + TextInput2 vytvoří závislost mezi těmito ovládacími prvky, stejně jako závislosti mezi buňkami v excelovém sešitu. Změňme hodnotu TextInput1:
Vzorec pro Label1 automaticky přepočítá a zobrazí novou hodnotu.
V Power Apps použijete vzorce k nastavení nejen hlavní hodnoty ovládacího prvku, ale také vlastností, jako je formátování. V dalším příkladu vzorec pro vlastnost Color popisku automaticky zobrazuje záporné hodnoty červeně. Funkce If vypadá dobře z Excelu:
If( Value(Label1.Text) < 0, Red, Black )
Vzorce se používají pro mnoho scénářů:
- Když je GPS vašeho zařízení zapnuté, ovládací prvek mapy zobrazí aktuální polohu se vzorcem, který používá Location.Latitude a Location.Longitude. Při pohybu mapa vaši polohu automaticky sleduje.
- Jiní uživatelé aktualizují zdroje dat. Například jiní členové týmu by mohli aktualizovat položky v seznamu. Když aktualizujete zdroj dat, všechny závislé vzorce se automaticky přepočítají tak, aby zobrazovaly aktualizovaná data. Můžete například nastavit vlastnost Items galerie na vzorec Filter( SharePointList ), který automaticky zobrazí nově filtrovanou sadu záznamů.
Benefity
Použití vzorců k sestavování aplikací má mnoho výhod:
- Pokud znáte Excel, znáte Power Apps. Model a jazyk vzorce jsou stejné.
- Pokud jste použili jiné programovací nástroje, zamyslete se nad tím, kolik kódu byste potřebovali k provedení těchto příkladů. V jazyce Visual Basic byste napsali obslužnou rutinu události pro událost změny na každém ovládacím prvku pro zadávání textu. Kód, který má provést výpočet v každém z nich, je redundantní a může se dostat ze synchronizace, nebo byste museli napsat společný podprogram. V Power Apps vše děláte pomocí jediného, jednořádkového vzorce.
- Pokud chcete zjistit, odkud text Label1 pochází, víte přesně, kde se má text hledat: vzorec ve vlastnosti Text . Neexistuje žádný jiný způsob, jak změnit text tohoto ovládacího prvku. V tradičním programovacím nástroji může jakákoli obslužná rutina události nebo podprogram změnit hodnotu popisku odkudkoli v programu. Díky tomu je obtížné sledovat, kdy a kde se proměnná změnila.
- Pokud změníte ovládací prvek posuvníku a pak změníte názor, můžete posuvník změnit zpět na původní hodnotu. Je to jako kdyby se nic nezměnilo: aplikace zobrazuje stejné řídicí hodnoty jako předtím. Neexistují žádné důsledky pro experimentování a dotaz "co když", stejně jako v Excelu.
Obecně platí, že pokud můžete něco udělat se vzorcem, budete lepší. Nechte modul vzorců v Power Apps pracovat za vás.
Jak poznat, kdy použít proměnné
Změňme náš jednoduchý sčítač tak, aby fungoval jako starý sčítací stroj s mezisoučtem. Když vyberete tlačítko Přidat , přidáte číslo do průběžného součtu. Když vyberete tlačítko Vymazat , obnovíte průběžný součet na nulu.
| Zobrazení | Popis |
|---|---|
|
Po spuštění aplikace je běžný součet 0. Červený bod představuje prst uživatele v poli pro zadávání textu, kam uživatel zadá 77. |
|
Uživatel vybere tlačítko Přidat. |
|
Hodnota 77 je připočtena k průběžnému součtu. Uživatel znovu vybere tlačítko Přidat. |
|
77 je opět připočtena k průběžnému součtu, což vede k 154. Uživatel vybere tlačítko Vymazat. |
|
Celkový součet se resetuje na 0. |
Náš sčítací stroj používá něco, co v Excelu neexistuje: tlačítko. V této aplikaci nemůžete k výpočtu mezisoučtu použít jenom vzorce, protože jeho hodnota závisí na řadě akcí, které uživatel provede. Místo toho zaznamenáte a aktualizujete průběžný součet ručně. Většina programovacích nástrojů ukládá tyto informace do proměnné.
Někdy potřebujete proměnnou, aby se vaše aplikace chovala tak, jak chcete, ale tento přístup přináší upozornění:
- Průběžný součet aktualizujete ručně. Automatické přepočítání to za vás nedělá.
- Průběžný součet se nevypočítá na základě hodnot jiných ovládacích prvků. Závisí na tom, kolikrát uživatel vybere tlačítko Přidat a jakou hodnotu se pokaždé nachází v ovládacím prvku pro zadávání textu. Zadal uživatel hodnotu 77 a vybral možnost Přidat dvakrát, nebo zadal 24 a 130 pro každé přidání? Rozdíl po dosažení hodnoty 154 nemůžete zjistit.
- Změny součtu můžou pocházet z různých akcí. V tomto příkladu aktualizují součty tlačítka Přidat i Vymazat . Pokud se aplikace nechová podle očekávání, které tlačítko problém způsobuje?
Použití globální proměnné
K vytvoření sčítacího stroje potřebujete proměnnou, která bude obsahovat průběžný součet. Nejjednodušší proměnné, které se mají použít v Power Apps, jsou globální proměnné.
Jak globální proměnné fungují:
- Nastavte hodnotu globální proměnné pomocí funkce Set . Set( MyVar; 1 ) nastaví globální proměnnou MyVar na hodnotu 1.
- Globální proměnnou použijte odkazem na název použitý s funkcí Set . V tomto případě MyVar vrátí hodnotu 1.
- Globální proměnné můžou obsahovat libovolnou hodnotu, včetně řetězců, čísel, záznamů a tabulek.
Znovu sestavte sčítací stroj pomocí globální proměnné:
Přidejte ovládací prvek pro zadávání textu s názvem TextInput1 a dvě tlačítka s názvem Button1 a Button2.
Nastavte vlastnost Text prvku Button1 na "Add" a nastavte vlastnost Text prvku Button2 na "Clear".
Pokud chcete aktualizovat průběžný součet, když uživatel vybere tlačítko Přidat , nastavte jeho vlastnost OnSelect na tento vzorec:
Set( RunningTotal; RunningTotal + TextInput1 )
Tento vzorec vytvoří RunningTotal jako globální proměnnou, která obsahuje číslo z důvodu operátoru + . Odkazujte na RunningTotal kdekoli v rámci aplikace Když uživatel aplikaci otevře, má RunningTotal počáteční hodnotu prázdné.
Když uživatel poprvé vybere tlačítko Přidat a Spustí se, RunningTotal se nastaví na hodnotu RunningTotal + TextInput1.
Pokud chcete nastavit průběžný součet na hodnotu 0 , když uživatel vybere tlačítko Vymazat , nastavte jeho vlastnost OnSelect na tento vzorec:
Set( RunningTotal; 0 )
Přidejte ovládací prvek Popisek a nastavte jeho vlastnost Text na RunningTotal.
Tento vzorec automaticky přepočítá a zobrazí uživateli hodnotu RunningTotal při změně na základě tlačítek, která uživatel vybere.
Snímek obrazovky zachycující vlastnost Text u popisku, která je nastavena na název proměnné.
Prohlédněte si náhled aplikace. Do textového pole zadejte číslo a několikrát vyberte tlačítko Přidat . Až budete připraveni, vraťte se do prostředí pro vytváření pomocí klávesy Esc .
Pokud chcete zobrazit hodnotu globální proměnné, v nabídce pro vytváření aplikací vyberte Proměnné.
Pokud chcete zobrazit všechna místa, kde je naše proměnná definovaná a použitá, vyberte ji v části Globální proměnné.
Typy proměnných
Power Apps má tři typy proměnných:
| Typ proměnné | Scope | Popis | Funkce, které zavádějí |
|---|---|---|---|
| Globální proměnné | Aplikace | Globální proměnné slouží k uložení čísla, textového řetězce, logické hodnoty, záznamu, tabulky nebo jiné hodnoty, na kterou odkazujete kdekoli v aplikaci. | Set |
| Kontextové proměnné | Obrazovka | Kontextové proměnné můžete použít k předání hodnot na obrazovku, jako jsou parametry v jiných jazycích. Můžete na ně odkazovat jenom z jedné obrazovky. |
UpdateContext Navigate |
| Kolekce | Aplikace | Kolekce slouží k uložení tabulky, na kterou odkazujete kdekoli v aplikaci. Obsah tabulky můžete změnit a uložit ho na místní zařízení pro pozdější použití. |
Collect ClearCollect |
Vytvářejte a odstraňte proměnné
Proměnné se vytvářejí implicitně, když se zobrazí ve funkci Set, UpdateContext, Navigate, Collect nebo ClearCollect . Pokud chcete deklarovat proměnnou a její typ, stačí ji zahrnout do kterékoli z těchto funkcí kdekoli ve vaší aplikaci. Tyto funkce nevytvoří proměnné; vyplní pouze proměnné hodnotami. Proměnné nikdy nehlásíte explicitně jako v jiném programovacím nástroji a veškeré psaní je implicitní z použití.
Můžete mít například ovládací prvek tlačítko se vzorcem OnSelect, který se rovná Set( X, 1 ). Tento vzorec stanoví X jako proměnnou s typem čísla. X použijete ve vzorcích jako číslo a tato proměnná má po otevření aplikace hodnotu prázdná, ale před výběrem tlačítka. Když vyberete tlačítko, dáte X hodnotu 1.
Pokud přidáte další tlačítko a nastavíte jeho vlastnost OnSelect na Set( X, "Hello" ), dojde k chybě, protože typ (textový řetězec) neodpovídá typu v předchozí sadě (číslo). Všechny implicitní definice proměnné se musí shodovat v typu. To všechno se děje, protože ve vzorcích zmíníte X, a ne proto, že by se některý z těchto vzorců skutečně prováděl.
Odeberte proměnnou odebráním všech funkcí Set, UpdateContext, Navigate, Collect nebo ClearCollect , které implicitně navazují proměnnou. Bez těchto funkcí proměnná neexistuje. Odeberte také všechny odkazy na proměnnou, protože způsobují chybu.
Životnost a počáteční hodnota proměnné
Proměnné zůstanou v paměti při spuštění aplikace. Po zavření aplikace dojde ke ztrátě hodnot v proměnných.
Obsah proměnné můžete uložit ve zdroji dat pomocí funkcí Patch nebo Collect . Hodnoty můžete ukládat do kolekcí na místním zařízení pomocí funkce SaveData .
Když uživatel aplikaci otevře, všechny proměnné začínají počáteční hodnotou prázdné.
Čtení proměnných
Ke čtení hodnoty použijte název proměnné. Definujte například proměnnou pomocí tohoto vzorce:
Set( Radius, 12 )
Pak použijte radius kdekoli, kde použijete číslo, a nahradí se číslem 12:
Pi() * Power( Radius, 2 )
Pokud dáte kontextové proměnné stejný název jako globální proměnná nebo kolekci, bude mít přednost kontextová proměnná. Globální proměnnou nebo kolekci můžete odkazovat pomocí operátoru nejednoznačnosti[@Radius].
Názvy vyhrazených proměnných
Nepoužívejte žádný z následujících názvů proměnných. Tyto názvy jsou vlastnosti aplikace a jejich použití může způsobit kolize názvů proměnných, které vedou k neočekávanému chování aplikace.
- ActiveScreen
- DesignHeight
- DesignWidth
- Výška
- MinScreenHeight
- MinScreenWidth
- SizeBreakpoints
- StudioVersion
- TestCaseId
- Testování
- TestSuiteId
- Téma
- Šířka
Použití kontextové proměnné
Pojďme se podívat, jak vytvořit sčítací stroj pomocí kontextové proměnné namísto globální proměnné.
Jak fungují kontextové proměnné
- Kontextové proměnné se implicitně zavádějí a nastavují pomocí funkce UpdateContext nebo Navigate. Při spuštění aplikace je počáteční hodnota každé kontextové proměnné prázdná.
- Kontextové proměnné se aktualizují se záznamy. V jiných programovacích nástrojích obvykle pro přiřazení používáte "=", například "x = 1". U kontextových proměnných se místo toho použije { x: 1 }. Při použití kontextové proměnné použijte její název přímo bez syntaxe záznamu.
- Kontextovou proměnnou můžete také nastavit, když zobrazujete obrazovku pomocí funkce Navigate. Pokud si myslíte, že obrazovka je druh procedury nebo podprogramu, je tento přístup jako parametr předávání v jiných programovacích nástrojích.
- S výjimkou funkce Navigate jsou kontextové proměnné omezené na kontext jedné obrazovky, což je místo, kde získají svůj název. Nemůžete je použít ani nastavit mimo tento kontext.
- Kontextové proměnné můžou obsahovat libovolnou hodnotu, včetně řetězců, čísel, záznamů a tabulek.
Přepracujte sčítací stroj pomocí kontextové proměnné.
Přidejte ovládací prvek zadávání textu s názvem TextInput1 a dvě tlačítka pojmenovaná Button1 a Button2.
Nastavte vlastnost Text prvku Button1 na "Add" a nastavte vlastnost Text prvku Button2 na "Clear".
Pokud chcete aktualizovat mezisoučet pokaždé, když uživatel vybere tlačítko Přidat, nastavte jeho vlastnost OnSelect ne tento vzorec:
UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )
Tento vzorec vytvoří RunningTotal jako kontextovou proměnnou, která obsahuje číslo z důvodu operátoru + . Na této obrazovce odkazujete na RunningTotal. Když uživatel aplikaci otevře, má RunningTotal počáteční hodnotu prázdné.
Když uživatel poprvé vybere tlačítko Přidat a spustí se UpdateContext , runningTotal se nastaví na hodnotu RunningTotal + TextInput1.
Pokud chcete nastavit mezisoučet na 0 vždy, když uživatel vybere tlačítko Vymazat, nastavte jeho vlastnost OnSelect na tento vzorec:
UpdateContext( { RunningTotal: 0 } )
Znovu použijte UpdateContext se vzorcem UpdateContext( { RunningTotal: 0 } ).
Přidejte ovládací prvek Popisek a nastavte jeho vlastnost Text na RunningTotal.
Tento vzorec se automaticky přepočítá a uživateli se zobrazí hodnota RunningTotal, jak se bude měnit podle tlačítek, která uživatel vybere.
Zobrazte náhled aplikace. Do textového pole zadejte číslo a několikrát vyberte tlačítko Přidat . Až budete připraveni, vraťte se do prostředí pro vytváření obsahu pomocí klávesy Esc .
Nastavte hodnotu kontextové proměnné při přechodu na obrazovku a předejte "kontext" nebo "parametry" z jedné obrazovky do jiné. Tuto techniku demonstrujte tak, že vložíte obrazovku, vložíte tlačítko a nastavíte vlastnost OnSelect na tento vzorec:
Navigate( Screen1; None; { RunningTotal: -1000 } )
Podržte stisknutou klávesu Alt a vyberte toto tlačítko, abyste zobrazili obrazovku Screen1 a nastavili kontextovou proměnnou RunningTotal na -1000.
Chcete-li zobrazit hodnotu kontextové proměnné, proveďte jednu z následujících akcí:
Pokud používáte verzi Preview Power Apps Studio, vyberte v nabídce vytváření aplikace možnost Proměnné.
Pokud používáte klasickou verzi Power Apps Studia, vyberte nabídku Soubor a pak v levém podokně vyberte Proměnné .
Pokud chcete zobrazit místa, kde se vaše kontextová proměnná definuje a používá, vyberte ji v části Kontextové proměnné.
Použití kolekce
Vytvořme sčítací stroj pomocí kolekce. Vzhledem k tomu, že kolekce obsahuje tabulku, kterou lze snadno změnit, zachovává tato kalkulačka při zadávání údajů "papírovou pásku" s každou hodnotou.
Jak fungují kolekce
- Kolekce se vytvářejí a nastavují pomocí funkce ClearCollect. Místo toho můžete použít funkci Collect , ale místo nahrazení staré proměnné vyžaduje jinou proměnnou.
- Kolekce je typ zdroje dat a tabulky. Pokud chcete získat jednu hodnotu v kolekci, použijte první funkci a získejte jedno pole z výsledného záznamu. Pokud použijete jednu hodnotu s ClearCollect, jedná se o pole Value , jako v tomto příkladu:
First(VariableName).Value
Vytvoření sčítacího stroje pomocí kolekce:
Přidejte ovládací prvek Textové zadání nazvaný TextInput1 a dvě tlačítka s názvem Button1 a Button2.
Nastavte vlastnost Text prvku Button1 na "Add" a nastavte vlastnost Text prvku Button2 na "Clear".
Pokud chcete aktualizovat mezisoučet pokaždé, když uživatel vybere tlačítko Přidat, nastavte jeho vlastnost OnSelect ne tento vzorec:
Collect( PaperTape; TextInput1.Text )
Pouhá existence tohoto vzorce zadává PaperTape jako kolekci obsahující tabulku textových řetězců s jedním sloupcem. Můžete odkazovat na PaperTape kdekoli v aplikaci. Kdykoli uživatel otevře tuto aplikaci, PaperTape je prázdná tabulka.
Když se tento vzorec spustí, přidá novou hodnotu na konec kolekce. Vzhledem k tomu, že přidáváme jednu hodnotu, funkce Collect ji automaticky umístí do jednosloupcové tabulky s názvem sloupce Value, který použijeme později.
Pokud chcete vymazat naši papírovou pásku, když uživatel vybere tlačítko Vymazat, nastavte jeho vlastnost OnSelect na tento vzorec:
Clear( PaperTape )
Pokud chcete spustit sčítací stroj, stiskněte klávesu F5, která otevře Náhled, do ovládacího prvku zadání textu zadejte čísla a vyberte tlačítka.
Pokud se chcete vrátit do výchozího pracovního prostoru, vyberte Esc.
Chcete-li zobrazit papírovou pásku, vložte ovládací prvek Tabulka dat a nastavte jeho **[Položky](ovládací prvky/vlastnosti1. Chcete-li zobrazit hodnoty ve své kolekci, proveďte jednu z následujících akcí:
Pokud používáte verzi Preview Power Apps Studia, vyberte v nabídce pro vytváření aplikací proměnné a pak vyberte Kolekce.
Pokud používáte klasickou verzi Power Apps Studia, vyberte v nabídce Souborkolekce. Chcete-li zobrazit hodnoty ve své kolekci, proveďte jednu z následujících akcí:
Pokud používáte verzi Preview Power Apps Studio, vyberte Proměnné v nabídce vytváření aplikace a pak vyberte Kolekce.
Pokud používáte klasickou verzi Power Apps Studio, vyberte Kolekce v nabídce Soubor.
Pokud chcete kolekci uložit a získat, přidejte další dva ovládací prvky tlačítek a nastavte jejich vlastnosti Text na Načtení a Uložení. Vlastnost OnSelect tlačítka Načíst nastavte na tento vzorec:
Clear( PaperTape ); LoadData( PaperTape; "StoredPaperTape"; true )
Nejprve potřebujeme kolekci vymazat, protože funkce LoadData přidá uložené hodnoty na konec kolekce.
Vlastnost OnSelect tlačítka Save nastavte na tento vzorec:
SaveData( PaperTape; "StoredPaperTape" )
Náhled znovu zobrazíte tak, že vyberete klávesu F5, zadáte do ovládacího prvku pro zadávání textu čísla a vyberete tlačítka. Vyberte tlačítko Uložit. Zavřete a znovu otevřete aplikaci a vyberte tlačítko Načíst, které znovu načte vaši kolekci.
Poznámka
Funkce SaveData a LoadData pracují v Power Apps Mobile, ale ne v Power Apps Studio nebo webovém přehrávači pro Power Apps.