Princípy premenných plátnovej aplikácie v službe PowerAppsUnderstand canvas-app variables in PowerApps

Ak ste používali iný programovací nástroj, ako napríklad Visual Basic alebo JavaScript, môžete si klásť otázku: Kde sú premenné?If you've used another programming tool, such as Visual Basic or JavaScript, you may be asking: Where are the variables? Služba PowerApps je trochu iná a vyžaduje odlišný prístup.PowerApps is a little different and requires a different approach. Namiesto hľadania premenných pri vytváraní plátnovej aplikácie si položte otázku: Ako by sa to robilo v Exceli?Instead of reaching for a variable when you build a canvas app, ask yourself: What would I do in Excel?

V iných nástrojoch ste pravdepodobne vykonali výpočet a uložili výsledok vo forme premennej.In other tools, you may have explicitly performed a calculation and stored the result in a variable. Služba PowerApps a Excel však pri zmene vstupných údajov automaticky prepočítavajú vzorce, takže väčšinou nie je nutné vytvárať a aktualizovať premenné.However, PowerApps and Excel both automatically recalculate formulas as the input data changes, so you usually don't need to create and update variables. Takýmto prístupom, kde je to možné, sa aplikácia vytvára, používa a udržiava oveľa jednoduchšie.By taking this approach whenever possible, you can more easily create, understand, and maintain your app.

V niektorých prípadoch, ktoré rozširujú model Excelu pridaním vzorcov správania, budete musieť v službe PowerApps použiť premenné.In some cases, you'll need to use variables in PowerApps, which extends Excel's model by adding behavior formulas. Tieto vzorce sa spustia, keď napríklad používateľ vyberie tlačidlo.These formulas run when, for example, a user selects a button. Vo vzorci správania je často vhodné nastaviť premennú, ktorá sa bude používať v iných vzorcoch.Within a behavior formula, it's often helpful to set a variable to be used in other formulas.

Vo všeobecnosti sa však používanie premenných neodporúča.In general, avoid using variables. Niekedy je však výsledok, ktorý chcete dosiahnuť, možný iba s pomocou premennej.But sometimes only a variable can enable the experience you want.

Zavedenie Excelu do služby PowerAppsTranslate Excel into PowerApps

ExcelExcel

Zopakujme si, ako funguje Excel.Let's review how Excel works. Bunka môže obsahovať hodnotu, ako napríklad číslo alebo reťazec či vzorec, ktorý je založený na hodnotách v iných bunkách.A cell can contain a value, such as a number or a string, or a formula that's based on the values of other cells. Keď používateľ zadá do bunky inú hodnotu, Excel automaticky prepočíta všetky vzorce, ktoré sú prepojené s novou hodnotou.After the user enters a different value into a cell, Excel automatically recalculates any formulas that depend on the new value. Na fungovanie tohto procesu nemusíte nič programovať.You don't have to do any programming to enable this behavior.

Excel neobsahuje premenné.Excel doesn't have variables. Hodnota bunky, ktorá obsahuje vzorec, sa mení na základe vstupov, ale zapamätať si výsledok vzorca a uložiť ho do inej bunky nie je možné.The value of a cell that contains a formula changes based on its input, but there's no way to remember the result of a formula and store it in a cell or anywhere else. Ak zmeníte hodnotu v bunke, môže sa zmeniť celý tabuľkový hárok a všetky predtým vypočítané hodnoty sa stratia.If you change a cell's value, the entire spreadsheet may change, and any previously calculated values are lost. Používatelia môžu v Exceli manuálne kopírovať a priliepať bunky, ale pomocou vzorcov to nie je možné uskutočniť.An Excel user can copy and paste cells, but that's under the user's manual control and isn't possible with formulas.

PowerAppsPowerApps

Aplikácie, ktoré vytvárate v službe PowerApps, sa správajú veľmi podobne ako Excel.Apps that you create in PowerApps behave very much like Excel. Namiesto aktualizovania buniek môžete kdekoľvek na obrazovku pridať ovládacie prvky a pomenovať ich, aby ich bolo možné použiť vo vzorcoch.Instead of updating cells, you can add controls wherever you want on a screen and name them for use in formulas.

Môžete napríklad replikovať správanie Excelu tak, že pridáte ovládací prvok Označenie s názvom TextBox1 a dva ovládacie prvky textového vstupu s názvom TextInput1 a TextInput2.For example, you can replicate the Excel behavior in an app by adding a Label control, named TextBox1, and two Text input controls, named TextInput1 and TextInput2. Ak potom nastavíte vlastnosť Text položky TextBox1 na hodnotu TextInput1 + TextInput2, súčet hodnôt TextInput1 a TextInput2 sa vždy zobrazí automaticky.If you then set the Text property of TextBox1 to TextInput1 + TextInput2, it will always shows the sum of whatever numbers are in TextInput1 and TextInput2 automatically.

Všimnite si, že je vybratý ovládací prvok TextBox1 a vo vzorcovom paneli v hornej časti obrazovky sa zobrazuje vzorec Text.Notice that the TextBox1 control is selected, showing its Text formula in the formula bar at the top of the screen. Tu sa nachádza vzorec TextInput1 + TextInput2.Here we find the formula TextInput1 + TextInput2. Vzorec vytvorí závislosť medzi týmito ovládacími prvkami, rovnako ako sa vytvárajú závislostí medzi bunkami v excelovom zošite.This formula creates a dependency between these controls, just as dependencies are created between cells in an Excel workbook. Teraz zmeníme hodnotu TextInput1:Let's change the value of the TextInput1:

Vzorec položky TextBox1 sa automaticky prepočíta a zobrazí novú hodnotu.The formula for TextBox1 has been automatically recalculated, showing the new value.

V službe PowerApps môžete používať vzorce na určenie nielen primárnej hodnoty ovládacieho prvku, ale aj vlastností ako formátovanie.In PowerApps, you can use formulas to determine not only the primary value of a control but also properties such as formatting. V nasledujúcom príklade vzorec vlastnosti Color (Farba) označenia automaticky zobrazí záporné hodnoty červenou farbou.In the next example, a formula for the Color property of the label will automatically show negative values in red. Funkcia If by mala vyzerať veľmi podobne ako v Exceli:The If function should look very familiar from Excel:
If( Value(TextBox1.Text) < 0, Red, Black )If( Value(TextBox1.Text) < 0, Red, Black )

Ak výsledok nášho výpočtu v položke TextBox1.Text je záporný, číslo sa zobrazí červenou farbou:Now, if the result of our calculation in TextBox1.Text is negative, the number will be shown in red:

Vzorce môžete použiť pre najrôznejšie scenáre:You can use formulas for a wide variety of scenarios:

  • Pomocou GPS vášho zariadenia môže ovládací prvok mapy zobraziť vašu aktuálnu polohu pomocou argumentov Location.Latitude a Location.Longitude.By using your device's GPS, a map control can display your current location with a formula that uses Location.Latitude and Location.Longitude. Pri pohybe bude mapa vašu polohu automaticky sledovať.As you move, the map will automatically track your location.
  • Ostatní používatelia môžu aktualizovať zdroje údajov.Other users can update data sources. Ostatní členovia tímu môžu napríklad aktualizovať položky v zozname služby SharePoint.For example, others on your team might update items in a SharePoint list. Keď obnovíte zdroj údajov, všetky závislé vzorce sú automaticky prepočítané tak, aby obsahovali aktualizované údaje.When you refresh a data source, any dependent formulas are automatically recalculated to reflect the updated data. Ďalej v našom príklade môžete nastaviť vlastnosť Items (Položky) galérie na vzorec Filter ( SharePointList ), ktorý automaticky zobrazí novofiltrovanú množinu záznamov.Furthering the example, you might set a gallery's Items property to the formula Filter( SharePointList ), which will automatically display the newly filtered set of records.

VýhodyBenefits

Používanie vzorcov pri tvorbe aplikácií má mnoho výhod:Using formulas to build apps has many advantages:

  • Ak viete používať Excel, viete používať službu PowerApps.If you know Excel, you know PowerApps. Model a programovací jazyk vzorcov sú rovnaké.The model and formula language are the same.
  • Ak ste používali iné programovacie nástroje, zamyslite sa, koľko kódu by bolo potrebné na dosiahnutie výsledkov v uvedených príkladoch.If you've used other programming tools, think about how much code would be required to accomplish these examples. V jazyku Visual Basic by ste museli pre každú udalosť zmeny v každom ovládacom prvku zadávania textu napísať obsluhu udalostí.In Visual Basic, you'd need to write an event handler for the change event on each text-input control. Kód na vykonanie požadovaného výpočtu v každej udalosti je nadbytočný, a ak by ste nenapísali spoločný podprogram, mohlo by dôjsť k výpadku synchronizácie.The code to perform the calculation in each of these is redundant and could get out of sync, or you'd need to write a common subroutine. V službe PowerApps všetky vyriešite jednoriadkovým vzorcom.In PowerApps, you accomplished all of that with a single, one-line formula.
  • Ak chcete zistiť, odkiaľ pochádza text v ovládacom prvku TextBox1, stačí sa pozrieť na vlastnosť Text vo vzorci.To understand where TextBox1's text is coming from, you know exactly where to look: the formula in the Text property. Neexistuje žiadny iný spôsob, ako ovplyvniť text tohto ovládacieho prvku.There's no other way to affect the text of this control. V tradičnom programovacom nástroji môže každá udalosť zmeny alebo podprogram zmeniť hodnotu označenia z ľubovolného miesta v programe.In a traditional programming tool, any event handler or subroutine could change the value of the label, from anywhere in the program. To môže sťažovať zisťovanie času a miesta zmeny premennej.This can make it hard to track down when and where a variable was changed.
  • Ak používateľ zmení ovládací prvok jazdca a potom zmení názor, môže zmeniť hodnotu jazdca na pôvodnú.If the user changes a slider control and then changes their mind, they can change the slider back to its original value. Bude to akoby sa nič nestalo. Aplikácia bude zobrazovať rovnaké hodnoty ovládacieho prvku ako predtým.And it's as if nothing had ever changed: the app shows the same control values as it did before. Cena za experimentovanie a kladenie otázok „Čo by sa stalo keby?“ je podobne ako v Exceli nulová.There are no ramifications for experimenting and asking "what if," just as there are none in Excel.

Vo všeobecnosti platí, že ak viete dosiahnuť svoj cieľ pomocou vzorca, je to lepšia cesta.In general, if you can achieve an effect by using a formula, you'll be better off. Zapojte mechanizmus vzorcov v službe PowerApps do práce pre vás.Let the formula engine in PowerApps work for you.

Situácie, kedy je vhodné použiť premennéKnow when to use variables

Zmeňme našu jednoduchú sčítačku, aby fungovala ako tradičný sčítací stroj s medzisúčtom.Let's change our simple adder to act like an old-fashioned adding machine, with a running total. Ak vyberiete tlačidlo Pridať pripočítate k medzisúčtu číslo.If you select an Add button, you'll add a number to the running total. Ak vyberiete tlačidlo Vymazať, vynulujete medzisúčet.If you select a Clear button, you'll reset the running total to zero.

V našom sčítacom stroji používame niečo, čo v Exceli neexistuje – tlačidlo.Our adding machine uses something that doesn't exist in Excel: a button. V tejto aplikácii nemôžete na výpočet medzisúčtu používať iba vzorce, pretože hodnota medzisúčtu závisí od série akcií vykonaných používateľom.In this app, you can't use only formulas to calculate the running total because its value depends on a series of actions that the user takes. Náš medzisúčet musí byť zaznamenávaný a aktualizovaný manuálne.Instead, our running total must be recorded and updated manually. Väčšina programovacích nástrojov uchováva túto informáciu v premennej.Most programming tools store this information in a variable.

Niekedy však bude potrebné, aby sa premenná v aplikácii správala tak, ako chcete.You'll sometimes need a variable for your app to behave the way you want. Pri tomto prístupe však treba vziať do úvahy niekoľko skutočností:But the approach comes with caveats:

  • Medzisúčet musíte aktualizovať manuálne.You must manually update the running total. Nie je možné aktualizovať automatickým prepočítavaním.Automatic recalculation won't do it for you.
  • Medzisúčet nie je naďalej možné počítať z hodnôt iných ovládacích prvkov.The running total can no longer be calculated based on the values of other controls. Bude záležať od toho, koľkokrát používateľ stlačil tlačidlo Pridať a aká hodnota sa nachádzala v ovládacom prvku zadávania textu pri každom stlačení.It depends on how many times the user selected the Add button and what value was in the text-input control each time. Vybral používateľ číslo 77 a dvakrát stlačil tlačidlo Pridať alebo pridal čísla 24 a 130?Did the user enter 77 and select Add twice, or did they specify 24 and 130 for each of the additions? Potom, ako sa vypočíta súčet 154, to už nie je možné určiť.You can't tell the difference after the total has reached 154.
  • Zmeny v súčte môžu pochádzať z rôznych ciest.Changes to the total can come from different paths. V tomto príklade je možné súčet aktualizovať tlačidlami Pridať a Vymazať.In this example, both the Add and Clear buttons can update the total. Ak sa aplikácia nespráva tak, ako ste očakávali, ktoré tlačidlo je príčinou problému?If the app doesn't behave the way you expect, which button is causing the problem?

Vytvorenie globálnej premennejCreate a global variable

Ak chcem vytvoriť sčítací stroj, je potrebné stanoviť premennú, ktorá bude obsahovať medzisúčet.To create our adding machine, we require a variable to hold the running total. Najjednoduchšie premenné v službe PowerApps sú globálne premenné.The simplest variables to work with in PowerApps are global variables.

Ako fungujú globálne premenné:How global variables work:

  • Hodnotu globálnej premennej nastavíte pomocou funkcie Set.You set the value of the global variable with the Set function. Vzorec Set( MyVar, 1 ) nastaví globálnu premennú MyVar na hodnotu 1.Set( MyVar, 1 ) sets the global variable MyVar to a value of 1.
  • Globálnu premennú použijete odkazom na názov, ktorý ste použili pri funkcii Set.You use the global variable by referencing the name used with the Set function. V tomto prípade premenná MyVar vráti hodnotu 1.In this case, MyVar will return 1.
  • Globálne premenné môžu obsahovať ľubovolnú hodnotu vrátane reťazcov, čísel, záznamov a tabuliek.Global variables can hold any value, including strings, numbers, records, and tables.

Zmeňme náš sčítací stroj pomocou globálnej premennej:Let's rebuild our adding machine by using a global variable:

  1. Pridajte ovládací prvok zadávania textu s názvom TextInput1 a dve tlačidlá, s názvom Button1 a Button2.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Nastavte vlastnosť Text tlačidla Button1 na hodnotu Add (Pridať) a vlastnosť Text tlačidla Button2 na hodnotu Clear (Vymazať).Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Ak chcete aktualizovať medzisúčet vždy, keď používateľ stlačí tlačidlo Add (Pridať), nastavte jeho vlastnosť OnSelect na tento vzorec:To update the running total whenever a user selects the Add button, set its OnSelect property to this formula:

    Set( RunningTotal, RunningTotal + Text1 )Set( RunningTotal, RunningTotal + Text1 )

    Keď používateľ prvýkrát stlačí tlačidlo Add (Pridať) a zavolá sa funkcia Set, vytvorí sa funkcia RunningTotal s prázdnou predvolenou hodnotou.The first time a user selects the Add button and Set is called, RunningTotal is created with a default value of blank. Pri sčítaní sa bude považovať za nulu.In the addition, it will be treated as a zero.

  4. Ak chcete nastaviť medzisúčet na hodnotu 0 vždy, keď používateľ stlačí tlačidlo Clear (Vymazať) nastavte vlastnosť OnSelect na tento vzorec:To set the running total to 0 whenever the user selects the Clear button, set its OnSelect property to this formula:

    Set( RunningTotal, 0 )Set( RunningTotal, 0 )

  5. Pridajte ovládací prvok Označenie a nastavte vlastnosť Text na hodnotu RunningTotal.Add a Label control, and set its Text property to RunningTotal.

    Vzorec sa automaticky prepočíta a zobrazí používateľovi meniacu sa hodnotu RunningTotal podľa toho, ktoré tlačidlá používateľ stlačí.This formula will automatically be recalculated and show the user the value of RunningTotal as it changes based on the buttons that the user selects.

  6. Zobrazte ukážku aplikácie, v ktorej sme podľa postupu popísaného vyššie, vytvorili sčítací stroj.Preview the app, and we have our adding machine as described above. Zadajte do textového poľa číslo a niekoľkokrát stlačte tlačidlo Pridať.Enter a number in the text box and press the Add button a few times. Keď budete hotoví, vráťte sa k tvorbe stlačením klávesu Esc.When ready, return to the authoring experience using the Esc key.

  7. Ak chcete zobraziť hodnotu globálnej premennej, vyberte ponuku Súbor a na ľavej table vyberte možnosť Premenné.To see our global variable's value, select the File menu and select Variables in the left hand pane.

  8. Ak chcete zobraziť všetky miesta, kde je premenná definovaná a použitá, vyberte ju.To see all the places where our variable is defined and used, select it.

Typy premennýchTypes of variables

V službe PowerApps existujú tri typy premenných:There are three types of variables in PowerApps:

Typ premennýchVariables type RozsahScope PopisDescription FunkcieFunctions
Globálne premennéGlobal variables AplikáciaApp Najjednoduchšie použitie.Simplest to use. Obsahuje číslo, textový reťazec, booleovskú hodnotu, záznam, tabuľku atď., ktoré môžu byť odkazované z ľubovolného miesta v aplikácii.Holds a number, text string, Boolean, record, table, etc. that can be references from anywhere in the app. SetSet
Kontextové premennéContext variables ObrazovkaScreen Skvelé riešenie pri prenose hodnôt, ako napríklad parametrov do procesu v iných jazykoch.Great for passing values to a screen, much like parameters to a procedure in other languages. Možno odkazovať len z jednej obrazovky.Can only be referenced from one screen. UpdateContextUpdateContext
KolekcieCollections AplikáciaApp Obsahuje tabuľku, na ktorú je možné odkazovať odkiaľkoľvek z aplikácie.Holds a table that can be references from anywhere in the app. Umožňuje upravovať v tabuľke obsah, ktorý nie je nutné nastavovať ako celok.Allows the contents of the table to be modified rather than being set as a whole. Je možné ju uložiť v lokálnom zariadení a použiť neskôr.Can be saved to the local device for later use. CollectCollect
atď.etc.

Všetky premenné sa vytvárajú implicitne pri použití v funkcií Set, UpdateContext, Navigate alebo Collect.All variables are created implicitly when used in Set, UpdateContext, Navigate, or Collect functions. Na rozdiel od iných programovacích nástrojov sa tu nepoužíva explicitné vyhlásenie premenných.There is no explicit declaration of variables as is done in other programming tools. Typy premenných sa implicitne odvodzujú z hodnôt, ktoré sú v nich uložené.The types of the variables are also derived implicitly from the values that are placed in them.

Počas spustenia aplikácie sú všetky premenné v pamäti.All variables are held in memory while the app is running. Po zatvorení aplikácie sa hodnoty v premenných stratia.After the app closes, the values held in the variables are lost. Obsah premennej môžete uložiť v zdroji údajov pomocou funkcií Patch alebo Collect, alebo v prípade kolekcií ho môžete uložiť do lokálneho zariadenia pomocou funkcie SaveData.You can store the contents of a variable in a Data Source using Patch or Collect functions, or in the case of collections you can store to the local device with the SaveData function. Pri prvom spustení aplikácie majú všetky premenné prázdnu hodnotu.When the app is first loaded, all variables will have the blank value.

Hodnotu premenných prečítate pomocou ich názvu.You use the variables name to read its value. Stačí napríklad raz definovať funkciu Set( MyColor, Red ) a kdekoľvek, kde je možné použiť farebnú hodnotu, stačí použiť názov MyVar a bude nahradená hodnotou Red (Červená).For example, once defined with Set( MyColor, Red ) you can simply use MyVar anywhere a color value can be used and it will be replaced with the Red. Je možné mať globálnu premennú alebo kolekciu s rovnakým názvom ako kontextovú premennú.It is possible to have a global variable or collection with the same name as a context variable. V tomto prípade má prednosť kontextová premenná.In this case, the context variable will take precedence. Stále je možné odkazovať na globálnu premennú alebo kolekciu pomocou operátora rozlišovania @[MyColor].You can still reference the global variable or collection using the disambiguation operator @[MyColor].

Vytvorenie kontextovej premennejCreate a context variable

Pozrime sa, ako by sme vytvorili sčítací stroj namiesto globálnej premennej pomocou kontextovej premennej.Let's look at how our adding machine would be created using a context variable instead of a global variable.

Ako fungujú kontextové premenné:How context variables work:

  • Kontextové premenné môžete vytvárať a nastavovať pomocou funkcie UpdateContext.You create and set context variables by using the UpdateContext function. Ak pri prvej aktualizácii neexistuje kontextová premenná, nová kontextová premenná sa vytvorí s prázdnou predvolenou hodnotou.If a context variable doesn't already exist when first updated, it will be created with a default value of blank.
  • Kontextové premenné vytvárate a aktualizujete pomocou záznamov.You create and update context variables with records. V iných programovacích nástrojoch na priradenie bežne používate výraz "=", ako napríklad tu: "x = 1".In other programming tools, you commonly use "=" for assignment, as in "x = 1". Pri kontextových ponukách použite výraz {x: 1}.For context variables, use { x: 1 } instead. Pri použití kontextovej premennej použite priamo jej názov.When you use a context variable, use its name directly.
  • Kontextovú premennú môžete nastaviť aj pri zobrazenej obrazovke pomocou funkcie Navigate.You can also set a context variable when a screen is displayed, by using the Navigate function. Ak vnímate obrazovku ako určitý druh postupu alebo podprogramu, podobá sa to na odovzdávanie parametrov v iných programovacích nástrojoch.If you think of a screen as a kind of procedure or subroutine, this is similar to parameter passing in other programming tools.
  • Okrem funkcie Navigate sú ostatné kontextové premenné obmedzené na kontext jednej obrazovky, podľa čoho sú pomenované.Except for Navigate, context variables are limited to the context of a single screen, which is where they get their name. Mimo tohto kontextu ich nie je možné použiť.You can't use or set them outside of this context.
  • Kontextové premenné môžu obsahovať ľubovolnú hodnotu vrátane reťazcov, čísel, záznamov a tabuliek.Context variables can hold any value, including strings, numbers, records, and tables.

Zmeňme náš sčítací stroj pomocou kontextovej premennej:Let's rebuild our adding machine by using a context variable:

  1. Pridajte ovládací prvok zadávania textu s názvom TextInput1 a dve tlačidlá, s názvom Button1 a Button2.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Nastavte vlastnosť Text tlačidla Button1 na hodnotu Add (Pridať) a vlastnosť Text tlačidla Button2 na hodnotu Clear (Vymazať).Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Ak chcete aktualizovať medzisúčet vždy, keď používateľ stlačí tlačidlo Add (Pridať), nastavte jeho vlastnosť OnSelect na tento vzorec:To update the running total whenever a user selects the Add button, set its OnSelect property to this formula:

    UpdateContext( { RunningTotal: RunningTotal + Text1 } )UpdateContext( { RunningTotal: RunningTotal + Text1 } )

    Keď používateľ prvýkrát stlačí tlačidlo Add a zavolá sa funkcia UpdateContext, vytvorí sa funkcia RunningTotal s prázdnou predvolenou hodnotou.The first time a user selects the Add button and UpdateContext is called, RunningTotal is created with a default value of blank. Pri sčítaní sa bude považovať za nulu.In the addition, it will be treated as a zero.

  4. Ak chcete nastaviť medzisúčet na hodnotu 0 vždy, keď používateľ stlačí tlačidlo Clear (Vymazať) nastavte vlastnosť OnSelect na tento vzorec:To set the running total to 0 whenever the user selects the Clear button, set its OnSelect property to this formula:

    UpdateContext( { RunningTotal: 0 } )UpdateContext( { RunningTotal: 0 } )

    Opäť sa použije funkcia UpdateContext so vzorcom UpdateContext( { RunningTotal: 0 } ).Again, UpdateContext is used with the formula UpdateContext( { RunningTotal: 0 } ).

  5. Pridajte ovládací prvok Označenie a nastavte vlastnosť Text na hodnotu RunningTotal.Add a Label control, and set its Text property to RunningTotal.

    Vzorec sa automaticky prepočíta a zobrazí používateľovi meniacu sa hodnotu RunningTotal podľa toho, ktoré tlačidlá používateľ stlačí.This formula will automatically be recalculated and show the user the value of RunningTotal as it changes based on the buttons that the user selects.

  6. Zobrazte ukážku aplikácie, v ktorej sme podľa postupu popísaného vyššie, vytvorili sčítací stroj.Preview the app and we have our adding machine as described above. Zadajte do textového poľa číslo a niekoľkokrát stlačte tlačidlo Add.Enter a number in the text box and press the Add button a few timnes. Keď budete hotoví, vráťte sa k tvorbe stlačením klávesu Esc.When ready, return to the authoring experience using the Esc key.

  7. Počas prechodu na obrazovku môžete nastaviť hodnotu kontextovej premennej.You can set the value of a context variable while navigating to a screen. Je to užitočné na odovzdávanie kontextov a parametrov z jednej obrazovky na druhú.This is useful for passing "context" or "parameters" from one screen to another. Ak to chcete zobraziť, vložte tlačidlo s vlastnosťou OnSelect, ktorá je nastavená na hodnotu:To see this, insert a new screen, and insert a button with the OnSelect property set to:

    Navigate( Screen1, None, { RunningTotal: -1000 } )Navigate( Screen1, None, { RunningTotal: -1000 } )

    Stlačením tohto tlačidla na obrazovke Screen2 (čo môžete urobiť počas vytvárania, ak tlačidlo stlačíte pri konci) sa zobrazí obrazovka Screen1 a kontextová premenná RunningTotal sa nastaví na hodnotu 1 000.Selecting this button on Screen2 (which you can do while authoring if you select the button toward the ends) will show Screen1 and also set the context variable RunningTotal to -1000.

  8. Ak chcete zobraziť hodnotu kontextovej premennej, vyberte ponuku Súbor a na ľavej table vyberte položku Premenné.To see our context variable's value, select the File menu and select Variables in the left hand pane.

  9. Ak chcete zistiť, kde sa kontextová premenná používa a definuje, vyberte ju.To see where your context variable is defined and used, select it.

Vytvorenie kolekcieCreate a collection

Nakoniec sa pozrime na vytváranie sčítacieho stroja pomocou kolekcie.Finally, let's look at creating our adding machine with a collection. Keďže kolekcia obsahuje tabuľku, ktorú je možné jednoducho upravovať, nastavíme sčítací stroj, aby uchovával „papierový záznam“ každej hodnoty, ktorú zadáme.Since a collection holds a table that is easy to modify, we will make this adding machine keep a "paper tape" of each value as they are entered.

Ako fungujú kolekcie:How collections work:

  • Kolekcie vytvorte a nastavte pomocou funkcie ClearCollect.Create and set collections by using the ClearCollect function. Namiesto toho môžete použiť funkciu Collect, ale namiesto nahradenia starej premennej bude potrebné vytvoriť ďalšiu premennú.You can use the Collect function instead, but it will effectively require another variable instead of replacing the old one.
  • Kolekcia je tabuľkou, pretože je to určitý druh zdroja údajov.A collection is a kind of data source and, therefore, a table. Ak chcete získať prístup k jednej hodnote v kolekcii, použite funkciu First a z výsledného záznamu extrahujte jedno pole.To access a single value in a collection, use the First function, and extract one field from the resulting record. Ak ste používali jednu hodnotu s funkciou ClearCollect, stane sa poľom Value, ako v tomto príklade:If you used a single value with ClearCollect, this will be the Value field, as in this example:
    First( VariableName ).ValueFirst( VariableName ).Value

Opätovne vytvorme sčítací stroj pomocou kolekcie:Let's recreate our adding machine by using a collection:

  1. Pridajte ovládací prvok zadávania textu s názvom TextInput1 a dve tlačidlá s názvom Button1 a Button2.Add a Text input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Nastavte vlastnosť Text tlačidla Button1 na hodnotu "Add" (Pridať) a vlastnosť Text tlačidla Button2 na hodnotu "Clear" (Vymazať).Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Ak chcete aktualizovať medzisúčet vždy, keď používateľ stlačí tlačidlo Add (Pridať), nastavte jeho vlastnosť OnSelect na tento vzorec:To update the running total whenever a user selects the Add button, set its OnSelect property to this formula:

    Collect( PaperTape, TextInput1.Text )Collect( PaperTape, TextInput1.Text )

    Tento vzorec pridá na koniec kolekcie novú hodnotu.This formula will add the new value to the end of the collection. Keďže pridávame jednu hodnotu, funkcia Collect ju automaticky umiestni do tabuľky s jedným stĺpcom a stĺpec nazve Value, čo použijeme neskôr.Since we are adding a single value, Collect will automatically place it in a single column table with the column name Value which we will use later.

  4. Ak chcete vymazať papierovú pásku po stlačení tlačidla Clear používateľom, nastavte vlastnosť OnSelect na tento vzorec:To clear our paper tape when the user selects the Clear button, set its OnSelect property to this formula:

    Clear( PaperTape )Clear( PaperTape )

  5. Ak chcete zobraziť medzisúčet, pridajte označenie a do jeho vlastnosti Text nastavte tento vzorec:To display the running total, add a label, and set its Text property to this formula:

    Sum( PaperTape, Value )Sum( PaperTape, Value )

  6. Ak chcete spustiť sčítací stroj, stlačte kláves F5 a otvorte ukážku. Potom zadajte čísla do ovládacieho prvku zadávania textu a stlačte tlačidlá.To run the adding machine, press F5 to open Preview, enter numbers in the text-input control, and select buttons.

  7. Ak sa chcete vrátiť do predvoleného pracovného priestoru, stlačte kláves Esc.To return to the default workspace, press the Esc key.

  8. Ak chcete zobraziť papierovú pásku, vložte ovládací prvok Tabuľka údajov a nastavte jej vlastnosť Items na tento vzorec:To display the paper tape, insert a Data table control, and set its Items property to this formula:

    PaperTapePaperTape

    Ak chcete, aby sa papierová páska zobrazila na pravej table, bude potrebné vybrať stĺpce. V našom prípade bude potrebné zobraziť stĺpec Value:You will also need to select the columns to show in the right hand pane, in our case show the Value column:

  9. Ak chcete zobraziť hodnoty v kolekcii, vyberte položku Kolekcie v ponuke Súbor.To see the values in your collection, select Collections on the File menu.

  10. Ak chcete ukladať a obnoviť kolekciu, pridajte dva ďalšie ovládacie prvky tlačidiel a ich text nastavte na Load (Načítať) a Save (Uložiť).To store and retrieve your collection, add two additional button controls and set their text to Load and Save. Pre tlačidlo Load (Načítať) nastavte hodnotu OnSelect na:For Load, set the OnSelect property to:

    Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )Clear( PaperTape ); LoadData( PaperTape, "StoredPaperTape", true )

    Najprv je potrebné vymazať kolekciu, pretože funkcia LoadData pripojí uložené hodnoty na koniec kolekcie.We need to clear the collection first as LoadData will append the stored values to the end of the collection.

  11. Pre tlačidlo Save (Uložiť) nastavte hodnotu OnSelect na:For Save, set the OnSelect property to:

    SaveData( PaperTape, "StoredPaperTape" )SaveData( PaperTape, "StoredPaperTape" )

  12. Zobrazte ukážku stlačením klávesu F5, zadajte čísla do ovládacieho prvku zadávania textu a stlačte tlačidlá.Preview again by pressing the F5 key, enter numbers in the text-input control, and select buttons. Stlačte tlačidlo Save (Uložiť).Select the Save button. Zavrite a znova načítajte aplikáciu a znova načítajte kolekciu stlačením tlačidla Load (Načítať).Close and reload your app, and select the Load button to reload your collection.

    Poznámka

    Funkcie SaveData a LoadData v aplikácii PowerApps Studio nefungujú, ale fungujú v aplikácii PowerApps Mobile.SaveData and LoadData don't function in PowerApps Studio, but they do in PowerApps Mobile.