Over variabelen in PowerAppsUnderstand variables in PowerApps

Als u andere programmeerprogramma's zoals Visual Basic of JavaScript hebt gebruikt, vraagt u zich misschien het volgende af: waar zijn de variabelen?If you've used another programming tool, such as Visual Basic or JavaScript, you may be asking: Where are the variables? PowerApps is iets anders, en er is ook een andere benadering voor nodig.PowerApps is a little different and requires a different approach. In plaats van dat u een variabele gebruikt, moet u zich afvragen: wat zou ik doen in Excel?Instead of reaching for a variable, ask yourself: What would I do in Excel?

In andere hulpprogramma's hebt u mogelijk expliciet een berekening uitgevoerd en het resultaat opgeslagen in een variabele.In other tools, you may have explicitly performed a calculation and stored the result in a variable. In PowerApps en Excel worden formules echter automatisch opnieuw berekend wanneer de invoergegevens worden gewijzigd, dus is het doorgaans niet nodig om variabelen te maken en bij te werken.However, PowerApps and Excel both automatically recalculate formulas as the input data changes, so you usually don't need to create and update variables. Als u deze benadering zo vaak mogelijk gebruikt, wordt het eenvoudiger om uw app te maken, begrijpen en onderhouden.By taking this approach whenever possible, you can more easily create, understand, and maintain your app.

In sommige gevallen moet u variabelen gebruiken in PowerApps. Hiermee wordt het Excel-model uitgebreid door gedragsformules toe te voegen.In some cases, you'll need to use variables in PowerApps, which extends Excel's model by adding behavior formulas. Deze formules worden uitgevoerd wanneer een gebruiker bijvoorbeeld een knop selecteert.These formulas run when, for example, a user selects a button. Binnen een gedragsformule is het vaak nuttig om een variabele in te stellen voor gebruik in andere formules.Within a behavior formula, it's often helpful to set a variable to be used in other formulas.

Over het algemeen is het beter om het gebruik van variabelen te vermijden.In general, avoid using variables. Toch is het gewenste resultaat soms alleen mogelijk met een variabele.But sometimes only a variable can enable the experience you want.

Excel vertalen naar PowerAppsTranslate Excel into PowerApps

ExcelExcel

Laten we bekijken hoe Excel werkt.Let's review how Excel works. Een cel kan een waarde bevatten, zoals een getal of een tekenreeks, of een formule die is gebaseerd op de waarden van andere cellen.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. Nadat de gebruiker een andere waarde in een cel heeft ingevoerd, worden eventuele formules die afhankelijk zijn van de nieuwe waarde opnieuw berekend.After the user enters a different value into a cell, Excel automatically recalculates any formulas that depend on the new value. Voor dit gedrag hoeft u niets te programmeren.You don't have to do any programming to enable this behavior.

Excel beschikt niet over variabelen.Excel doesn't have variables. De waarde van een cel met een formule wordt gewijzigd op basis van de invoer, maar er is geen manier om het resultaat van een formule te onthouden en op te slaan in een cel of ergens anders.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. Als u de waarde van een cel wijzigt, wordt mogelijk het hele werkblad gewijzigd en gaan eerder berekende waarden verloren.If you change a cell's value, the entire spreadsheet may change, and any previously calculated values are lost. Gebruikers van Excel kunnen cellen kopiëren en plakken, maar dit moet handmatig worden gedaan en is niet mogelijk met formules.An Excel user can copy and paste cells, but that's under the user's manual control and isn't possible with formulas.

PowerAppsPowerApps

Apps die u in PowerApps maakt, hebben een werking die lijkt op die van Excel.Apps that you create in PowerApps behave very much like Excel. In plaats van cellen bij te werken, kunt u waar u maar wilt op het scherm besturingselementen toevoegen en deze een naam geven om in formules te gebruiken.Instead of updating cells, you can add controls wherever you want on a screen and name them for use in formulas.

U kunt het Excel-gedrag bijvoorbeeld repliceren in een app door een besturingselement Label met de naam Tekstvak1 en twee besturingselementen Tekstinvoer met de namen Tekstinvoer1 en Tekstinvoer2 toe te voegen.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. Als u vervolgens de teksteigenschap van Tekstvak1 instelt op Tekstinvoer1 + Tekstinvoer2, wordt altijd automatisch de som van de getallen in Tekstinvoer1 en Tekstinvoer2 weergegeven.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.

Het besturingselement Tekstvak1 is geselecteerd met de tekstformule in de formulebalk bovenaan het scherm.Notice that the TextBox1 control is selected, showing its Text formula in the formula bar at the top of the screen. Hier zien we de formule Tekstinvoer1 + Tekstinvoer2.Here we find the formula TextInput1 + TextInput2. Deze formule maakt een afhankelijkheid tussen deze besturingselementen, net zoals er afhankelijkheden worden gemaakt tussen de cellen in een Excel-werkmap.This formula creates a dependency between these controls, just as dependencies are created between cells in an Excel workbook. Laten we de waarde van Tekstinvoer1 wijzigen:Let's change the value of the TextInput1:

De formule voor Tekstvak1 is automatisch herberekend. De nieuwe waarde wordt nu weergegeven.The formula for TextBox1 has been automatically recalculated, showing the new value.

U kunt in PowerApps formules niet alleen gebruiken om de primaire waarde van een besturingselement te bepalen, maar ook de eigenschappen, zoals de opmaak.In PowerApps, you can use formulas to determine not only the primary value of a control but also properties such as formatting. In het volgende voorbeeld worden met een formule voor de eigenschap Color van het label negatieve waarden automatisch rood weergegeven.In the next example, a formula for the Color property of the label will automatically show negative values in red. De Als-functie ziet er waarschijnlijk bekend uit van Excel:The If function should look very familiar from Excel:
Als( Waarde(Tekstvak1.Tekst) < 0, Rood, Zwart )If( Value(TextBox1.Text) < 0, Red, Black )

Als het resultaat van onze berekening in Tekstvak1.Tekst negatief is, wordt het getal rood weergegeven:Now, if the result of our calculation in TextBox1.Text is negative, the number will be shown in red:

U kunt formules gebruiken voor een groot aantal scenario's:You can use formulas for a wide variety of scenarios:

  • Door de GPS-functie van uw apparaat te gebruiken, kan een besturingselement voor kaarten en een formule die gebruikmaakt van Location.Latitude en Location.Longitude uw huidige locatie weergeven.By using your device's GPS, a map control can display your current location with a formula that uses Location.Latitude and Location.Longitude. Op de kaart wordt automatisch uw locatie bijgehouden terwijl u zich verplaatst.As you move, the map will automatically track your location.
  • Andere gebruikers kunnen gegevensbronnen bijwerken.Other users can update data sources. Anderen in uw team kunnen bijvoorbeeld items in een SharePoint-lijst bijwerken.For example, others on your team might update items in a SharePoint list. Wanneer u een gegevensbron vernieuwt, worden eventuele afhankelijke formules automatisch opnieuw berekend om de bijgewerkte gegevens weer te geven.When you refresh a data source, any dependent formulas are automatically recalculated to reflect the updated data. In het voorbeeld kunt u ook een itemeigenschap uit de galerie aan de formule Filter (SharePointList) toevoegen. Deze geeft automatisch de nieuwe gefilterde set records weer.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.

VoordelenBenefits

Het gebruik van formules om apps te bouwen biedt veel voordelen:Using formulas to build apps has many advantages:

  • Als u Excel kent, kent u PowerApps.If you know Excel, you know PowerApps. Het model en de formuletaal zijn hetzelfde.The model and formula language are the same.
  • Als u andere programmeerprogramma's hebt gebruikt, weet u misschien hoeveel code u voor deze voorbeelden nodig zou hebben.If you've used other programming tools, think about how much code would be required to accomplish these examples. In Visual Basic zou u een gebeurtenis-handler moeten schrijven voor de wijzigingsgebeurtenis op elk besturingselement voor tekstinvoer.In Visual Basic, you'd need to write an event handler for the change event on each text-input control. De code voor het uitvoeren van de berekeningen is overbodig en zou mogelijk niet meer gesynchroniseerd zijn, of u zou een algemene subroutine moeten schrijven.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. In PowerApps bereikt u dit met een enkele formule die uit één regel bestaan.In PowerApps, you accomplished all of that with a single, one-line formula.
  • Om te weten waar de tekst in Tekstvak1 vandaan komt, weet u precies wat u moet bekijken: de formule in de teksteigenschap.To understand where TextBox1's text is coming from, you know exactly where to look: the formula in the Text property. Er is geen andere manier om de tekst van dit besturingselement te beïnvloeden.There's no other way to affect the text of this control. In een traditioneel programmeerprogramma kan elke gebeurtenis-handler of subroutine de waarde van het label waar dan ook in het programma wijzigen.In a traditional programming tool, any event handler or subroutine could change the value of the label, from anywhere in the program. Hierdoor kan het lastiger worden om te bepalen waar en wanneer een variabele is gewijzigd.This can make it hard to track down when and where a variable was changed.
  • Als gebruikers een schuifregelaar aanpassen en vervolgens van gedachten veranderen, kunnen ze de schuifregelaar terugzetten naar de oorspronkelijke waarde.If the user changes a slider control and then changes their mind, they can change the slider back to its original value. Het is dan alsof er nooit iets is gebeurd: de app bevat dezelfde besturingselementwaarden als voorheen.And it's as if nothing had ever changed: the app shows the same control values as it did before. Het heeft geen gevolgen om te experimenteren en u af te vragen 'wat als', net als in Excel.There are no ramifications for experimenting and asking "what if," just as there are none in Excel.

Over het algemeen is het handiger om een effect te bewerkstelligen met behulp van een formule.In general, if you can achieve an effect by using a formula, you'll be better off. Laat de formule-engine in PowerApps het werk voor u doen.Let the formula engine in PowerApps work for you.

Weten wanneer u variabelen gebruiktKnow when to use variables

Laten we eens proberen hoe het werkt als we een eenvoudige optelsom willen om een voorlopig totaal te krijgen.Let's change our simple adder to act like an old-fashioned adding machine, with a running total. Als u een knop Toevoegen selecteert, voegt u een getal toe aan het voorlopige totaal.If you select an Add button, you'll add a number to the running total. Als u een knop Wissen selecteert, zet u het voorlopige totaal op nul.If you select a Clear button, you'll reset the running total to zero.

Voor onze optelsom wordt iets gebruikt dat niet bestaat in Excel: een knop.Our adding machine uses something that doesn't exist in Excel: a button. In deze app is het niet mogelijk om alleen formules te gebruiken om het voorlopige totaal te berekenen, omdat de waarde ervan afhankelijk is van een reeks acties die door de gebruiker wordt uitgevoerd.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. In plaats daarvan moet het voorlopige totaal worden geregistreerd en handmatig worden bijgewerkt.Instead, our running total must be recorded and updated manually. In de meeste programmeerprogramma's worden deze gegevens opslagen in een variabele.Most programming tools store this information in a variable.

Soms hebt u een variabele nodig om uw app naar wens te laten werken.You'll sometimes need a variable for your app to behave the way you want. Maar er geldt nog enig voorbehoud voor deze benadering:But the approach comes with caveats:

  • Het voorlopige totaal moet handmatig worden bijgewerkt.You must manually update the running total. Het wordt niet automatisch herberekend.Automatic recalculation won't do it for you.
  • Het voorlopige totaal kan niet meer worden berekend op basis van de waarden van andere besturingselementen.The running total can no longer be calculated based on the values of other controls. Dit is afhankelijk van hoe vaak de gebruiker de knop Toevoegen heeft geselecteerd en welke waarde er elke keer in het besturingselement voor tekstinvoer was ingevuld.It depends on how many times the user selected the Add button and what value was in the text-input control each time. Heeft de gebruiker 77 ingevoerd en twee keer Toevoegen geselecteerd of is er 24 en 130 opgegeven voor elke toevoeging?Did the user enter 77 and select Add twice, or did they specify 24 and 130 for each of the additions? Dat weet u niet als het totaal op 154 staat.You can't tell the difference after the total has reached 154.
  • Wijzigingen in het totaal kunnen op meerdere manieren tot stand zijn gekomen.Changes to the total can come from different paths. In dit voorbeeld wordt het totaal bijgewerkt aan de hand van de knop Toevoegen en de knop Wissen.In this example, both the Add and Clear buttons can update the total. Welke knop veroorzaakt het probleem als de app niet naar verwachting functioneert?If the app doesn't behave the way you expect, which button is causing the problem?

Een globale variabele makenCreate a global variable

Om onze optelsom te maken, hebben we een variabele nodig voor het voorlopige totaal.To create our adding machine, we require a variable to hold the running total. De eenvoudigste variabelen om mee te werken in PowerApps zijn globale variabelen.The simplest variables to work with in PowerApps are global variables.

De werking van globale variabelen:How global variables work:

  • U stelt de waarde van de globale variabele in met de functie Instellen.You set the value of the global variable with the Set function. Set( MijnVar, 1 ) stelt de globale variabele MijnVar in op de waarde 1.Set( MyVar, 1 ) sets the global variable MyVar to a value of 1.
  • U gebruikt de globale variabele door te verwijzen naar de naam die is gebruikt in de functie Set.You use the global variable by referencing the name used with the Set function. In dit geval retourneert MijnVar 1.In this case, MyVar will return 1.
  • Globale variabelen kunnen uit een willekeurige waarde bestaan, waaronder tekenreeksen, getallen, records en tabellen.Global variables can hold any value, including strings, numbers, records, and tables.

Laten we onze optelsom opnieuw bouwen met een globale variabele:Let's rebuild our adding machine by using a global variable:

  1. Voeg een tekstinvoerbesturingselement met de naam Tekstinvoer1 en twee knoppen met de naam Knop1 en Knop2 toe.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.
  2. Stel de teksteigenschap van Knop1 in op "Toevoegen" en stel de teksteigenschap van Knop2 in op "Wissen".Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".
  3. Als het voorlopige totaal moet worden bijgewerkt wanneer een gebruiker de knop Toevoegen selecteert, stelt u de eigenschap OnSelect in op deze formule: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 )

    De eerste keer dat de gebruiker de knop Optellen selecteert en Set wordt aangeroepen, wordt RunningTotal gemaakt met de standaardwaarde leeg.The first time a user selects the Add button and Set is called, RunningTotal is created with a default value of blank. Dit wordt beschouwd als een nul.In the addition, it will be treated as a zero.

  4. Om het voorlopige totaal in te stellen op 0 wanneer de gebruiker de knop Wissen selecteert, stelt u de eigenschap OnSelect in op deze formule: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. Voeg een besturingselement Label toe en stel de eigenschap Text ervan in op RunningTotal.Add a Label control, and set its Text property to RunningTotal.

    Deze formule wordt automatisch opnieuw berekend en de waarde van RunningTotal wordt weergegeven op basis van de knoppen die de gebruiker selecteert.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. Bekijk een voorbeeld van de app. U ziet de optelfunctie zoals hierboven is beschreven.Preview the app, and we have our adding machine as described above. Voer een getal in het tekstvak in en druk een paar keer op de knop Optellen.Enter a number in the text box and press the Add button a few times. Wanneer u klaar bent, kunt u terugkeren naar de ontwerpmogelijkheden met behulp van de Esc-toets.When ready, return to the authoring experience using the Esc key.

  7. Als u de waarde van de globale variabele wilt weergeven, selecteert u het menu Bestand en selecteert u in het linkerdeelvenster Variabelen.To see our global variable's value, select the File menu and select Variables in the left hand pane.

  8. Selecteer de variabele voor een overzicht van alle locaties waar deze wordt gedefinieerd en gebruikt.To see all the places where our variable is defined and used, select it.

Typen variabelenTypes of variables

Er zijn drie soorten variabelen in PowerApps:There are three types of variables in PowerApps:

Type variabelenVariables type ScopeScope BeschrijvingDescription FunctionsFunctions
Globale variabelenGlobal variables AppApp Zijn het eenvoudigst te gebruiken.Simplest to use. Bevatten een getal, tekststring, Boolean, record, tabel, enz. waarnaar kan worden verwezen vanuit een willekeurige plaats in de app.Holds a number, text string, Boolean, record, table, etc. that can be references from anywhere in the app. SetSet
ContextvariabelenContext variables SchermScreen Ideaal voor het doorgeven van waarden aan een scherm, zoals in andere talen parameters dat aan procedures doen.Great for passing values to a screen, much like parameters to a procedure in other languages. Er kan alleen naar worden verwezen vanuit één scherm.Can only be referenced from one screen. UpdateContextUpdateContext
NavigateNavigate
VerzamelingenCollections AppApp Bevatten een tabel waarnaar kan worden verwezen vanuit een willekeurige plaats in de app.Holds a table that can be references from anywhere in the app. Hiermee kan de inhoud van de tabel worden gewijzigd in plaats van deze als geheel in te stellen.Allows the contents of the table to be modified rather than being set as a whole. Kan worden opgeslagen op het lokale apparaat voor later gebruik.Can be saved to the local device for later use. CollectCollect
ClearCollectClearCollect
PatchPatch
UpdateUpdate
RemoveRemove
SaveDataSaveData
LoadDataLoadData
enz.etc.

Alle variabelen worden impliciet gemaakt bij gebruik in de functies Set, UpdateContext, Navigate of Collect.All variables are created implicitly when used in Set, UpdateContext, Navigate, or Collect functions. Er is geen expliciete declaratie van variabelen, zoals in andere programmeertalen.There is no explicit declaration of variables as is done in other programming tools. De typen van de variabelen worden ook impliciet afgeleid van de waarden die erin worden geplaatst.The types of the variables are also derived implicitly from the values that are placed in them.

Alle variabelen worden bewaard in het geheugen terwijl de app wordt uitgevoerd.All variables are held in memory while the app is running. Wanneer de app wordt gesloten, gaan de waarden die zich in de variabelen bevinden, verloren.After the app closes, the values held in the variables are lost. U kunt de inhoud van een variabele opslaan in een gegevensbron met de functies Patch of Collect of, in het geval van verzamelingen, kunt u op het lokale apparaat opslaan met de functie 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. Wanneer de app de eerste keer wordt geladen, hebben alle variabelen de waarde leeg.When the app is first loaded, all variables will have the blank value.

Met de naam van de variabele kunt u de waarde lezen.You use the variables name to read its value. Wanneer bijvoorbeeld eenmaal gedefinieerd met Set (MijnKleur, rood), kunt u gewoon MijnVar overal gebruiken waar een kleurwaarde kan worden gebruikt en wordt die vervangen door rood.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. Het is mogelijk om een globale variabele of een verzameling met dezelfde naam als een contextvariabele te hebben.It is possible to have a global variable or collection with the same name as a context variable. In dit geval heeft de contextvariabele voorrang.In this case, the context variable will take precedence. U kunt nog steeds verwijzen naar de globale variabele of een verzameling met behulp van de ondubbelzinnigheidsoperator @[MyColor].You can still reference the global variable or collection using the disambiguation operator @[MyColor].

Een contextvariabele makenCreate a context variable

Bekijk hoe onze optelsom zou worden gemaakt met een contextvariabele in plaats van een globale variabele.Let's look at how our adding machine would be created using a context variable instead of a global variable.

Hoe contextvariabelen werken:How context variables work:

  • Contextvariabelen kunt u maken en instellen met behulp van de functie UpdateContext.You create and set context variables by using the UpdateContext function. Als een contextvariabele nog niet bestaat tijdens de eerste update, wordt deze gemaakt met de standaardwaarde leeg.If a context variable doesn't already exist when first updated, it will be created with a default value of blank.
  • Contextvariabelen kunt u maken en instellen met records.You create and update context variables with records. In andere programmeerprogramma's gebruikt u doorgaans "=" voor toewijzingen, zoals in "x = 1".In other programming tools, you commonly use "=" for assignment, as in "x = 1". Voor contextvariabelen gebruikt u in plaats daarvan {x: 1}.For context variables, use { x: 1 } instead. Wanneer u een contextvariabele gebruikt, gebruikt u meteen de naam ervan.When you use a context variable, use its name directly.
  • U kunt een contextvariabele ook instellen wanneer er een scherm weergegeven, met behulp van de functie Navigate.You can also set a context variable when a screen is displayed, by using the Navigate function. Als u een scherm als een soort procedure of subroutine beschouwt, is dit vergelijkbaar met de parameter die wordt doorgegeven in andere programmeerprogramma's.If you think of a screen as a kind of procedure or subroutine, this is similar to parameter passing in other programming tools.
  • Behalve voor Navigate zijn contextvariabelen beperkt tot de context van een enkel scherm. Vandaar de naam.Except for Navigate, context variables are limited to the context of a single screen, which is where they get their name. Het is niet mogelijk om ze buiten deze context te gebruiken of in te stellen.You can't use or set them outside of this context.
  • Contextvariabelen kunnen uit een willekeurige waarde bestaan, waaronder tekenreeksen, getallen, records en tabellen.Context variables can hold any value, including strings, numbers, records, and tables.

Laten we onze optelsom opnieuw bouwen met een contextvariabele:Let's rebuild our adding machine by using a context variable:

  1. Voeg een tekstinvoerbesturingselement met de naam Tekstinvoer1 en twee knoppen met de naam Knop1 en Knop2 toe.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.
  2. Stel de teksteigenschap van Knop1 in op "Toevoegen" en stel de teksteigenschap van Knop2 in op "Wissen".Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".
  3. Als het voorlopige totaal moet worden bijgewerkt wanneer een gebruiker de knop Toevoegen selecteert, stelt u de eigenschap OnSelect in op deze formule: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 } )

    De eerste keer dat de gebruiker de knop Optellen selecteert en UpdateContext wordt aangeroepen, wordt RunningTotal gemaakt met de standaardwaarde leeg.The first time a user selects the Add button and UpdateContext is called, RunningTotal is created with a default value of blank. Dit wordt beschouwd als een nul.In the addition, it will be treated as a zero.

  4. Om het voorlopige totaal in te stellen op 0 wanneer de gebruiker de knop Wissen selecteert, stelt u de eigenschap OnSelect in op deze formule: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 } )

    UpdateContext wordt opnieuw gebruikt met de formule UpdateContext( { RunningTotal: 0 } ).Again, UpdateContext is used with the formula UpdateContext( { RunningTotal: 0 } ).

  5. Voeg een besturingselement Label toe en stel de eigenschap Text ervan in op RunningTotal.Add a Label control, and set its Text property to RunningTotal.

    Deze formule wordt automatisch opnieuw berekend en de waarde van RunningTotal wordt weergegeven op basis van de knoppen die de gebruiker selecteert.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. Bekijk een voorbeeld van de app. U ziet de optelfunctie zoals hierboven is beschreven.Preview the app and we have our adding machine as described above. Voer een getal in het tekstvak in en druk een paar keer op de knop Optellen.Enter a number in the text box and press the Add button a few timnes. Wanneer u klaar bent, kunt u terugkeren naar de ontwerpmogelijkheden met behulp van de Esc-toets.When ready, return to the authoring experience using the Esc key.

  7. U kunt de waarde van een contextvariabele instellen tijdens het navigeren naar een scherm.You can set the value of a context variable while navigating to a screen. Dit is handig voor het doorgeven van 'context' of 'parameters' van het ene scherm naar de andere.This is useful for passing "context" or "parameters" from one screen to another. Voeg een nieuw scherm in en voeg een knop in met de eigenschap OnSelect ingesteld op: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 } )

    Wanneer u deze knop selecteert op Screen2 (wat u kunt doen tijdens het ontwerpen als u de knop tegen het einde selecteert), wordt Screen1 weergegeven en ook de contextvariabele RunningTotal ingesteld op -1000.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. Als u de waarde van de contextvariabele wilt weergeven, selecteert u het menu Bestand en selecteert u in het linkerdeelvenster Variabelen.To see our context variable's value, select the File menu and select Variables in the left hand pane.

  9. Selecteer deze als u wilt zien waar uw contextvariabele is gedefinieerd en gebruikt.To see where your context variable is defined and used, select it.

Een verzameling makenCreate a collection

Ten slotte bekijken we het maken van onze optelsom met een verzameling.Finally, let's look at creating our adding machine with a collection. Omdat een verzameling een tabel bevat die gemakkelijk te wijzigen is, zorgen we dat deze optelsom een 'papieren strook' bijhoudt van elke waarde die wordt ingevoerd.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.

Hoe verzamelingen werken:How collections work:

  • Verzamelingen kunt u maken en instellen met behulp van de functie ClearCollect.Create and set collections by using the ClearCollect function. U kunt in plaats daarvan de functie Collect gebruiken, maar hiervoor is een andere variabele nodig; de oude kan niet worden vervangen.You can use the Collect function instead, but it will effectively require another variable instead of replacing the old one.
  • Een verzameling is een soort gegevensbron en daarom een tabel.A collection is a kind of data source and, therefore, a table. Voor toegang tot een enkele waarde in een verzameling gebruikt u de functie First en extraheert u één veld uit de resulterende record.To access a single value in a collection, use the First function, and extract one field from the resulting record. Als u één waarde hebt gebruikt met ClearCollect, wordt dit het veld Value, zoals in dit voorbeeld:If you used a single value with ClearCollect, this will be the Value field, as in this example:
    First( VariableName ).ValueFirst( VariableName ).Value

Laten we onze optelsom opnieuw maken met behulp van een verzameling:Let's recreate our adding machine by using a collection:

  1. Voeg een tekstinvoerbesturingselement met de naam Tekstinvoer1 en twee knoppen met de naam Knop1 en Knop2 toe.Add a Text input control, named TextInput1, and two buttons, named Button1 and Button2.
  2. Stel de teksteigenschap van Knop1 in op "Optellen" en stel de teksteigenschap van Knop2 in op "Wissen".Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".
  3. Als het voorlopige totaal moet worden bijgewerkt wanneer een gebruiker de knop Optellen selecteert, stelt u de eigenschap OnSelect in op deze formule: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 )

    Deze formule voegt de nieuwe waarde toe aan het einde van de verzameling.This formula will add the new value to the end of the collection. Omdat we een enkele waarde toevoegen, plaatst de functie Collect deze automatisch in een tabel met één kolom met de kolomnaam Value die we later gebruiken.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. Om de papieren strook te wissen wanneer de gebruiker de knop Wissen selecteert, stelt u de eigenschap OnSelect in op deze formule:To clear our paper tape when the user selects the Clear button, set its OnSelect property to this formula:

    Clear( PaperTape )Clear( PaperTape )

  5. Als u het voorlopige totaal wilt weergeven, voegt u een label toe en stelt u de eigenschap Text ervan in op deze formule:To display the running total, add a label, and set its Text property to this formula:

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

  6. Als u de optelsom wilt uitvoeren, drukt u op F5 om het voorbeeld te openen, voert u in het tekstinvoerbesturingselement getallen in en selecteert u knoppen.To run the adding machine, press F5 to open Preview, enter numbers in the text-input control, and select buttons.

  7. Druk op Esc om terug te gaan naar de standaardwerkruimte.To return to the default workspace, press the Esc key.
  8. Als u de papieren strook wilt weergeven, voegt u een besturingselement Gegevenstabel in en stelt u de eigenschap Items in op deze formule:To display the paper tape, insert a Data table control, and set its Items property to this formula:

    PaperTapePaperTape

    U moet ook de kolommen selecteren om weer te geven in het rechterdeelvenster, in ons geval wordt de kolom Value weergeven:You will also need to select the columns to show in the right hand pane, in our case show the Value column:

  9. Als u de waarden in uw verzameling wilt bekijken, selecteert u Verzamelingen in het menu Bestand.To see the values in your collection, select Collections on the File menu.

  10. Als u uw verzameling wilt opslaan en ophalen, voegt u twee extra knopbesturingselementen toe en stelt u hun tekst in op Laden en Opslaan.To store and retrieve your collection, add two additional button controls and set their text to Load and Save. Stel de eigenschap OnSelect voor Laden in op:For Load, set the OnSelect property to:

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

    We moeten de verzameling eest wissen, omdat LoadData de opgeslagen waarden toevoegt aan het einde van de verzameling.We need to clear the collection first as LoadData will append the stored values to the end of the collection.

  11. Stel de eigenschap OnSelect voor Opslaan in op:For Save, set the OnSelect property to:

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

  12. Bekijk het opnieuw door op de toets F5 te drukken, getallen in het tekstinvoerbesturingselement in te voeren en knoppen te selecteren.Preview again by pressing the F5 key, enter numbers in the text-input control, and select buttons. Selecteer de knop Opslaan.Select the Save button. Sluit uw app, start deze opnieuw en selecteer de knop Laden om uw verzameling opnieuw te laden.Close and reload your app, and select the Load button to reload your collection.

    Opmerking: SaveData en LoadData werken niet bij uitvoering in een webbrowser. U moet de studio die is geïnstalleerd in Windows gebruiken, of een van de spelers voor mobiele apparaten.Note: SaveData and LoadData do not function when running in a web browser, you must be using the studio installed on Windows or one of the players for mobile device.