Zdieľať cez


Funkcia UpdateContext

Platí pre: aplikácie Canvas

Vytvára alebo aktualizuje kontextové premenné aktuálnej obrazovky.

Prehľad

Funkcia UpdateContext umožňuje vytvoriť kontextovú premennú, ktorá dočasne uchová určitú informáciu, napríklad koľkokrát vybral používateľ určité tlačidlo alebo výsledok operácie s údajmi.

Oblasťou kontextových premenných je obrazovka, čo znamená, že nemôžete vytvoriť vzorec, ktorý odkazuje na inú kontextovú premennú na inej obrazovke. Ak ste už používali iný programovací nástroj, môžete kontext premennej považovať za obdobu lokálnej premennej. Pri práci s globálnymi premennými, ktoré sú dostupné v celej vašej aplikácii, použite funkciu Set.

Power Apps sa zakladá na vzorcoch, ktoré sa automaticky prepočítajú v priebehu interakcie používateľa s aplikáciou. Kontextové premenné túto výhodu neponúkajú a môžu sťažiť vytvorenie a pochopenie vašej aplikácie. Pred použitím kontextovej premennej si prečítajte článok Práca s premennými.

Popis

Ak chcete vytvoriť alebo aktualizovať kontextovú premennú, pošlite jeden záznam funkcii UpdateContext. V každom zázname zadajte názov stĺpca, ktorý definuje názov premennej alebo sa s ním zhoduje, a hodnotu, na ktorú chcete premennú nastaviť.

  • Ak zadáte názov premennej, ktorý ste už definovali predtým, funkcia UpdateContext nastaví hodnotu premennej na hodnotu, ktorú zadáte.
  • Ak zadáte názov premennej, ktorý ešte neexistuje, funkcia UpdateContext vytvorí premennú s týmto názvom a nastaví hodnotu premennej na hodnotu, ktorú zadáte.
  • Ak ste predtým definovali nejakú premennú, ale nezadáte ju v aktuálnom vzorci UpdateContext, jej hodnota zostáva rovnaká.

Kontextové premenné sa implicitne vytvárajú pomocou funkcie UpdateContext alebo funkcie Navigate. Nevyžaduje sa žiadna explicitná deklarácia. Ak funkciám UpdateContext a Navigate odoberiete všetky odkazy na kontextovú premennú, potom táto kontextová premenná prestane existovať. Premennú vymažete tak, že jej hodnotu nastavíte na výsledok funkcie Blank.

Hodnoty, definície a použitie premenných si môžete pozrieť pomocou zobrazenia Premenné v ponuke Súbor vo vývojovom prostredí.

Vo vzorci odkazujete na kontextovú premennú pomocou názvu stĺpca kontextovej premennej. Vzorec UpdateContext( { ShowLogo: true } ) napríklad vytvorí kontextovú premennú s názvom ShowLogo a nastaví jej hodnotu na true. Potom môžete použiť hodnotu tejto kontextovej premennej vo vzorci pomocou názvu ShowLogo. Môžete zapísať premennú ShowLogo ako vzorec pre vlastnosť Viditeľné ovládacieho prvku obrázka a zobraziť alebo skryť tento ovládací prvok podľa toho, či je hodnota kontextovej premennej true alebo false.

Ako uvidíte v príkladoch uvedených nižšie, kontextové premenné môžu uchovávať niekoľko typov informácií, ku ktorým patria:

  • samostatná hodnota
  • záznam
  • tabuľka
  • odkaz na objekt
  • akýkoľvek výsledok vzorca.

Kontextová premenná uchováva svoju hodnotu, až kým sa aplikácia nezatvorí. Ak zadefinujete kontextovú premennú a nastavíte jej hodnotu na konkrétnej obrazovke, tieto informácie zostanú nezmenené aj vtedy, keď používateľ prepne na inú obrazovku. Po zavretí aplikácie sa hodnota kontextovej premennej statí a musí sa znovu vytvoriť pri opätovnom načítaní aplikácie.

Oblasťou každej kontextovej premennej je obrazovka. Ak chcete definovať kontextovú premennú na jednej obrazovke a potom ju upraviť z inej obrazovky, musíte vytvoriť vzorec založený na funkcii Navigate. Alebo môžete použiť globálnu premennú.

Funkcia UpdateContext nemá žiadnu návratovú hodnotu a môžete ju použiť iba vo vzorcoch správania.

Syntax

UpdateContext( UpdateRecord )

  • UpdateRecord – povinné. Záznam, ktorý obsahuje názov aspoň jedného stĺpca a hodnotu pre tento stĺpec. Kontextová premenná sa vytvorí alebo aktualizuje pre každý zadaný stĺpec a každú zadanú hodnotu.

UpdateContext( { ContextVariable1: Value1 [, ContextVariable2: Value2 [, ... ] ] } )

  • ContextVariable1 – povinné. Názov kontextovej premennej, ktorá sa má vytvoriť alebo aktualizovať.
  • Value1 – povinné. Hodnota, ktorá sa má tejto kontextovej premennej priradiť.
  • ContextVariable2: Value2, ... – voliteľné. Ďalšie kontextové premenné, ktoré chcete vytvoriť alebo aktualizovať, a ich hodnoty.

Príklady

Vzorec Popis Výsledok
UpdateContext( { Counter: 1 } ) Vytvorí alebo upraví kontextovú premennú Čítač a nastaví jej hodnotu na 1. Premenná Počítadlo má hodnotu 1. Na túto premennú môžete odkázať použitím názvu Počítadlo vo vzorci.
UpdateContext( { Counter: 2 } ) Nastaví hodnotu kontextovej premennej Počítadlo z predchádzajúceho príkladu na 2. Premenná Počítadlo má hodnotu 2.
UpdateContext( { Name: "Lily", Score: 10 } ) Vytvorí alebo upraví kontextové premenné Meno a Skóre a nastaví ich hodnoty na Lenka a 10 v uvedenom poradí. Premenná Meno má hodnotu Lenka a premenná Skóre má hodnotu 10.
UpdateContext( { Osoba: { Meno: "Milton", Adresa: "1 Main St" } } ) Vytvorí alebo upraví kontextovú premennú Osoba a nastaví jej hodnotu na záznam. Tento záznam obsahuje dva stĺpce, s názvami Meno a Adresa. Hodnota stĺpca Meno je Novák, a hodnotu stĺpca Adresa je Hlavná ulica 1. Osoba má hodnotu záznamu {Meno:"Milton", Adresa:"1MainSt" } }.

Na tento záznam môžete odkázať ako na celok pomocou premennej Osoba alebo môžete odkázať na individuálny stĺpec z tohto záznamu pomocou Person.Name alebo Person.Address.
UpdateContext( { Osoba: Patch( Osoba, {Address: "2 MainSt" } ) } ) V súčinnosti s funkciou Patch aktualizuje kontextovú premennú Osoba nastavením hodnoty stĺpca Adresa na Hlavná ulica 2. Premenná Osoba má teraz hodnotu záznamu {Meno: "Milton", Adresa: "2 Main St" } }.

Podrobný príklad 1

  1. Dajte predvolenej obrazovke názov Zdroj, pridajte ďalšiu obrazovku a nazvite ju Cieľ.

  2. Na obrazovke Zdroj pridajte dve tlačidlá a nastavte ich vlastnosti Text tak, aby jedna uvádzala angličtina a druhá španielčinu.

  3. Nastavte vlastnosť OnSelect tlačidla angličtina na tento výraz:
    Navigate(Target, ScreenTransition.Fade, {Language:"English"})

  4. Vlastnosť OnSelect tlačidla Español nastavte na tento výraz:
    Navigate(Target, ScreenTransition.Fade, {Language:"Spanish"})

  5. Na obrazovke Cieľ pridajte označenie a jeho vlastnosť Text nastavte na tento výraz:
    If(Language="English", "Hello!", "Hola!")

  6. Na obrazovke Cieľ vyberte možnosť Tvary na karte Vložiť a potom vyberte tlačidlo Späť.

  7. Nastavte tlačidlo šípky späť OnSelect na tento vzorec:
    Navigate(Source, ScreenTransition.Fade)

  8. Na obrazovke Zdroj stlačte kláves F5 a potom kliknite na tlačidlo pre jeden z jazykov.

    Na obrazovke Cieľ sa zobrazí označenie v jazyku zodpovedajúcemu tlačidlu, ktoré ste vybrali.

  9. Výberom šípky Späť sa vráťte na obrazovku Zdroj a zvoľte tlačidlo pre druhý jazyk.

    Na obrazovke Cieľ sa zobrazí označenie v jazyku zodpovedajúcemu tlačidlu, ktoré ste vybrali.

  10. Stlačením klávesu Esc sa vráťte do predvoleného pracovného priestoru.

Podrobný príklad 2

  1. Otvorte aplikáciu na plátne, kde chcete použiť tento vzorec.
  2. Pridajte novú prázdnu obrazovku výberom možnosti Nová obrazovka z príkazového riadku.
  3. Pridajte tlačidlo a nastavte jeho vlastnosť OnSelect na tento vzorec:
    UpdateContext( { Name: "Lily", Score: 10 } )