Grundlegendes zu Canvas-App-Variablen in powerappsUnderstand canvas-app variables in Power Apps

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? Power Apps ist ein wenig anders und erfordert einen anderen Ansatz.Power Apps is a little different and requires a different approach. Statt auf eine Variable zurückzugreifen, wenn Sie eine Canvas-App erstellen, sollten Sie sich die Frage stellen: Wie würde ich in Excel verfahren?Instead of reaching for a variable when you build a canvas app, 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. In Power apps und Excel werden Formeln jedoch sowohl automatisch neu berechnet, wenn die Eingabedaten geändert werden. Daher müssen Sie in der Regel keine Variablen erstellen und aktualisieren.However, Power Apps 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, die das Modell von Excel erweitern, indem Sie Verhaltens Formelnhinzufügen.In some cases, you'll need to use variables in Power Apps, 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. Variablen werden implizit erstellt und eingegeben, wenn Sie in Funktionen angezeigt werden, die ihre Werte festlegen.Variables are implicitly created and typed when they appear in functions that set their values.

Übersetzen von Excel in powerappsTranslate Excel into Power Apps

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.

Im folgenden Beispiel wird Zelle a3 auf die Formel a1 + a2festgelegt.In the following example, cell A3 is set to the formula A1+A2. Wenn a1 oder a2 geändert wird, wird a3 automatisch neu berechnet, um die Änderung widerzuspiegeln.If A1 or A2 changes, A3 automatically recalculates to reflect the change. Dieses Verhalten erfordert keine Codierung außerhalb der Formel selbst.This behavior requires no coding outside of the formula itself.

Animation der Neuberechnung der Summe von zwei Zahlen in Excel

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.

Power AppsPower Apps

Apps, die Sie in powerapps erstellen, Verhalten sich ähnlich wie Excel.Apps that you create in Power Apps 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.

Beispielsweise können Sie das Excel-Verhalten in einer APP replizieren, indem Sie ein Label -Steuerelement mit dem Namen Label1und zwei Text Eingabe -Steuerelemente mit den Namen TextInput1 und TextInput2hinzufügen.For example, you can replicate the Excel behavior in an app by adding a Label control, named Label1, and two Text input controls, named TextInput1 and TextInput2. Wenn Sie dann die Text -Eigenschaft von Label1 auf TextInput1 + TextInput2festlegen, wird immer die Summe aller Zahlen in TextInput1 und TextInput2 automatisch angezeigt.If you then set the Text property of Label1 to TextInput1 + TextInput2, it will always show the sum of whatever numbers are in TextInput1 and TextInput2 automatically.

Berechnen der Summe von zwei Zahlen in Power apps

Beachten Sie, dass das Label1 -Steuerelement ausgewählt ist und seine Text Formel in der Bearbeitungs Leiste oben auf dem Bildschirm anzeigt.Notice that the Label1 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 TextInput1:

Animation der Berechnung der Summe von zwei Zahlen in Power apps

Die Formel für Label1 wurde automatisch neu berechnet und zeigt den neuen Wert.The formula for Label1 has been automatically recalculated, showing the new value.

In powerapps können Sie Formeln verwenden, um nicht nur den primär Wert eines Steuer Elements zu bestimmen, sondern auch Eigenschaften wie z. b. die Formatierung.In Power Apps, 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(Label1.Text) < 0; Red; Black )

Animation der bedingten Formatierung

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 Power Apps. 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 Power apps haben Sie all dies mit einer einzigen, einzeiligen Formel erreicht.In Power Apps, you accomplished all of that with a single, one-line formula.
  • Um zu verstehen, woher der Text von Label1stammt, wissen Sie genau, wo Sie suchen können: die Formel in der Text -Eigenschaft.To understand where Label1'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 die Formel-Engine in Power Apps für Sie arbeiten.Let the formula engine in Power Apps 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.

AusgestelltenDisplay BeschreibungDescription
App mit einem Text Eingabe-Steuerelement, einer Bezeichnung und zwei Schaltflächen App with a Text input control, a label, and two buttons Wenn die APP gestartet wird, wird die laufende Summe auf 0 (null).When the app starts, the running total is 0.

Der rote Punkt stellt den Finger des Benutzers im Texteingabefeld dar, in dem der Benutzer 77eingibt.The red dot represents the user's finger in the text-input box, where the user enters 77.
Das Text Eingabe-Steuerelement enthält 77, und die Schaltfläche hinzufügen wird gedrückt. Der Benutzer wählt die Schaltfläche Hinzufügen aus.The user selects the Add button.
Der Gesamtwert ist 77, und ein weiterer 77 wird hinzugefügt. 77 wird der laufenden Summe hinzugefügt.77 is added to the running total.

Der Benutzer wählt erneut die Schaltfläche Hinzufügen aus.The user selects the Add button again.
Die Summe beträgt 154, bevor Sie gelöscht wird. 77 wird wieder zur laufenden Summe hinzugefügt. Dies ergibt 154.77 is again added to the running total, resulting in 154.

Der Benutzer wählt die Schaltfläche Löschen aus.The user selects the Clear button.
Die Summe ist gelöscht. Die laufende Summe wird auf 0 zurückgesetzt.The running total is reset to 0.

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?

Globale Variable verwendenUse 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 Power apps arbeiten können, sind globale Variablen.The simplest variables to work with in Power Apps 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 + TextInput1)Set( RunningTotal; RunningTotal + TextInput1 )

    Durch das bloße vorhanden sein dieser Formel wird runningTotal als globale Variable festgelegt, die eine Zahl aufgrund des + Operators enthält.The mere existence of this formula establishes RunningTotal as a global variable that holds a number because of the + operator. Sie können auf " runningTotal " in der APP verweisen.You can reference RunningTotal anywhere in the app. Jedes Mal, wenn der Benutzer diese APP öffnet, hat runningTotal den Anfangswert blank.Whenever the user opens this app, RunningTotal has an initial value of blank.

    Wenn ein Benutzer zum ersten Mal die Schaltfläche Hinzufügen und set Runs auswählt, wird runningTotal auf den Wert runningTotal + TextInput1festgelegt.The first time that a user selects the Add button and Set runs, RunningTotal is set to the value RunningTotal + TextInput1.

    Die onselect-Eigenschaft der Schaltfläche hinzufügen ist auf Set Function festgelegt.

  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 )

    Die onselect-Eigenschaft der Clear-Schaltfläche ist auf Set-Funktion festgelegt.

  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.

    Die Text-Eigenschaft der Bezeichnung wird auf den Namen der Variablen festgelegt.

  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.

    Das Text Eingabe-Steuerelement enthält einen Wert, und die Bezeichnung enthält die laufende Summe.

  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 show the global variable's value, select the File menu, and select Variables in the left-hand pane.

    Variablen Option im Menü "Datei"

  8. Um alle Stellen anzuzeigen, an denen die Variable definiert und verwendet wird, wählen Sie Sie aus.To show all the places where the variable is defined and used, select it.

    Liste des Speicher Orts, an dem Variable verwendet wird

Typen von VariablenTypes of variables

Powerapps verfügt über drei Arten von Variablen:Power Apps has three types of variables:

VariablentypVariables type UmfangScope BeschreibungDescription Funktionen, die einrichtenFunctions that establish
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. Kann nur von einem Bildschirm aus referenziert werden.Can be referenced from only one screen. UpdateContextUpdateContext
NavigateNavigate
SammlungenCollections AppApp Enthält eine Tabelle, auf die von überall in der APP verwiesen werden kann.Holds a table that can be referenced 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

Erstellen und Entfernen von VariablenCreate and remove variables

Alle Variablen werden implizit erstellt, wenn Sie in einer Set-, updatecontext-, Navigate-, Collect-oder clearcollect -Funktion angezeigt werden.All variables are created implicitly when they appear in a Set, UpdateContext, Navigate, Collect, or ClearCollect function. Um eine Variable und ihren Typ zu deklarieren, müssen Sie Sie nur in einer dieser Funktionen an einer beliebigen Stelle in Ihrer APP einschließen.To declare a variable and its type, you need only include it in any of these functions anywhere in your app. Keine dieser Funktionen erstellt Variablen. Sie füllen nur Variablen mit Werten aus.None of these functions create variables; they only fill variables with values. Sie deklarieren Variablen nie explizit wie in einem anderen Programmier Tool, und die gesamte Typisierung ist von der Verwendung implizit.You never declare variables explicitly as you might in another programming tool, and all typing is implicit from usage.

Beispielsweise können Sie ein Schaltflächen-Steuerelement mit einer onselect -Formel haben, die auf Set (X, 1) festgelegtist.For example, you might have a button control with an OnSelect formula equal to Set( X; 1 ). Mit dieser Formel wird X als Variable mit dem Typ "Number" festgelegt.This formula establishes X as a variable with a type of number. Sie können X in Formeln als Zahl verwenden, und diese Variable hat den Wert leer , nachdem Sie die APP geöffnet haben, aber bevor Sie die Schaltfläche auswählen.You can use X in formulas as a number, and that variable has a value of blank after you open the app but before you select the button. Wenn Sie die Schaltfläche auswählen , übergeben Sie den Wert 1.When you select the button, you give X the value of 1.

Wenn Sie eine weitere Schaltfläche hinzugefügt und deren onselect -Eigenschaft auf Set (X, "Hello") festgelegt haben, tritt ein Fehler auf, weil der Typ (Text Zeichenfolge) nicht mit dem Typ in der vorherigen Menge (Zahl) identisch ist.If you added another button and set its OnSelect property to Set( X; "Hello" ), an error would occur because the type (text string) doesn't match the type in the previous Set (number). Alle impliziten Definitionen der Variablen müssen dem Typ zustimmen.All implicit definitions of the variable must agree on type. Auch hier ist alles passiert, weil Sie X in Formeln erwähnt haben, nicht, weil diese Formeln tatsächlich ausgeführt wurden.Again, all this happened because you mentioned X in formulas, not because any of those formulas had actually run.

Entfernen Sie eine Variable, indem Sie alle Set-, updatecontext-, Navigate-, Collect-oder clearcollect -Funktionen entfernen, mit denen die Variable implizit festgelegt wird.You remove a variable by removing all the Set, UpdateContext, Navigate, Collect, or ClearCollect functions that implicitly establish the variable. Ohne diese Funktionen ist die Variable nicht vorhanden.Without these functions, the variable doesn't exist. Außerdem müssen Sie alle Verweise auf die Variable entfernen, da Sie zu einem Fehler führen.You must also remove any references to the variable because they will cause an error.

Variablen Lebensdauer und AnfangswertVariable lifetime and initial value

Alle Variablen werden im Arbeitsspeicher gespeichert, während die app ausgeführt wird.All variables are held in memory while the app runs. Nachdem die app geschlossen wurde, gehen die Werte, die in den Variablen gespeichert wurden, verloren.After the app closes, the values that the variables held are lost.

Sie können den Inhalt einer Variablen in einer Datenquelle speichern, indem Sie die Patch -Funktion oder die Collect -Funktion verwenden.You can store the contents of a variable in a data source by using the Patch or Collect functions. Mithilfe der SaveData -Funktion können Sie auch Werte in Sammlungen auf dem lokalen Gerät speichern.You can also store values in collections on the local device by using the SaveData function.

Wenn der Benutzer die APP öffnet, haben alle Variablen den Anfangswert blank.When the user opens the app, all variables have an initial value of blank.

Lesen von VariablenReading variables

Sie verwenden den Variablennamen, um den Wert zu lesen.You use the variable's name to read its value. Beispielsweise können Sie eine Variable mit der folgenden Formel definieren:For example, you can define a variable with this formula:

Set( Radius; 12 )

Anschließend können Sie einfach RADIUS überall verwenden, wo Sie eine Zahl verwenden können, und es wird durch 12ersetzt:Then you can simply use Radius anywhere that you can use a number, and it will be replaced with 12:

Pi() * Power( Radius; 2 )

Wenn Sie eine Kontext Variable mit dem gleichen Namen wie eine globale Variable oder eine Auflistung versehen, hat die Kontext Variable Vorrang.If you give a context variable the same name as a global variable or a collection, the context variable takes precedence. Sie können jedoch weiterhin auf die globale Variable oder Auflistung verweisen, wenn Sie den disambiguations-Operator @ [RADIUS] verwenden.However, you can still reference the global variable or collection if you use the disambiguation operator @[Radius].

Verwenden einer Kontext VariablenUse 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:

  • Mithilfe der updatecontext -Funktion oder der Navigate -Funktion erstellen und legen Sie Kontext Variablen implizit fest.You implicitly establish and set context variables by using the UpdateContext or Navigate function. Wenn die APP gestartet wird, ist der Anfangswert aller Kontext Variablen leer.When the app starts, the initial value of all context variables is blank.
  • Sie aktualisieren Kontext Variablen mit Datensätzen.You 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 Kontext Variable verwenden, verwenden Sie Ihren Namen direkt ohne die Datensatz-Syntax.When you use a context variable, use its name directly without the record syntax.
  • Sie können auch eine Kontext Variable festlegen, wenn Sie mit der Navigate -Funktion einen Bildschirm anzeigen.You can also set a context variable when you use the Navigate function to show a screen. Wenn Sie sich einen Bildschirm als eine Art von Prozedur oder Unterroutine vorstellen, ähnelt diese Vorgehensweise der Parameter Übergabe in anderen Programmier Tools.If you think of a screen as a kind of procedure or subroutine, this approach resembles 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 + TextInput1})UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )

    Durch das bloße vorhanden sein dieser Formel wird runningTotal als Kontext Variable festgelegt, die eine Zahl aufgrund des + Operators enthält.The mere existence of this formula establishes RunningTotal as a context variable that holds a number because of the + operator. Auf diesem Bildschirm können Sie auf runningTotal verweisen.You can reference RunningTotal anywhere in this screen. Jedes Mal, wenn der Benutzer diese APP öffnet, hat runningTotal den Anfangswert blank.Whenever the user opens this app, RunningTotal has an initial value of blank.

    Wenn der Benutzer die Schaltfläche Hinzufügen und updatecontext zum ersten Mal auswählt, wird runningTotal auf den Wert runningTotal + TextInput1festgelegt.The first time that the user selects the Add button and UpdateContext runs, RunningTotal is set to the value RunningTotal + TextInput1.

    Onselect-Eigenschaft der Schaltfläche "hinzufügen"

  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 } ).

    Onselect-Eigenschaft der Schaltfläche "Löschen"

  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.

    Text-Eigenschaft der Bezeichnung

  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.

    Text Eingabe-Steuerelement zeigt einen Wert an, und die Bezeichnung zeigt die laufende Summe an

  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 diese Technik zu veranschaulichen, fügen Sie einen Bildschirm ein, fügen Sie eine Schaltfläche ein, und legen Sie die onselect -Eigenschaft auf diese Formel festTo demonstrate this technique, insert a screen, insert a button, and set its OnSelect property to this formula:

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

    Onselect-Eigenschaft einer Schaltfläche

    Halten Sie die Alt-Taste gedrückt, während Sie diese Schaltfläche auswählen, um Screen1 anzuzeigen, und legen Sie die Kontext Variable runningTotal auf-1000 fest.Hold down the Alt key while you select this button to both show Screen1 and set the context variable RunningTotal to -1000.

    Screen1 ist offen

  8. Um den Wert der Kontext Variablen anzuzeigen, wählen Sie das Menü Datei aus, und wählen Sie dann im linken Bereich Variablen aus.To show the value of the context variable, select the File menu, and then select Variables in the left-hand pane.

    Variablen (Option) im Menü "Datei"

  9. Um anzuzeigen, wo die Kontext Variable definiert und verwendet wird, wählen Sie Sie aus.To show where the context variable is defined and used, select it.

    Die Liste, in der eine Variable verwendet wird.

Sammlung verwendenUse 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 )

    Das bloße vorhanden sein dieser Formel richtet Taschen Bänder als Sammlung ein, die eine einspaltige Tabelle mit Text Zeichenfolgen enthält.The mere existence of this formula establishes PaperTape as a collection that holds a single-column table of text strings. Sie können auf Taschen Bänder an beliebiger Stelle in dieser APP verweisen.You can reference PaperTape anywhere in this app. Wenn ein Benutzer diese APP öffnet, ist das Taschen Band eine leere Tabelle.Whenever a user opens this app, PaperTape is an empty table.

    Wenn diese Formel ausgeführt wird, wird der neue Wert am Ende der Collection hinzugefügt.When this formula runs, it adds the new value to the end of the collection. Da wir einen einzelnen Wert hinzufügen, wird er von Collect automatisch in eine einspaltige Tabelle eingefügt, und der Name der Spalte ist Wert, den Sie später verwenden werden.Because we're adding a single value, Collect automatically places it in a single-column table, and the column's name is Value, which you'll use later.

    Onselect-Eigenschaft der Schaltfläche "hinzufügen"

  4. Um das Papierband zu löschen, wenn der Benutzer die Schaltfläche Löschen auswählt, legen Sie dessen onselect -Eigenschaft auf diese Formel fest:To clear the paper tape when the user selects the Clear button, set its OnSelect property to this formula:

    Clear( PaperTape )Clear( PaperTape )

    Onselect-Eigenschaft der Schaltfläche "Löschen"

  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 )

    Text-Eigenschaft der Bezeichnung

  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.

    Das Text Eingabe-Steuerelement zeigt einen Wert an, und die Bezeichnung zeigt die laufende Summe an

  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

    Wählen Sie im rechten Bereich die Spalte Wert aus, um Sie anzuzeigen.In the right-hand pane, select the Value column to show it.

    Datentabelle, in der die der Auflistung hinzugefügten Werte angezeigt werden

  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.

    Vorschau der Sammlung "Taschen Band"

  10. Fügen Sie zum Speichern und Abrufen der Auflistung zwei zusätzliche Schaltflächen-Steuerelemente hinzu, und legen Sie deren Text -Eigenschaften auf Laden und Speichernfest.To store and retrieve your collection, add two additional button controls, and set their Text properties to Load and Save. Legen Sie die onselect -Eigenschaft der Schaltfläche " Laden " auf diese Formel fest:Set the OnSelect property of the Load button to this formula:

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

    Sie müssen zuerst die Auflistung löschen, da LoadData die gespeicherten Werte an das Ende der Auflistung anfügt.You need to clear the collection first because LoadData will append the stored values to the end of the collection.

    Onselect-Eigenschaft der Schaltfläche "Laden"

  11. Legen Sie die onselect -Eigenschaft der Schaltfläche Speichern auf diese Formel fest:Set the OnSelect property of the Save button to this formula:

    SaveData( PaperTape; "StoredPaperTape" )SaveData( PaperTape; "StoredPaperTape" )

    Onselect *-Eigenschaft der Schaltfläche "Speichern"

  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 neuClose and reload the app, and select the Load button to reload your collection.

Hinweis

Die Funktion " SaveData " und " LoadData " in Power Apps Mobile, aber nicht in powerapps Studio oder im Web Player für Power apps.SaveData and LoadData function in Power Apps Mobile but not Power Apps Studio or the web player for Power Apps.