Om variabler i PowerAppsUnderstand variables in PowerApps

Hvis du har brugt et andet programmeringsværktøj som f.eks. Visual Basic eller JavaScript, spørger du måske: Hvor er variablerne?If you've used another programming tool, such as Visual Basic or JavaScript, you may be asking: Where are the variables? PowerApps er lidt anderledes og kræver en anden fremgangsmåde.PowerApps is a little different and requires a different approach. I stedet for at række ud efter en variabel, skal du spørge dig selv: Hvad ville jeg gøre i Excel?Instead of reaching for a variable, ask yourself: What would I do in Excel?

I andre værktøjer kan du eksplicit have foretaget en beregning og gemt resultatet i en variabel.In other tools, you may have explicitly performed a calculation and stored the result in a variable. Men både PowerApps og Excel genberegner automatisk formler, når inputdataene ændres, så du har som regel ikke brug for at oprette og opdatere variabler.However, PowerApps and Excel both automatically recalculate formulas as the input data changes, so you usually don't need to create and update variables. Ved at bruge denne fremgangsmåde kan du, når det er muligt, nemmere oprette, forstå og vedligeholde din app.By taking this approach whenever possible, you can more easily create, understand, and maintain your app.

I nogle tilfælde skal du bruge variabler i PowerApps, som udvider Excels model ved at tilføje formler for funktionsmåde.In some cases, you'll need to use variables in PowerApps, which extends Excel's model by adding behavior formulas. Disse formler køres, f.eks. når en bruger vælger en knap.These formulas run when, for example, a user selects a button. I en formel for funktionsmåde er det ofte nyttigt at angive en variabel, der skal bruges i andre formler.Within a behavior formula, it's often helpful to set a variable to be used in other formulas.

Generelt skal du undgå at bruge variabler.In general, avoid using variables. Men nogle gange kan kun en variabel muliggøre den ønskede oplevelse.But sometimes only a variable can enable the experience you want.

Overfør Excel til PowerAppsTranslate Excel into PowerApps

ExcelExcel

Lad os gennemgå, hvordan Excel fungerer.Let's review how Excel works. En celle kan indeholde en værdi som et tal eller en streng eller en formel, der er baseret på værdierne af andre celler.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. Når brugeren indtaster en anden værdi i en celle, genberegner Excel automatisk formler, der afhænger af den nye værdi.After the user enters a different value into a cell, Excel automatically recalculates any formulas that depend on the new value. Du skal ikke programmere noget for at muliggøre denne adfærd.You don't have to do any programming to enable this behavior.

Excel har ikke variabler.Excel doesn't have variables. Værdien i en celle, der indeholder en formel, ændres på baggrund af inputtet, men der er ingen måde til at huske resultatet af en formel og gemme det i en celle eller andre steder.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. Hvis du ændrer værdien i en celle, kan hele regnearket ændre sig, og tidligere beregnede værdier går tabt.If you change a cell's value, the entire spreadsheet may change, and any previously calculated values are lost. En Excel-bruger kan kopiere og indsætte celler, men det er under brugerens manuelle kontrol og er ikke muligt med formler.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, som du opretter i PowerApps, opfører sig stort set som Excel.Apps that you create in PowerApps behave very much like Excel. Du kan tilføje kontrolelementer i stedet for at opdatere celler, hvor du vil på en skærm, og navngive dem til brug i formler.Instead of updating cells, you can add controls wherever you want on a screen and name them for use in formulas.

Du kan f.eks. gengive Excel-adfærd i en app ved at tilføje et kontrolelement af typen Label med navnet Textbox1 og to kontrolelementer af typen Text input med navnet TextInput1 og 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. Hvis du derefter angiver egenskaben Text for Textbox1 til TextInput1 + TextInput2, vil det altid vise summen af tal i TextInput1 og TextInput2 automatisk.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.

Bemærk, at kontrolelementet Textbox1 er markeret og viser sin formel Text på formellinjen øverst på skærmen.Notice that the TextBox1 control is selected, showing its Text formula in the formula bar at the top of the screen. Her finder vi formlen TextInput1 + TextInput2.Here we find the formula TextInput1 + TextInput2. Denne formel opretter en afhængighed mellem disse kontrolelementer, ligesom der oprettes afhængigheder mellem celler i en Excel-projektmappe.This formula creates a dependency between these controls, just as dependencies are created between cells in an Excel workbook. Lad os ændre værdien af TextInput1:Let's change the value of the TextInput1:

Formlen for Textbox1 er blevet automatisk genberegnet og viser den nye værdi.The formula for TextBox1 has been automatically recalculated, showing the new value.

I PowerApps kan du bruge formler til at bestemme ikke kun den primære værdi for et kontrolelement, men også egenskaber som f.eks. formatering.In PowerApps, you can use formulas to determine not only the primary value of a control but also properties such as formatting. I det næste eksempel viser en formel for egenskaben Color for etiketten automatisk negative værdier med rødt.In the next example, a formula for the Color property of the label will automatically show negative values in red. Funktionen If minder om den fra Excel:The If function should look very familiar from Excel:
If( Value(TextBox1.Text) < 0, Red, Black )If( Value(TextBox1.Text) < 0, Red, Black )

Hvis resultatet af vores beregning i TextBox1.Text nu er negativt, vises tallet med rødt:Now, if the result of our calculation in TextBox1.Text is negative, the number will be shown in red:

Du kan bruge formler til en lang række scenarier:You can use formulas for a wide variety of scenarios:

  • Du kan for eksempel bruge enhedens GPS, et kortkontrolelement kan vise din aktuelle placering med en formel, der bruger Location.Latitude og 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. Når du bevæger dig, registrerer kortet automatisk din placering.As you move, the map will automatically track your location.
  • Andre brugere kan opdatere datakilder.Other users can update data sources. For eksempel kan andre i teamet opdatere elementer på en SharePoint-liste.For example, others on your team might update items in a SharePoint list. Når du opdaterer en datakilde, genberegnes alle afhængige formler automatisk for at afspejle de opdaterede data.When you refresh a data source, any dependent formulas are automatically recalculated to reflect the updated data. For at udvide eksemplet kan du angive et galleris egenskab af typen Items til formlen Filter( SharePointList ), som automatisk viser det netop filtrerede sæt af poster.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.

FordeleBenefits

Der er mange fordele ved at bruge formler til at bygge apps:Using formulas to build apps has many advantages:

  • Hvis du kender Excel, kender du PowerApps.If you know Excel, you know PowerApps. Model- og formelsproget er det samme.The model and formula language are the same.
  • Hvis du har brugt andre programmeringsværktøjer, så tænk på, hvor meget kodning du skulle lave for at opnå disse eksempler.If you've used other programming tools, think about how much code would be required to accomplish these examples. I Visual Basic ville du skulle skrive en hændelseshandler for change-hændelsen på hvert kontrolelement af typen tekstinput.In Visual Basic, you'd need to write an event handler for the change event on each text-input control. Koden til at udføre beregningen i hver af disse er overflødig og kan komme ud af synkronisering, eller du skal skrive en fælles subrutine.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. I PowerApps opnår du alt dette med en enkelt formel på én linje.In PowerApps, you accomplished all of that with a single, one-line formula.
  • For at forstå hvor teksten i Textbox1 kommer fra, ved du præcis, hvor du skal kigge: formlen i egenskaben Text.To understand where TextBox1's text is coming from, you know exactly where to look: the formula in the Text property. Der er ingen anden måde til at påvirke teksten i dette kontrolelement.There's no other way to affect the text of this control. I et traditionelt programmeringsværktøj kunne en hændelseshandler eller en subrutine ændre værdien af etiketten fra et vilkårligt sted i programmet.In a traditional programming tool, any event handler or subroutine could change the value of the label, from anywhere in the program. Det kan gøre det svært at spore, hvornår og hvor en variabel blev ændret.This can make it hard to track down when and where a variable was changed.
  • Hvis brugeren ændrer et skyderobjekt, og derefter skifer mening, kan brugeren ændre skyderen tilbage til den oprindelige værdi.If the user changes a slider control and then changes their mind, they can change the slider back to its original value. Og det er, som om intet nogensinde blev ændret: Programmet viser de samme kontrolværdier, som det gjorde før.And it's as if nothing had ever changed: the app shows the same control values as it did before. Ligesom i Excel er der ingen konsekvenser ved eksperimentere og spørge "Hvad nu hvis".There are no ramifications for experimenting and asking "what if," just as there are none in Excel.

Generelt er det bedst, hvis du kan opnå en effekt ved hjælp af en formel.In general, if you can achieve an effect by using a formula, you'll be better off. Lad formelmaskinen i PowerApps arbejde for dig.Let the formula engine in PowerApps work for you.

Vær klar over, hvornår variabler skal brugesKnow when to use variables

Lad os ændre vores simple regnemaskine til at fungere som en gammeldags adderingsmaskine med en løbende total.Let's change our simple adder to act like an old-fashioned adding machine, with a running total. Hvis du vælger knappen Læg til, lægger du et tal til den løbende total.If you select an Add button, you'll add a number to the running total. Hvis du vælger knappen Ryd, nulstiller du den løbende total til nul.If you select a Clear button, you'll reset the running total to zero.

Vores regnemaskine bruger noget, der ikke findes i Excel: en knap.Our adding machine uses something that doesn't exist in Excel: a button. I denne app kan du ikke kun bruge formler til at beregne den løbende total, da dens værdi afhænger af en række handlinger, som brugeren udfører.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. Vores løbende total skal i stedet for registreres og opdateres manuelt.Instead, our running total must be recorded and updated manually. De fleste programmeringsværktøjer gemmer disse oplysninger i en variabel.Most programming tools store this information in a variable.

Du skal nogle gange bruge en variabel til at få din app til at fungere på den ønskede måde.You'll sometimes need a variable for your app to behave the way you want. Men der følger advarsler med fremgangsmåden:But the approach comes with caveats:

  • Du skal opdatere den løbende total manuelt.You must manually update the running total. Automatisk genberegning vil ikke gøre det for dig.Automatic recalculation won't do it for you.
  • Den løbende total kan ikke længere beregnes på baggrund af værdierne i andre kontrolelementer.The running total can no longer be calculated based on the values of other controls. Den afhænger af, hvordan mange gange brugeren valgte knappen Læg til, og hvilken værdi der var i kontrolelementet af typen tekstinput hver gang.It depends on how many times the user selected the Add button and what value was in the text-input control each time. Indtastede brugeren 77 og valgte Læg til to gange, eller angav brugeren 24 og 130 for hver af tilføjelserne?Did the user enter 77 and select Add twice, or did they specify 24 and 130 for each of the additions? Du kan ikke se forskel, når den samlede total er nået til 154.You can't tell the difference after the total has reached 154.
  • Ændringer i den samlede total kan stamme fra forskellige stier.Changes to the total can come from different paths. I dette eksempel kan både knappen Læg til og Ryd opdatere den samlede total.In this example, both the Add and Clear buttons can update the total. Hvis appen ikke fungerer som forventet, hvilken knap er så årsag til problemet?If the app doesn't behave the way you expect, which button is causing the problem?

Opret en global variabelCreate a global variable

For at bygge vores regnemaskine skal vi bruge en variabel til at holde den løbende total.To create our adding machine, we require a variable to hold the running total. De enkleste variabler at arbejde med i PowerApps er globale variabler.The simplest variables to work with in PowerApps are global variables.

Sådan fungerer globale variabler:How global variables work:

  • Du kan angive værdien for den globale variabel med funktionen Set.You set the value of the global variable with the Set function. Set ( MyVar, 1 ) angiver den globale variabel MyVar til en værdi på 1.Set( MyVar, 1 ) sets the global variable MyVar to a value of 1.
  • Du bruger den globale variabel ved at henvise til navnet brugt til funktionen Set.You use the global variable by referencing the name used with the Set function. I dette tilfælde returnerer MyVar 1.In this case, MyVar will return 1.
  • Globale variabler kan indeholde andre værdier, herunder strenge, tal, poster og tabeller.Global variables can hold any value, including strings, numbers, records, and tables.

Lad os bygge regnemaskinen igen ved hjælp af en global variabel:Let's rebuild our adding machine by using a global variable:

  1. Tilføj et kontrolelement af typen tekstinput med navnet TextInput1 og to knapper med navnet Button1 og Button2.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.
  2. Angiv egenskaben Text for Button1 til "Læg til", og angiv egenskaben Text for Button2 til "Ryd".Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".
  3. Opdater den løbende total, når en bruger vælger knappen Læg til ved at angive dens egenskab OnSelect til denne formel: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 )

    Første gang en bruger vælger knappen Læg til, og Set kaldes, oprettes RunningTotal med en standardværdien tom.The first time a user selects the Add button and Set is called, RunningTotal is created with a default value of blank. I adderingen behandles det som et nul.In the addition, it will be treated as a zero.

  4. Hvis du vil angive den løbende total til 0, når brugeren vælger knappen Ryd, skal du angive dens egenskab OnSelect til denne formel: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. Tilføj et kontrolelement af typen Label, og angiv dets egenskab Text til RunningTotal.Add a Label control, and set its Text property to RunningTotal.

    Denne formel genberegnes automatisk og viser brugeren værdien af RunningTotal, i takt med at den ændrer sig, baseret på de knapper, som brugeren vælger.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. Vis eksempel på appen, og så har vi vores regnemaskine som beskrevet ovenfor.Preview the app, and we have our adding machine as described above. Indtast et tal i tekstboksen, og tryk et par gange på knappen Læg til.Enter a number in the text box and press the Add button a few times. Når du er klar, kan du vende tilbage til skriveoplevelsen med tasten Esc.When ready, return to the authoring experience using the Esc key.

  7. Du kan se den globale variabels værdi ved at vælge menuen Filer og vælge Variabler i venstre rude.To see our global variable's value, select the File menu and select Variables in the left hand pane.

  8. Markér variablen for at se alle steder, hvor den er defineret og bruges.To see all the places where our variable is defined and used, select it.

Typer af variablerTypes of variables

Der findes tre typer variabler i PowerApps:There are three types of variables in PowerApps:

VariabeltypeVariables type RammerScope BeskrivelseDescription FunktionerFunctions
Globale variablerGlobal variables AppApp Nemmest at bruge.Simplest to use. Indeholder et tal, en tekststreng, boolesk, post, tabel, osv., som kan være referencer et vilkårligt sted i appen.Holds a number, text string, Boolean, record, table, etc. that can be references from anywhere in the app. SetSet
KontekstvariablerContext variables SkærmScreen God til at sende værdier til en skærm, ligesom parametre for en procedure på andre sprog.Great for passing values to a screen, much like parameters to a procedure in other languages. Kan kun benyttes fra én skærm.Can only be referenced from one screen. UpdateContextUpdateContext
NavigateNavigate
SamlingerCollections AppApp Indeholder en tabel, der kan være referencer fra et vilkårligt sted i appen.Holds a table that can be references from anywhere in the app. Tillader, at oplysningerne i tabellen kan ændres i stedet for at blive angivet som en helhed.Allows the contents of the table to be modified rather than being set as a whole. Kan gemmes på den lokale enhed til senere brug.Can be saved to the local device for later use. CollectCollect
ClearCollectClearCollect
PatchPatch
UpdateUpdate
RemoveRemove
SaveDataSaveData
LoadDataLoadData
osv.etc.

Alle variabler oprettes implicit, når de bruges i funktionerne Set, UpdateContext, Navigate eller Collect.All variables are created implicitly when used in Set, UpdateContext, Navigate, or Collect functions. Der findes ingen eksplicit erklæring af variabler, som findes i andre programmeringsværktøjer.There is no explicit declaration of variables as is done in other programming tools. Typerne af variabler er også implicit afledt af de værdier, der er placeret i dem.The types of the variables are also derived implicitly from the values that are placed in them.

Alle variabler gemmes i hukommelsen, mens programmet kører.All variables are held in memory while the app is running. Når appen lukkes, går værdierne, der gemmes i variablerne, tabt.After the app closes, the values held in the variables are lost. Du kan gemme indholdet i en variabel i en datakilde ved hjælp af funktionerne Patch eller Collect, eller i tilfælde af samlinger kan du gemme på den lokale enhed med funktionen 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. Når appen først er indlæst, har alle variabler værdien tom.When the app is first loaded, all variables will have the blank value.

Du bruger variablernes navne til at læse deres værdi.You use the variables name to read its value. For eksempel kan du blot bruge MyVar overalt, hvor en farveværdi bruges, når den er defineret med Set( MyColor, Red), og så bliver den erstattet af rød.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. Det er muligt at have en global variabel eller en samling med det samme navn som en kontekstvariabel.It is possible to have a global variable or collection with the same name as a context variable. I så fald har kontekstvariablen fortrinsret.In this case, the context variable will take precedence. Du kan stadig henvise til den globale variabel eller samling ved hjælp af operatoren til fjernelse af flertydige udtryk @[MyColor].You can still reference the global variable or collection using the disambiguation operator @[MyColor].

Opret en kontekstvariabelCreate a context variable

Lad os se på, hvordan vores regnemaskine ville være bygget ved hjælp af en kontekstvariabel i stedet for en global variabel.Let's look at how our adding machine would be created using a context variable instead of a global variable.

Sådan fungerer kontekstvariabler:How context variables work:

  • Du opretter og angiver kontekstvariabler ved hjælp af funktionen UpdateContext.You create and set context variables by using the UpdateContext function. Hvis en kontekstvariabel ikke allerede findes, når den først opdateres, oprettes den med standardværdien tom.If a context variable doesn't already exist when first updated, it will be created with a default value of blank.
  • Du kan oprette og opdatere kontekstvariabler med poster.You create and update context variables with records. I andre programmeringsværktøjer bruger du ofte "=" for tildelingen som i "x = 1".In other programming tools, you commonly use "=" for assignment, as in "x = 1". Brug i stedet {x: 1} for kontekstvariabler.For context variables, use { x: 1 } instead. Når du bruger en kontekstvariabel, skal du bruge navnet direkte.When you use a context variable, use its name directly.
  • Du kan også angive en kontekstvariabel, når der vises en skærm, ved hjælp af funktionen Navigate.You can also set a context variable when a screen is displayed, by using the Navigate function. Hvis du tænker på en skærm som en slags procedure eller subrutine, minder dette om parameteroverførsel i andre programmeringsværktøjer.If you think of a screen as a kind of procedure or subroutine, this is similar to parameter passing in other programming tools.
  • Med undtagelse af Navigate er kontekstvariabler begrænset til konteksten for en enkel skærm, hvilket er, hvor de får deres navn.Except for Navigate, context variables are limited to the context of a single screen, which is where they get their name. Du kan ikke bruge eller angive dem uden for denne kontekst.You can't use or set them outside of this context.
  • Kontekstvariabler kan indeholde andre værdier, herunder strenge, tal, poster og tabeller.Context variables can hold any value, including strings, numbers, records, and tables.

Lad os bygge regnemaskinen igen ved hjælp af en kontekstvariabel:Let's rebuild our adding machine by using a context variable:

  1. Tilføj et kontrolelement af typen tekstinput med navnet TextInput1 og to knapper med navnet Button1 og Button2.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.
  2. Angiv egenskaben Text for Button1 til "Læg til", og angiv egenskaben Text for Button2 til "Ryd".Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".
  3. Opdater den løbende total, når en bruger vælger knappen Læg til ved at angive dens egenskab OnSelect til denne formel: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 } )

    Første gang en bruger vælger knappen Læg til, og UpdateContext kaldes, oprettes RunningTotal med standardværdien tom.The first time a user selects the Add button and UpdateContext is called, RunningTotal is created with a default value of blank. I adderingen behandles det som et nul.In the addition, it will be treated as a zero.

  4. Hvis du vil angive den løbende total til 0, når brugeren vælger knappen Ryd, skal du angive dens egenskab OnSelect til denne formel: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 bruges igen sammen med formlen UpdateContext( { RunningTotal: 0 } ).Again, UpdateContext is used with the formula UpdateContext( { RunningTotal: 0 } ).

  5. Tilføj et kontrolelement af typen Label, og angiv dets egenskab Text til RunningTotal.Add a Label control, and set its Text property to RunningTotal.

    Denne formel genberegnes automatisk og viser brugeren værdien af RunningTotal, i takt med at den ændrer sig, baseret på de knapper, som brugeren vælger.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. Vis et eksempel på appen, og så har vi vores regnemaskine som beskrevet ovenfor.Preview the app and we have our adding machine as described above. Indtast et tal i tekstboksen, og tryk et par gange på knappen Læg til.Enter a number in the text box and press the Add button a few timnes. Når du er klar, kan du vende tilbage til skriveoplevelsen med tasten Esc.When ready, return to the authoring experience using the Esc key.

  7. Du kan angive værdien for en variabelkontekst under navigering til en skærm.You can set the value of a context variable while navigating to a screen. Dette er nyttigt for at overføre "kontekst" eller "parametre" fra én skærm til en anden.This is useful for passing "context" or "parameters" from one screen to another. Du kan se dette ved at indsætte en ny skærm og indsætte en knap med egenskaben OnSelect angivet til: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 } )

    Hvis du vælger denne knap i Screen2 (hvilket du kan gøre under redigering, hvis du vælger knappen mod enderne),vises Screen1 og kontekstvariablen RunningTotal angives til -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. Hvis du vil se kontekstvariablens værdi, skal du vælge menuen File og vælg Variables i venstre rude.To see our context variable's value, select the File menu and select Variables in the left hand pane.

  9. Hvis du vil se, hvor kontekstvariablen er defineret og anvendes, skal du vælge den.To see where your context variable is defined and used, select it.

Opret en samlingCreate a collection

Lad os til sidst se på at bygge regnemaskinen med en samling.Finally, let's look at creating our adding machine with a collection. Da en samling indeholder en tabel, der er let at ændre, får vi denne regnemaskine til at beholde en "papirstrimmel" for hver værdi, når de indtastes.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.

Sådan fungerer samlinger:How collections work:

  • Opret og angiv samlinger ved hjælp af funktionen ClearCollect.Create and set collections by using the ClearCollect function. Du kan bruge funktionen Collect i stedet, men det vil kræve en anden variabel i stedet for at erstatte den gamle.You can use the Collect function instead, but it will effectively require another variable instead of replacing the old one.
  • En samling er en slags datakilde og derfor en tabel.A collection is a kind of data source and, therefore, a table. Hvis du vil have adgang til en enkelt værdi i en samling, skal du bruge funktionen First og udtrække ét felt fra den oprettede post.To access a single value in a collection, use the First function, and extract one field from the resulting record. Hvis du har brugt en enkelt værdi med ClearCollect, vil dette være feltet Value som i dette eksempel:If you used a single value with ClearCollect, this will be the Value field, as in this example:
    First( VariableName ).ValueFirst( VariableName ).Value

Lad os bygge regnemaskinen igen ved hjælp af en samling:Let's recreate our adding machine by using a collection:

  1. Tilføj et kontrolelement af typen Text input med navnet TextInput1 og to knapper med navnet Button1 og Button2.Add a Text input control, named TextInput1, and two buttons, named Button1 and Button2.
  2. Angiv egenskaben Text for Button1 til "Læg til", og angiv egenskaben Text for Button2 til "Ryd".Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".
  3. Opdater den løbende total, når en bruger vælger knappen Læg til ved at angive dens egenskab OnSelect til denne formel: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 )

    Denne formel tilføjer den nye værdi i slutningen af samlingen.This formula will add the new value to the end of the collection. Da vi tilføjer en enkelt værdi, placerer Collect den automatisk i en tabel med en enkelt kolonne med kolonnenavnet Value, som vi skal bruge senere.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. Hvis du vil rydde papirstrimlen, når brugeren vælger knappen Ryd, skal du angive dens egenskab OnSelect til denne formular:To clear our paper tape when the user selects the Clear button, set its OnSelect property to this formula:

    Clear( PaperTape )Clear( PaperTape )

  5. Hvis du vil vise den løbende total, skal du tilføje en etiket og angive dens egenskab Text til denne formel:To display the running total, add a label, and set its Text property to this formula:

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

  6. Hvis du vil køre regnemaskinen, skal du trykke på F5 for at åbne Vis udskrift, indtaste tal i kontrolelementet til tekstinput og vælge knapper.To run the adding machine, press F5 to open Preview, enter numbers in the text-input control, and select buttons.

  7. Tryk på Esc for at vende tilbage til standardarbejdsområdet.To return to the default workspace, press the Esc key.
  8. Hvis du vil have vist papirstrimlen, skal du indsætte et kontrolelement af typen Data table og angive dens egenskab Items til denne formel:To display the paper tape, insert a Data table control, and set its Items property to this formula:

    PaperTapePaperTape

    Du skal også markere kolonnerne, der skal vises i ruden til højre. I vores tilfælde viser den kolonnen Value:You will also need to select the columns to show in the right hand pane, in our case show the Value column:

  9. Hvis du vil se værdierne i din samling, skal du vælge Samlinger fra menuen Filer.To see the values in your collection, select Collections on the File menu.

  10. Hvis du vil gemme og hente din samling, skal du tilføje to ekstra knapper og angive deres tekst til Indlæs og Gem.To store and retrieve your collection, add two additional button controls and set their text to Load and Save. For Indlæs skal du angive egenskaben OnSelect til:For Load, set the OnSelect property to:

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

    Vi skal rydde samlingen først, da LoadData føjer de gemte værdier til slutningen af samlingen.We need to clear the collection first as LoadData will append the stored values to the end of the collection.

  11. For Gem skal du angive egenskaben OnSelect til:For Save, set the OnSelect property to:

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

  12. Få vist eksempel igen ved at trykke på F5, indtast tal i kontrolelementet til tekstinput, og vælg knapper.Preview again by pressing the F5 key, enter numbers in the text-input control, and select buttons. Vælg knappen Gem.Select the Save button. Luk og genindlæs din app, og vælg knappen Indlæs for at genindlæse din samling.Close and reload your app, and select the Load button to reload your collection.

    Bemærk: SaveData og LoadData fungerer ikke, når du kører i en webbrowser. Du skal bruge studiet, der er installeret på Windows, eller en af afspillerne til mobilenheder.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.