Az UpdateContext függvény a Power Apps megoldásban

Ez a függvény az aktuális képernyő környezeti változóinak létrehozására, illetve frissítésére használható.

Áttekintés

Az UpdateContext függvénnyel környezeti változók hozhatók létre, amelyek különböző információkat képesek átmenetileg tárolni, például egy adatfeldolgozási művelet eredményeit, vagy azt, hogy a felhasználó hányszor kattintott egy adott gombra.

A környezeti változók hatóköre egyetlen képernyőre korlátozódik, vagyis nem írhatók olyan képletek, amelyek egy másik képernyő környezeti változóira hivatkoznak. A környezeti változók a más programozási eszközökben használt helyi változókhoz hasonlíthatók. Ha globális, az egész alkalmazásban elérhető változókat szeretne megadni, használja a Set függvényt.

Power Apps megoldások olyan képleteken alapulnak, amelyek automatikusan újból elvégzik a számításokat, amikor a felhasználó használja az alkalmazást. A környezeti változók kapcsán ez az előny nem érvényesül, ezért használatuk megnehezítheti az alkalmazás létrehozását és működésének megértését. A környezeti változók használata előtt olvassa el a változók használatáról szóló cikket.

Ismertetés

Környezeti változó létrehozásához vagy frissítéséhez adjon át egyetlen rekordot az UpdateContext függvénynek. Mindegyik rekordban adja meg annak az oszlopnak a nevét, amely meghatározza a változó nevét vagy egyezik azzal, valamint azt az értéket, amelyet a változónak adni szeretne.

  • Ha egy korábban már definiált változó nevét adja meg, az UpdateContext függvény az Ön által megadott értéket adja a változónak.
  • Ha olyan változónevet ad meg, amely még nem létezik, az UpdateContext függvény létrehoz azon a néven egy változót, és az Ön által megadott értéket adja neki.
  • Ha korábban már definiált egy változót, de nem adja meg az UpdateContext függvényben, az értéke változatlan marad.

Az UpdateContext, illetve a Navigate függvény implicit módon hoz létre környezeti változókat. Explicit deklarálásra nincs szükség. Ha eltávolítja az összes olyan UpdateContext- és Navigate-hivatkozást, amely egy adott környezeti változót nevesít, a környezeti változó megszűnik. Egy változó törléséhez tegye egyenlővé az értékét Blank függvény eredményével.

A szerzői környezet Fájl menüjéből elérhető Változók nézetben megtekintheti a változók értékét, definícióját és használatát.

A képletekben az oszlopuk nevével hivatkozhat a környezeti változókra. Az UpdateContext( { EmblémaMegjelenítése: true } ) függvény például létrehoz egy ShowLogo nevű környezeti változót, és true (igaz) értéket ad neki. A környezeti változó értékét képletekben az ShowLogo névre hivatkozva használhatja fel. Az ShowLogo változót egy kép típusú vezérlő Visible tulajdonságában használva szabályozhatja a kép megjelenítését, illetve elrejtését az alapján, hogy a változó értéke true (igaz) vagy false (hamis).

A témakör későbbi példái bemutatják, hogy a környezeti változók többfajta információt, például a következőket tárolhatják:

  • egy érték
  • egy rekord
  • egy tábla
  • egy objektumhivatkozás
  • egy képlet bármilyen eredménye

A környezeti változók az alkalmazás bezárásáig őrzik meg értéküket. Ha definiál egy környezeti változót, és valamelyik képernyőn megadja az értékét, ez az információ akkor is megőrződik, ha a felhasználó az alkalmazás egy másik képernyőjére vált. Az alkalmazás bezárásakor a környezeti változó értéke elveszik, és újból létre kell hozni az alkalmazás következő betöltésekor.

Minden környezeti változó hatóköre egy adott képernyőre terjed ki. Ha az egyik képernyőn definiált környezeti változót egy másik képernyőn szeretné módosítani, a Navigate függvény alapján kell képletet írnia. Másik megoldásként globális változót is létrehozhat.

Az UpdateContext függvény nem ad vissza értéket, és kizárólag műveleti képletben használható.

Szintaxis

UpdateContext( FrissítésiRekord )

  • FrissítésiRekord – Kötelező. Egy rekord, amely legalább egy oszlop nevét és értékét tartalmazza. Minden megadott oszlophoz és értékhez létrejön, illetve frissül a környezeti változó.

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

  • ContextVariable1 – Kötelező. A létrehozandó, illetve frissítendő környezeti változó neve.
  • Value1 – Kötelező. A környezeti változóhoz rendelendő érték.
  • ContextVariable2: Value2, ... – Nem kötelező. További létrehozandó, illetve frissítendő környezeti változók és azok értéke.

Példák

Képlet Ismertetés Eredmény
UpdateContext( { Számláló: 1 } ) A függvény létrehozza vagy módosítja a Számláló nevű környezeti változót, és az 1 értéket adja neki. A Counter az 1 értéket tartalmazza. A változó a Számláló névre hivatkozva használható fel képletekben.
UpdateContext( { Számláló: 2 } ) Az előző példában létrehozott Számláló környezeti változó értékét 2-re módosítja. A Counter a 2 értéket tartalmazza.
UpdateContext( { Név: "Tímea", Pontszám:10 } ) A függvény létrehozza vagy módosítja a Név és a Pontszám környezeti változót, és az előbbinek a Tímea, az utóbbinak pedig a 10 értéket adja. A Név változó a Tímea, a Pontszám változó pedig a 10 értéket kapja.
UpdateContext( { Person: { Name: "Mihály", Address: "1 Main St" } } ) A függvény létrehozza vagy módosítja a Személy nevű környezeti változót, és egy rekordot ad neki értékként. A rekord két oszlopot tartalmaz: Name és Address. A Name oszlop értéke Milton, az Address oszlop értéke pedig 1 Main St. A Person a { Name: "Milton", Address: "1 Main St" } } rekord értékét tartalmazza.

A rekord egészére a Person névvel, a rekord egyes oszlopaira pedig a Person.Name vagy a Person.Address névvel hivatkozhat.
UpdateContext( { Person: Patch( Person, {Address: "2 Main St" } ) } ) A függvény a Patch függvényt használva frissíti a Személy környezeti változót úgy, hogy a Cím oszlopnak a Fő út 2. értéket adja. A Person most már a { Name: "Milton", Address: "2 Main St" } } rekord értékét tartalmazza.

Részletes példa 1.

  1. Adja az alapértelmezett képernyőnek a Forrás nevet, majd vegyen fel még egy képernyőt, és adja neki a Cél nevet.

  2. A Forrás képernyőhöz adjon hozzá két gombot, és az egyik gomb Text tulajdonságának adja a Magyar, a másikénak pedig a Spanyol értéket.

  3. A Magyar feliratú gomb OnSelect tulajdonságának értékeként adja meg a következő kifejezést:
    Navigate(Cél, ScreenTransition.Fade, {Nyelv:"Magyar"})

  4. A Spanyol feliratú gomb OnSelect tulajdonságának értékeként adja meg a következő kifejezést:
    Navigate(Cél, ScreenTransition.Fade, {Nyelv:"Spanyol"})

  5. A Cél képernyőhöz adjon hozzá egy feliratot, és a Text tulajdonságának értékeként adja meg a következő kifejezést:
    If(Nyelv="Magyar", "Szia!", "Hola!")

  6. A Cél képernyőn válassza a Beszúrás lapon az Alakzatok, majd pedig a Vissza nyíl lehetőséget.

  7. A Vissza nyíl típusú alakzat OnSelect tulajdonságának értékeként adja meg a következő képletet:
    Navigate(Forrás, ScreenTransition.Fade)

  8. A Forrás képernyőn nyomja le az F5 billentyűt, majd kattintson valamelyik nyelv gombjára.

    A Cél képernyőn a felirat azon a nyelven fog megjelenni, amelyiknek a gombjára kattintott.

  9. A Vissza nyíl alakzatra kattintva térjen vissza a Forrás képernyőre, és kattintson a másik nyelv gombjára.

    A Cél képernyőn a felirat azon a nyelven fog megjelenni, amelyiknek a gombjára kattintott.

  10. Az Esc billentyű lenyomásával térhet vissza az alapértelmezett munkaterületre.

Részletes példa 2.

  1. Nyissa meg a vászonalapú alkalmazást, ahol használni szeretné ezt a képletet.
  2. Vegyen fel egy új üres képernyőt a parancssáv Új képernyő elemével.
  3. Adjon hozzá egy gombot, és a Kiválasztáskor tulajdonság értékeként adja meg ezt a képletet:
    UpdateContext( { Név: "Tímea", Pontszám:10 } )