Grundlegendes zu Variablen in PowerAppsUnderstand variables in PowerApps

Wenn Sie eine anderes Programmiertool verwenden, wie z.B. Visual Basic oder JavaScript, fragen Sie sich möglicherweise: Wo sind die Variablen?If you've used another programming tool, such as Visual Basic or JavaScript, you may be asking: Where are the variables? PowerApps ist etwas anders und erfordert einen anderen Ansatz.PowerApps is a little different and requires a different approach. Statt auf eine Variable zurückzugreifen, fragen Sie sich einfach: Wie würde ich in Excel verfahren?Instead of reaching for a variable, ask yourself: What would I do in Excel?

In anderen Tools haben Sie möglicherweise eine explizite Berechnung ausgeführt und das Ergebnis in einer Variablen gespeichert.In other tools, you may have explicitly performed a calculation and stored the result in a variable. Allerdings berechnen sowohl PowerApps als auch Excel automatisch Formeln neu, sobald die Eingabedaten geändert werden, sodass Sie üblicherweise keine Variablen erstellen oder aktualisieren müssen.However, PowerApps and Excel both automatically recalculate formulas as the input data changes, so you usually don't need to create and update variables. Wenn Sie diesen Ansatz wann immer möglich verwenden, können Sie Ihre App leichter erstellen, verstehen und warten.By taking this approach whenever possible, you can more easily create, understand, and maintain your app.

In einigen Fällen müssen Sie Variablen in PowerApps verwenden, wodurch das Modell von Excel um Verhaltensformeln erweitert wird.In some cases, you'll need to use variables in PowerApps, which extends Excel's model by adding behavior formulas. Diese Formeln werden z.B. ausgeführt, wenn ein Benutzer eine Schaltfläche auswählt.These formulas run when, for example, a user selects a button. Innerhalb einer Verhaltensformel ist es oft hilfreich, eine Variable festzulegen, die in anderen Formeln verwendet werden soll.Within a behavior formula, it's often helpful to set a variable to be used in other formulas.

Vermeiden Sie im allgemeinen das Verwenden von Variablen.In general, avoid using variables. Manchmal hat jedoch nur eine Variable die Auswirkungen, die Sie benötigen.But sometimes only a variable can enable the experience you want.

Excel in PowerApps übersetztTranslate Excel into PowerApps

ExcelExcel

Betrachten Sie die Funktionsweise von Excel.Let's review how Excel works. Eine Zelle kann einen Wert, z.B. eine Zahl oder eine Zeichenfolge, oder eine Formel enthalten, die auf den Werten der anderen Zellen basiert.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. Nachdem der Benutzer einen anderen Wert in eine Zelle eingibt, berechnet Excel automatisch alle Formeln, die von dem neuen Wert abhängig sind.After the user enters a different value into a cell, Excel automatically recalculates any formulas that depend on the new value. Zum Aktivieren dieses Verhaltens müssen Sie nichts programmieren.You don't have to do any programming to enable this behavior.

Excel verfügt nicht über Variablen.Excel doesn't have variables. Der Wert einer Zelle, die eine Formel enthält, ändert sich abhängig von seiner Eingabe; es gibt allerdings keine Möglichkeit, das Ergebnis einer Formel in einer Zelle oder an einer anderen Stelle zu speichern.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. Wenn Sie den Wert einer Zelle ändern, ändert sich möglicherweise das gesamte Arbeitsblatt, und alle zuvor berechneten Werte gehen verloren.If you change a cell's value, the entire spreadsheet may change, and any previously calculated values are lost. Ein Excel-Benutzer kann Zellen kopieren und einfügen, aber dies unterliegt der manuellen Eingabe des Benutzers und ist mit Formeln nicht möglich.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 Sie in PowerApps erstellen, verhalten sich ähnlich wie Excel.Apps that you create in PowerApps behave very much like Excel. Statt Zellen zu aktualisieren, können Sie Steuerelemente überall auf dem Bildschirm hinzufügen und sie für den Einsatz in Formeln benennen.Instead of updating cells, you can add controls wherever you want on a screen and name them for use in formulas.

Sie können z.B. das Verhalten von Excel in einer App replizieren, indem Sie ein Label-Steuerelement (Bezeichnung) mit dem Namen TextBox1, und zwei Texteingabe-Steuerelement mit den Namen TextInput1 und TextInput2 hinzufügen.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. Wenn Sie anschließend die Text-Eigenschaft von TextBox1 auf TextInput1 + TextInput2 festlegen, wird immer automatisch die Summe der Zahlen angezeigt, die sich in TextInput1 und TextInput2 befinden.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.

Beachten Sie, dass das TextBox1-Steuerelement ausgewählt ist, dessen Text-Formel in der Bearbeitungsleiste am oberen Rand des Bildschirms angezeigt wird.Notice that the TextBox1 control is selected, showing its Text formula in the formula bar at the top of the screen. Hier finden Sie die Formel TextInput1 + TextInput2.Here we find the formula TextInput1 + TextInput2. Diese Formel erstellt eine Abhängigkeit zwischen diesen Steuerelementen, genauso wie Abhängigkeiten zwischen den Zellen in einer Excel-Arbeitsmappe erstellt werden.This formula creates a dependency between these controls, just as dependencies are created between cells in an Excel workbook. Ändern Sie den Wert von TextInput1:Let's change the value of the TextInput1:

Die Formel für TextBox1 wurde automatisch neu berechnet; der neue Wert wird angezeigt.The formula for TextBox1 has been automatically recalculated, showing the new value.

In PowerApps können Sie Formeln nicht nur verwenden, um den primären Wert eines Steuerelements zu bestimmen, sondern auch, um Eigenschaften, wie z.B. das Format, zu bestimmen.In PowerApps, you can use formulas to determine not only the primary value of a control but also properties such as formatting. Im nächsten Beispiel zeigt eine Formel für die Color-Eigenschaft der Bezeichnung automatisch negative Werte rot an.In the next example, a formula for the Color property of the label will automatically show negative values in red. Die If-Funktion ist Ihnen wahrscheinlich aus Excel vertraut:The If function should look very familiar from Excel:
If( Value(TextBox1.Text) < 0, Red, Black )If( Value(TextBox1.Text) < 0, Red, Black )

Wenn das Ergebnis der Berechnung in TextBox1.Text negativ ist, wird die Zahl rot angezeigt:Now, if the result of our calculation in TextBox1.Text is negative, the number will be shown in red:

Sie können verschiedene Formeln für eine Vielfalt an Szenarios verwenden:You can use formulas for a wide variety of scenarios:

  • Indem Sie das GPS Ihres Geräts verwenden, kann ein Kartensteuerelement mit einer Formel, die Location.Latitude und Location.Longitude verwendet, Ihre aktuelle Standort anzeigen.By using your device's GPS, a map control can display your current location with a formula that uses Location.Latitude and Location.Longitude. Während Sie sich bewegen, verfolgt die Karte automatisch Ihren Standort.As you move, the map will automatically track your location.
  • Andere Benutzer können Datenquellen aktualisieren.Other users can update data sources. Andere Mitglieder Ihres Teams können z.B. die Elemente in einer SharePoint-Liste aktualisieren.For example, others on your team might update items in a SharePoint list. Wenn Sie eine Datenquelle aktualisieren, werden alle abhängigen Formeln automatisch neu berechnet, um die aktualisierten Daten widerzuspiegeln.When you refresh a data source, any dependent formulas are automatically recalculated to reflect the updated data. Wenn Sie das Beispiel fortführen, können Sie beispielsweise die Items-Eigenschaft eines Katalogs auf die Formel Filter (SharePointList) festlegen, sodass automatisch die neu gefilterte Menge von Datensätze angezeigt wird.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.

VorteileBenefits

Das Erstellen von Apps mithilfe von Formeln hat viele Vorteile:Using formulas to build apps has many advantages:

  • Wenn Sie Excel kennen, kennen Sie PowerApps.If you know Excel, you know PowerApps. Das Modell und die Formelsprache sind identisch.The model and formula language are the same.
  • Wenn Sie schon mal andere Programmiertools verwendet haben, können Sie sich vorstellen, wie viel Code erforderlich wäre, um diese Beispiele zu realisieren.If you've used other programming tools, think about how much code would be required to accomplish these examples. In Visual Basic müssten Sie einen Ereignishandler für das Änderungsereignis für jedes Texteingabe-Steuerelement erstellen.In Visual Basic, you'd need to write an event handler for the change event on each text-input control. Der Code, der jede dieser Berechnung ausführen soll, ist redundant und könnte möglicherweise nicht mehr synchron abgerufen werden, oder Sie müssten eine gängige Unterroutine schreiben.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 erreichen Sie das alles mit einer einzigen, einzeiligen Formel.In PowerApps, you accomplished all of that with a single, one-line formula.
  • Sie wissen genau, wo Sie suchen müssen, um zu erfahren, woher der Text in TextBox1 stammt: die Formel in der Text-Eigenschaft.To understand where TextBox1's text is coming from, you know exactly where to look: the formula in the Text property. Es gibt keine andere Möglichkeit, den Text dieses Steuerelements zu beeinflussen.There's no other way to affect the text of this control. In einem herkömmlichen Programmiertool könnte jeder Ereignishandler und jede Unterroutine überall im Programm den Wert des Bezeichners ändern.In a traditional programming tool, any event handler or subroutine could change the value of the label, from anywhere in the program. Dadurch kann es schwieriger sein, einzugrenzen, wann und wo eine Variable geändert wurde.This can make it hard to track down when and where a variable was changed.
  • Wenn der Benutzer ein Schieberegler-Steuerelement ändert und es sich dann noch mal anders überlegt, kann er den Schieberegler wieder auf den ursprünglichen Wert zurücksetzen.If the user changes a slider control and then changes their mind, they can change the slider back to its original value. Und es ist, als ob nichts geändert worden wäre: Die Anwendung zeigt die gleichen Steuerelementwerte wie vorher an.And it's as if nothing had ever changed: the app shows the same control values as it did before. Das Experimentieren und Fragen nach „Was wäre wenn“ hat keine Folgen, genauso wenig wie in Excel.There are no ramifications for experimenting and asking "what if," just as there are none in Excel.

Im Allgemeinen sind Sie bessergestellt, wenn Sie durch das Verwenden einer Formel einen Effekt erzielen können.In general, if you can achieve an effect by using a formula, you'll be better off. Lassen Sie das Formelmodul in PowerApps für Sie arbeiten.Let the formula engine in PowerApps work for you.

Wann es sinnvoll ist, Variablen zu verwendenKnow when to use variables

Passen Sie Ihren einfachen Addierer an, sodass er sich wie eine traditionelle Rechenmaschine mit einer laufenden Summe verhält.Let's change our simple adder to act like an old-fashioned adding machine, with a running total. Wenn Sie eine Add-Schaltfläche (Hinzufügen) auswählen, fügen Sie eine Zahl zur laufenden Summe hinzu.If you select an Add button, you'll add a number to the running total. Wenn Sie eine Clear-Schaltfläche (Löschen) auswählen, setzen Sie die laufende Summe auf 0 (null) zurück.If you select a Clear button, you'll reset the running total to zero.

Ihre Rechenmaschine verwendet etwas, das es in Excel so nicht gibt: eine Schaltfläche.Our adding machine uses something that doesn't exist in Excel: a button. Sie können in dieser App die laufende Summe nicht mit Formeln allein berechnen, da ihr Wert von einer Reihe von Aktionen des Benutzers abhängt.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. Stattdessen muss die laufende Summe aufgezeichnet und manuell aktualisiert werden.Instead, our running total must be recorded and updated manually. Die meisten Programmiertools speichern diese Informationen in einer Variablen.Most programming tools store this information in a variable.

Manchmal benötigen Sie für Ihre App eine Variable, um das zu erreichen, was Sie möchten.You'll sometimes need a variable for your app to behave the way you want. Doch dieser Ansatz hat auch Nachteile:But the approach comes with caveats:

  • Sie müssen die laufende Summe manuell aktualisieren.You must manually update the running total. Die automatische Berechnung erfüllt nicht Ihre Ansprüche.Automatic recalculation won't do it for you.
  • Die laufende Summe kann nicht mehr basierend auf den Werten anderer Steuerelemente berechnet werden.The running total can no longer be calculated based on the values of other controls. Dies hängt davon ab, wie oft der Benutzer die Schaltfläche Add (Hinzufügen) ausgewählt hat und welcher Wert sich jeweils in dem Texteingabe-Steuerelement befunden hat.It depends on how many times the user selected the Add button and what value was in the text-input control each time. Hat der Benutzer 77 eingegeben und Hinzufügen zweimal ausgewählt, oder hat er jeweils 24 und 130 für jede der Hinzufügungen angegeben?Did the user enter 77 and select Add twice, or did they specify 24 and 130 for each of the additions? Nachdem die Summe 154 beträgt, können Sie den Unterschied nicht mehr feststellen.You can't tell the difference after the total has reached 154.
  • Änderungen der Gesamtsumme können aus verschiedenen Pfaden stammen.Changes to the total can come from different paths. In diesem Beispiel kann sowohl die Add- als auch die Clear-Schaltflächen die Gesamtsumme aktualisieren.In this example, both the Add and Clear buttons can update the total. Wenn die App sich nicht wie erwartet verhält, ist welche Schaltfläche für das Problem verantwortlich?If the app doesn't behave the way you expect, which button is causing the problem?

Erstellen einer globalen VariablenCreate a global variable

Sie benötigen eine Variable, die die laufende Summe enthält, um unseren hinzufügenden Computer zu erstellen.To create our adding machine, we require a variable to hold the running total. Die einfachsten Variablen, mit denen Sie in PowerApps arbeiten können, sind globale Variablen.The simplest variables to work with in PowerApps are global variables.

Funktionsweise von globalen Variablen:How global variables work:

  • Sie legen den Wert der globalen Variablen mit der Set-Funktion fest.You set the value of the global variable with the Set function. Durch Set( MyVar, 1 ) wird die globale Variable MyVar auf den Wert 1 festgelegt.Set( MyVar, 1 ) sets the global variable MyVar to a value of 1.
  • Sie verwenden die globale Variable, indem Sie mit der Set-Funktion auf den verwendeten Namen verweisen.You use the global variable by referencing the name used with the Set function. In diesem Fall gibt MyVar den Wert 1 zurück.In this case, MyVar will return 1.
  • Globale Variablen können beliebige Werte enthalten, z.B. Zeichenfolgen, Zahlen, Datensätze und Tabellen.Global variables can hold any value, including strings, numbers, records, and tables.

Erstellen Sie Ihre Rechenmaschine mithilfe einer globalen Variablen neu:Let's rebuild our adding machine by using a global variable:

  1. Fügen Sie ein Texteingabe-Steuerelement mit dem Namen TextInput1 hinzu, und zwei Schaltflächen mit dem Namen Button1 und Button2.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Legen Sie die Text-Eigenschaft von Button1 auf "Add" fest, und legen Sie die Text-Eigenschaft von Button2 auf "Clear" fest.Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Legen Sie die OnSelect-Eigenschaft einer Add-Schaltfläche auf folgende Formel fest, um die laufende Summe zu aktualisieren, wenn ein Benutzer die Schaltfläche auswählt: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 )

    Wenn ein Benutzer erstmals die Add-Schaltfläche auswählt, und Set aufgerufen wird, wird RunningTotal mit einem Standardwert von blank (leer) erstellt.The first time a user selects the Add button and Set is called, RunningTotal is created with a default value of blank. Beim Hinzufügen wird es als eine 0 (null) behandelt.In the addition, it will be treated as a zero.

  4. Legen Sie die OnSelect-Eigenschaft der Clear-Schaltfläche auf folgende Formel fest, um die laufende Summe auf 0 festzulegen: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. Fügen Sie ein Label-Steuerelement (Bezeichnung) hinzu, und legen Sie dessen Text-Eigenschaft auf RunningTotal fest.Add a Label control, and set its Text property to RunningTotal.

    Diese Formel wird automatisch neu berechnet und zeigt dem Benutzer den Wert von RunningTotal an, während sie sich auf Grundlage der vom Benutzer ausgewählten Schaltflächen ändert.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. Sehen sie sich eine Vorschau der App an, und Sie sehen die Rechenmaschine, wie sie oben beschrieben wurde.Preview the app, and we have our adding machine as described above. Geben Sie eine Zahl im Textfeld ein, und drücken Sie mehrmals die Schaltfläche Add.Enter a number in the text box and press the Add button a few times. Kehren Sie anschließend zur Erstellung zurück, indem Sie die ESC-TASTE drücken.When ready, return to the authoring experience using the Esc key.

  7. Um den Wert der globalen Variablen anzuzeigen, wählen Sie das Menü Datei aus, und wählen Sie im linken Bereich Variablen aus.To see our global variable's value, select the File menu and select Variables in the left hand pane.

  8. Wählen Sie die Variable aus, um alle Stellen zu ermitteln, an denen sie definiert ist.To see all the places where our variable is defined and used, select it.

Typen von VariablenTypes of variables

In PowerApps gibt es drei Typen von Variablen:There are three types of variables in PowerApps:

VariablentypVariables type UmfangScope BeschreibungDescription FunctionsFunctions
Globale VariablenGlobal variables AppApp Sind am einfachsten zu verwenden.Simplest to use. Enthalten eine Zahl, eine Textzeichenfolge, einen booleschen Wert, einen Datensatz, eine Tabelle usw., auf die an einer beliebigen Stelle in der App verwiesen werden kann.Holds a number, text string, Boolean, record, table, etc. that can be references from anywhere in the app. SetSet
KontextvariablenContext variables BildschirmScreen Ideal für die Übergabe von Werten an einen Bildschirm (ähnelt der Übergabe eines Parameters an eine Prozedur in anderen Sprachen).Great for passing values to a screen, much like parameters to a procedure in other languages. Der Verweis ist nur aus einem Bildschirm möglich.Can only be referenced from one screen. UpdateContextUpdateContext
NavigateNavigate
SammlungenCollections AppApp Enthalten eine Tabelle, die Verweise von beliebigen Stellen in der App darstellen kann.Holds a table that can be references from anywhere in the app. Ermöglichen es, dass der Inhalt der Tabelle geändert wird, und wird nicht in seiner Gesamtheit festgelegt.Allows the contents of the table to be modified rather than being set as a whole. Können für die spätere Verwendung auf dem lokalen Gerät gespeichert werden.Can be saved to the local device for later use. CollectCollect
ClearCollectClearCollect
PatchPatch
UpdateUpdate
RemoveRemove
SaveDataSaveData
LoadDataLoadData
usw.etc.

Alle Variablen werden implizit erstellt, wenn sie in den Funktionen Set, UpdateContext, Navigate und Collect verwendet werden.All variables are created implicitly when used in Set, UpdateContext, Navigate, or Collect functions. Es gibt keine explizite Deklaration von Variablen wie in anderen Programmiertools.There is no explicit declaration of variables as is done in other programming tools. Die Typen der Variablen werden ebenfalls von den darin platzierten Werten implizit abgeleitet.The types of the variables are also derived implicitly from the values that are placed in them.

Alle Variablen werden während der Ausführung der App im Speicher aufbewahrt.All variables are held in memory while the app is running. Beim Schließen der App gehen die in den Variablen enthaltenen Werte verloren.After the app closes, the values held in the variables are lost. Sie können den Inhalt einer Variablen mit der Patch-Funktion oder der Collect-Funktion in einer Datenquelle speichern. Bei Sammlungen können Sie ihn mit der SaveData-Funktion auf dem lokalen Gerät speichern.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. Beim erstmaligen Laden der App weisen alle Variablen den Wert blank (leer) auf.When the app is first loaded, all variables will have the blank value.

Der Wert einer Variablen wird über den Variablennamen abgerufen.You use the variables name to read its value. Nach der Definition als Set( MyColor, Red ) können Sie MyVar überall dort verwenden, wo ein Farbwert verwendet werden kann, und dieser wird durch den Wert Red ersetzt.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. Eine globale Variable oder Sammlung kann denselben Namen wie eine Kontextvariable besitzen.It is possible to have a global variable or collection with the same name as a context variable. In einem solchen Fall hat die Kontextvariable Vorrang.In this case, the context variable will take precedence. Sie haben immer noch die Möglichkeit, mit dem Operator zur Mehrdeutigkeitsvermeidung @[MyColor] auf die globale Variable oder Sammlung zu verweisen.You can still reference the global variable or collection using the disambiguation operator @[MyColor].

Erstellen Sie eine KontextvariableCreate a context variable

Im Folgenden wird erläutert, wie die Rechenmaschine mit einer Kontextvariablen und nicht mit einer globalen Variablen erstellt wird.Let's look at how our adding machine would be created using a context variable instead of a global variable.

Funktionsweise von Kontextvariablen:How context variables work:

  • Erstellen und Festlegen der Kontextvariablen mithilfe der UpdateContext-Funktion.You create and set context variables by using the UpdateContext function. Wenn eine Kontextvariable noch nicht vorhanden ist, wenn sie zum ersten Mal aktualisiert wird, wird sie mit dem Standardwert blank erstellt.If a context variable doesn't already exist when first updated, it will be created with a default value of blank.
  • Sie erstellen und aktualisieren Kontextvariablen mit Datensätzen.You create and update context variables with records. In anderen Programmiertools verwenden Sie häufig „=“ für Zuweisungen, wie z.B. in „x = 1“.In other programming tools, you commonly use "=" for assignment, as in "x = 1". Verwenden Sie stattdessen für Kontextvariablen { x: 1 }.For context variables, use { x: 1 } instead. Wenn Sie eine Kontextvariable verwenden, verwenden Sie ihren Namen direkt.When you use a context variable, use its name directly.
  • Sie können eine Kontextvariable auch mithilfe der Navigate-Funktion festlegen, wenn ein Bildschirm angezeigt wird.You can also set a context variable when a screen is displayed, by using the Navigate function. Wenn Sie sich einen Bildschirm als eine Art Prozedur oder Unterroutine vorstellen, ist dies vergleichbar mit der Parameterübergabe in anderen Programmiersprachentools.If you think of a screen as a kind of procedure or subroutine, this is similar to parameter passing in other programming tools.
  • Mit Ausnahme von Navigate sind Kontextvariablen auf den Kontext eines einzelnen Bildschirms beschränkt, wo sie ihren Namen erhalten.Except for Navigate, context variables are limited to the context of a single screen, which is where they get their name. Außerhalb dieses Kontexts können Sie sie weder verwenden noch festlegen.You can't use or set them outside of this context.
  • Kontextvariablen können jeden Wert enthalten, z.B. Zeichenfolgen, Zahlen, Datensätze und Tabellen.Context variables can hold any value, including strings, numbers, records, and tables.

Erstellen Sie Ihren hinzufügenden Computer mithilfe einer Kontextvariablen neu:Let's rebuild our adding machine by using a context variable:

  1. Fügen Sie ein Texteingabe-Steuerelement mit dem Namen TextInput1 hinzu, und zwei Schaltflächen mit dem Namen Button1 und Button2.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Legen Sie die Text-Eigenschaft von Button1 auf "Add" fest, und legen Sie die Text-Eigenschaft von Button2 auf "Clear" fest.Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Legen Sie die OnSelect-Eigenschaft einer Add-Schaltfläche auf folgende Formel fest, um die laufende Summe zu aktualisieren, wenn ein Benutzer die Schaltfläche auswählt: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 } )

    Wenn ein Benutzer erstmals die Add-Schaltfläche auswählt, und UpdateContext aufgerufen wird, wird RunningTotal mit einem Standardwert von blank erstellt.The first time a user selects the Add button and UpdateContext is called, RunningTotal is created with a default value of blank. Beim Hinzufügen wird es als eine 0 (null) behandelt.In the addition, it will be treated as a zero.

  4. Legen Sie die OnSelect-Eigenschaft der Clear-Schaltfläche auf folgende Formel fest, um die laufende Summe auf 0 festzulegen: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 } )

    Hier wird UpdateContext erneut mit der Formel UpdateContext( { RunningTotal: 0 } ) verwendet.Again, UpdateContext is used with the formula UpdateContext( { RunningTotal: 0 } ).

  5. Fügen Sie ein Label-Steuerelement (Bezeichnung) hinzu, und legen Sie dessen Text-Eigenschaft auf RunningTotal fest.Add a Label control, and set its Text property to RunningTotal.

    Diese Formel wird automatisch neu berechnet und zeigt dem Benutzer den Wert von RunningTotal an, während sie sich auf Grundlage der vom Benutzer ausgewählten Schaltflächen ändert.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. Sehen sie sich eine Vorschau der App an, und Sie sehen die Rechenmaschine, wie sie oben beschrieben wurde.Preview the app and we have our adding machine as described above. Geben Sie eine Zahl im Textfeld ein, und drücken Sie mehrmals die Schaltfläche Add.Enter a number in the text box and press the Add button a few timnes. Kehren Sie anschließend zur Erstellung zurück, indem Sie die ESC-TASTE drücken.When ready, return to the authoring experience using the Esc key.

  7. Sie können den Wert einer Kontextvariablen beim Wechsel zu einem Bildschirm festlegen.You can set the value of a context variable while navigating to a screen. Dies ist hilfreich, wenn Sie den „Kontext“ bzw. die „Parameter“ von einem Bildschirm an einen anderen übergeben möchten.This is useful for passing "context" or "parameters" from one screen to another. Um dies zu veranschaulichen, fügen Sie einen neuen Bildschirm ein, und fügen Sie eine Schaltfläche ein, deren OnSelect-Eigenschaft wie folgt festgelegt ist: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 } )

    Bei Auswahl dieser Schaltfläche auf Screen2 (dies kann während des Erstellens erfolgen, wenn Sie die Schaltfläche kurz vor Abschluss auswählen) wird Screen1 angezeigt, und die Kontextvariable RunningTotal wird auf -1000 festgelegt.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. Um den Wert der Kontextvariablen anzuzeigen, wählen Sie das Menü Datei aus, und wählen Sie im linken Bereich Variablen aus.To see our context variable's value, select the File menu and select Variables in the left hand pane.

  9. Wählen Sie die Kontextvariable aus, um festzustellen, an welchen Stellen sie definiert ist und verwendet wird.To see where your context variable is defined and used, select it.

Sammlung erstellenCreate a collection

Veranschaulichen wir abschließend das Erstellen der Rechenmaschine mithilfe einer Sammlung.Finally, let's look at creating our adding machine with a collection. Da eine Sammlung eine Tabelle enthält, die leicht geändert werden kann, legen wir fest, dass diese Rechenmaschine bei Eingabe der einzelnen Werte einen „Papierstreifen“ des Werts aufbewahrt.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.

Funktionsweise von Sammlungen:How collections work:

  • Erstellen Sie Sammlungen mithilfe der ClearCollect-Funktion, oder legen Sie diese fest.Create and set collections by using the ClearCollect function. Sie können stattdessen die Collect-Funktion verwenden; jedoch erfordert diese eine andere Variable statt die alte lediglich zu ersetzen.You can use the Collect function instead, but it will effectively require another variable instead of replacing the old one.
  • Eine Sammlung ist eine Art von Datenquelle und somit eine Tabelle.A collection is a kind of data source and, therefore, a table. Verwenden Sie die First-Funktion, um auf einen einzelnen Wert in einer Sammlung zuzugreifen, und extrahieren Sie ein Feld aus dem resultierenden Datensatz.To access a single value in a collection, use the First function, and extract one field from the resulting record. Wenn Sie einen einzelnen Wert mit ClearCollect verwendet haben, ist dies das Value-Feld, wie in diesem Beispiel:If you used a single value with ClearCollect, this will be the Value field, as in this example:
    First( VariableName ).ValueFirst( VariableName ).Value

Erstellen Sie Ihre Rechenmaschine mithilfe einer Sammlung neu:Let's recreate our adding machine by using a collection:

  1. Fügen Sie ein Texteingabe-Steuerelement mit dem Namen TextInput1 hinzu, und zwei Schaltflächen mit dem Namen Button1 und Button2.Add a Text input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Legen Sie die Text-Eigenschaft von Button1 auf "Add" fest, und legen Sie die Text-Eigenschaft von Button2 auf "Clear" fest.Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Legen Sie die OnSelect-Eigenschaft einer Add-Schaltfläche auf folgende Formel fest, um die laufende Summe zu aktualisieren, wenn ein Benutzer die Schaltfläche auswählt: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 )

    Mit dieser Formel wird der neue Wert am Ende der Sammlung hinzugefügt.This formula will add the new value to the end of the collection. Da ein einzelner Wert hinzugefügt wird, platziert Collect diesen automatisch in einer Tabelle mit einer Spalte; diese Spalte heißt Value, und wir werden die Tabelle später verwenden.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. Damit der Papierstreifen gelöscht wird, wenn der Benutzer die Schaltfläche Clear auswählt, legen Sie die zugehörige OnSelect-Eigenschaft auf diese Formel fest:To clear our paper tape when the user selects the Clear button, set its OnSelect property to this formula:

    Clear( PaperTape )Clear( PaperTape )

  5. Fügen Sie eine Bezeichnung hinzu, um die laufende Summe anzuzeigen, und legen Sie ihre Text-Eigenschaft auf folgende Formel fest:To display the running total, add a label, and set its Text property to this formula:

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

  6. Um die Rechenmaschine auszuführen, drücken Sie F5, um die Vorschau zu öffnen, geben Sie im Texteingabe-Steuerelement Zahlen ein, und wählen Sie Schaltflächen aus.To run the adding machine, press F5 to open Preview, enter numbers in the text-input control, and select buttons.

  7. Drücken Sie die ESC-TASTE, um zum Standardarbeitsbereich zurückzukehren.To return to the default workspace, press the Esc key.
  8. Fügen Sie zum Anzeigen des Papierstreifens ein Datentabellen-Steuerelement hinzu, und legen Sie dessen Items-Eigenschaft auf diese Formel fest:To display the paper tape, insert a Data table control, and set its Items property to this formula:

    PaperTapePaperTape

    Sie müssen auch die Spalten auswählen, die im rechten Bereich angezeigt werden. In diesem Fall wird die Spalte Value angezeigt:You will also need to select the columns to show in the right hand pane, in our case show the Value column:

  9. Wählen Sie im Dateimenü Collections (Sammlungen) aus, um die Werte in Ihrer Sammlung anzuzeigen.To see the values in your collection, select Collections on the File menu.

  10. Fügen Sie zum Speichern und Abrufen der Sammlung zwei weitere Schaltflächensteuerelemente hinzu, und legen Sie deren Text auf Load und Save fest.To store and retrieve your collection, add two additional button controls and set their text to Load and Save. Legen Sie für Load die OnSelect-Eigenschaft wie folgt fest:For Load, set the OnSelect property to:

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

    Zuerst muss die Sammlung geleert werden, da LoadData die gespeicherten Werte an das Ende der Sammlung anfügt.We need to clear the collection first as LoadData will append the stored values to the end of the collection.

  11. Legen Sie für Save die OnSelect-Eigenschaft wie folgt fest:For Save, set the OnSelect property to:

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

  12. Drücken Sie erneut F5, um die Vorschau aufzurufen, geben Sie Zahlen im Textsteuerelement ein, und wählen Sie Schaltflächen aus.Preview again by pressing the F5 key, enter numbers in the text-input control, and select buttons. Wählen Sie die Schaltfläche Save aus.Select the Save button. Schließen Sie die App, und laden Sie sie neu. Wählen Sie die Schaltfläche Load aus, um die Sammlung neu zu laden.Close and reload your app, and select the Load button to reload your collection.

    Hinweis

    SaveData und LoadData funktionieren nicht, wenn sie in einem Webbrowser ausgeführt werden.SaveData and LoadData do not function when running in a web browser. Sie müssen das unter Windows installierte Studio oder einen der Player für Mobilgeräte verwenden.You must be using the studio installed on Windows or one of the players for mobile devices.