PowerApps에서 캔버스 앱 변수 이해Understand canvas-app variables in PowerApps

Visual Basic 또는 JavaScript와 같은 다른 프로그래밍 도구를 사용한 경우 하 라고 물어볼 수 있습니다. 변수는?If you've used another programming tool, such as Visual Basic or JavaScript, you may be asking: Where are the variables? PowerApps는 약간 다르며 다른 접근 방식이 필요합니다.PowerApps is a little different and requires a different approach. 변수에 대 한 캔버스 앱을 빌드할 때에 도달 하는 대신 직접 요청 합니다. Excel에서 할까요?Instead of reaching for a variable when you build a canvas app, ask yourself: What would I do in Excel?

다른 도구에서는 명시적으로 계산을 수행하여 결과를 변수에 저장했습니다.In other tools, you may have explicitly performed a calculation and stored the result in a variable. 그러나 PowerApps와 Excel에서는 모두 입력 데이터가 변경될 때 수식을 자동으로 다시 계산하므로 일반적으로 변수를 만들고 업데이트할 필요가 없습니다.However, PowerApps and Excel both automatically recalculate formulas as the input data changes, so you usually don't need to create and update variables. 가능한 경우 언제든지 이 방법을 사용하면 앱을 더 쉽게 만들고, 이해하고, 유지 관리할 수 있습니다.By taking this approach whenever possible, you can more easily create, understand, and maintain your app.

어떤 경우에는 동작 수식을 추가하여 Excel 모델을 확장하는 PowerApps에서 변수를 사용해야 합니다.In some cases, you'll need to use variables in PowerApps, which extends Excel's model by adding behavior formulas. 예를 들어 사용자가 단추를 선택할 때 이러한 수식이 실행됩니다.These formulas run when, for example, a user selects a button. 종종 동작 수식 내에서 다른 수식에 사용할 변수를 설정하는 것이 유용합니다.Within a behavior formula, it's often helpful to set a variable to be used in other formulas.

일반적으로 변수를 사용하지 마세요.In general, avoid using variables. 그러나 때로는 변수만 사용하여 원하는 환경을 설정할 수 있습니다.But sometimes only a variable can enable the experience you want. 변수는 암시적으로 생성 되 고 해당 값을 설정 하는 함수에 표시 될 경우을 입력 합니다.Variables are implicitly created and typed when they appear in functions that set their values.

Excel을 PowerApps로 변환Translate Excel into PowerApps

ExcelExcel

Excel의 작동 원리를 검토해 보겠습니다.Let's review how Excel works. 셀에는 숫자 또는 문자열과 같은 값 또는 다른 셀의 값을 기반으로 하는 수식이 포함될 수 있습니다.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. 사용자가 셀에 다른 값을 입력하면 Excel에서는 새 값에 종속된 모든 수식을 자동으로 다시 계산합니다.After the user enters a different value into a cell, Excel automatically recalculates any formulas that depend on the new value. 이 동작을 프로그래밍하여 사용하도록 설정할 필요가 없습니다.You don't have to do any programming to enable this behavior.

다음 예에서 셀 A3 수식으로 설정 됩니다 A1 + A2합니다.In the following example, cell A3 is set to the formula A1+A2. 하는 경우 A1 하거나 A2 변경 A3 변경 내용을 반영 하도록 자동으로 다시 계산 합니다.If A1 or A2 changes, A3 automatically recalculates to reflect the change. 이 동작은 수식 자체 외부 코딩 없이 필요 합니다.This behavior requires no coding outside of the formula itself.

Excel에서 두 숫자의 합을 계산 하는 애니메이션

Excel에서는 변수를 사용하지 않습니다.Excel doesn't have variables. 수식이 포함된 셀의 값은 입력에 따라 변경되지만 수식의 결과를 기억하고 셀이나 다른 위치에 저장할 방법이 없습니다.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. 셀의 값을 변경하면 전체 스프레드시트가 변경되고 이전에 계산된 값이 손실될 수 있습니다.If you change a cell's value, the entire spreadsheet may change, and any previously calculated values are lost. Excel 사용자는 셀을 복사하여 붙여넣을 수 있고 직접 제어할 수 있지만, 수식으로는 가능하지 않습니다.An Excel user can copy and paste cells, but that's under the user's manual control and isn't possible with formulas.

PowerAppsPowerApps

PowerApps에서 만드는 앱은 Excel과 매우 비슷하게 작동합니다.Apps that you create in PowerApps behave very much like Excel. 셀을 업데이트하는 대신 화면에 원하는 위치에 컨트롤을 추가하고 수식에 사용할 컨트롤의 이름을 지정할 수 있습니다.Instead of updating cells, you can add controls wherever you want on a screen and name them for use in formulas.

예를 들어 앱에서 Excel 동작을 추가 하 여 복제할 수 있습니다는 레이블을 라는 컨트롤 Label1를 두 개의 텍스트 입력 컨트롤, 명명 된 TextInput1 하 고 TextInput2합니다.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. 설정한 경우 합니다 텍스트 속성을 Label1TextInput1 + TextInput2, 모든 숫자의 합에 항상 표시 됩니다 TextInput1 하 고 TextInput2 자동으로 합니다.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.

PowerApps에서 두 숫자의 합계를 계산합니다.

다음에 유의 합니다 Label1 컨트롤을 선택 하면 표시 해당 텍스트 화면 맨 위에 있는 수식 입력줄에서 수식.Notice that the Label1 control is selected, showing its Text formula in the formula bar at the top of the screen. 여기서 TextInput1 + TextInput2 수식을 찾습니다.Here we find the formula TextInput1 + TextInput2. 이 수식은 Excel 통합 문서에서 셀 간에 종속성을 만든 것처럼 이러한 컨트롤 간에 종속성을 만듭니다.This formula creates a dependency between these controls, just as dependencies are created between cells in an Excel workbook. 값을 변경해 보겠습니다 TextInput1:Let's change the value of TextInput1:

PowerApps에서 두 숫자의 합계를 계산 하는 애니메이션

에 대 한 수식을 Label1 자동으로 다시 계산할 새 값을 표시 합니다.The formula for Label1 has been automatically recalculated, showing the new value.

PowerApps에서 수식을 사용하여 컨트롤의 기본값뿐만 아니라 서식과 같은 속성도 결정할 수 있습니다.In PowerApps, you can use formulas to determine not only the primary value of a control but also properties such as formatting. 다음 예제에서 레이블의 Color 속성에 대한 수식은 자동으로 음수 값을 빨간색으로 표시합니다.In the next example, a formula for the Color property of the label will automatically show negative values in red. If 함수는 Excel과 매우 친숙해야 합니다.The If function should look very familiar from Excel:

If( Value(Label1.Text) < 0, Red, Black )

조건부 서식의 애니메이션

다음과 같은 다양한 시나리오에 수식을 사용할 수 있습니다.You can use formulas for a wide variety of scenarios:

  • 디바이스의 GPS를 사용하면 지도 컨트롤에서 Location.LatitudeLocation.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. 이동하는 대로 지도에서 내 위치를 자동으로 추적합니다.As you move, the map will automatically track your location.
  • 다른 사용자가 데이터 원본을 업데이트할 수 있습니다.Other users can update data sources. 예를 들어 팀의 다른 구성원이 SharePoint 목록의 항목을 업데이트할 수 있습니다.For example, others on your team might update items in a SharePoint list. 데이터 원본을 새로 고치면 종속된 모든 수식이 업데이트된 데이터를 반영하도록 자동으로 다시 계산됩니다.When you refresh a data source, any dependent formulas are automatically recalculated to reflect the updated data. 예를 들어 Filter( SharePointList ) 수식에 갤러리의 Items 속성을 설정하여 새로 필터링된 레코드 집합을 자동으로 표시할 수 있습니다.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.

혜택Benefits

수식을 사용하여 앱을 빌드하면 다음과 같은 많은 이점이 있습니다.Using formulas to build apps has many advantages:

  • Excel을 알고 있으면 PowerApps도 알 수 있습니다.If you know Excel, you know PowerApps. 모델과 수식 언어가 동일하기 때문입니다.The model and formula language are the same.
  • 다른 프로그래밍 도구를 사용했으면 이러한 예제를 수행하는 데 필요한 코드의 양을 생각하면 됩니다.If you've used other programming tools, think about how much code would be required to accomplish these examples. Visual Basic에서는 각 텍스트 입력 컨트롤에 변경 이벤트에 대한 이벤트 처리기를 작성해야 합니다.In Visual Basic, you'd need to write an event handler for the change event on each text-input control. 이러한 컨트롤 각각에서 계산을 수행하는 코드가 중복되고 동기화되지 못하거나 일반적인 서브루틴을 작성해야 합니다.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. PowerApps에서는 단 한 줄의 수식으로 이러한 모든 작업을 수행합니다.In PowerApps, you accomplished all of that with a single, one-line formula.
  • 곳을 이해 하 Label1의 텍스트에서 제공 되는지, 검색할 정확한 위치를 알고:에서 수식을 합니다 텍스트 속성입니다.To understand where Label1's text is coming from, you know exactly where to look: the formula in the Text property. 이 컨트롤의 텍스트에 영향을 줄 수 있는 다른 방법은 없습니다.There's no other way to affect the text of this control. 기존의 프로그래밍 도구에서 모든 이벤트 처리기 또는 서브루틴은 프로그램의 모든 위치에서 레이블의 값을 변경할 수 있습니다.In a traditional programming tool, any event handler or subroutine could change the value of the label, from anywhere in the program. 이로 인해 변수가 언제 어디서 변경되었는지 추적하기가 어려워질 수 있습니다.This can make it hard to track down when and where a variable was changed.
  • 사용자가 슬라이더 컨트롤을 변경한 다음 생각을 바꾸면 슬라이더를 원래 값으로 다시 변경할 수 있습니다.If the user changes a slider control and then changes their mind, they can change the slider back to its original value. 그러면 마치 아무 것도 변경되지 않은 것처럼 됩니다. 즉 앱에서 이전과 동일한 컨트롤 값을 표시합니다.And it's as if nothing had ever changed: the app shows the same control values as it did before. Excel에서 아무 효과가 없는 것처럼 "what if"를 실험하고 요청하는 것에 대해 아무 효과가 없습니다.There are no ramifications for experimenting and asking "what if," just as there are none in Excel.

일반적으로 수식을 사용하여 결과를 얻을 수 있는 경우가 더 효과적입니다.In general, if you can achieve an effect by using a formula, you'll be better off. PowerApps에서 수식 엔진을 사용하여 작업해 보겠습니다.Let the formula engine in PowerApps work for you.

변수를 사용하는 경우 확인Know when to use variables

구식의 계산기처럼 작동하도록 단순한 가산기를 누계로 변경해 보겠습니다.Let's change our simple adder to act like an old-fashioned adding machine, with a running total. 추가 단추를 선택하는 경우 누계에 숫자를 추가합니다.If you select an Add button, you'll add a number to the running total. 지우기 단추를 선택하는 경우 누계를 0으로 다시 설정합니다.If you select a Clear button, you'll reset the running total to zero.

표시Display 설명Description
레이블 컨트롤과 두 단추 텍스트를 사용 하 여 앱에서 입력 App with a Text input control, a label, and two buttons 앱을 시작 하는 경우 누계는 0입니다.When the app starts, the running total is 0.

빨간 점을 나타내는 사용자가 텍스트 입력 상자에 사용자의 손가락 77합니다.The red dot represents the user's finger in the text-input box, where the user enters 77.
텍스트 입력된 컨트롤 77 있고 추가 단추를 눌렀는지 사용자가 선택 된 추가 단추입니다.The user selects the Add button.
총 77 이며에 추가할 다른 77 77 누계에 추가 됩니다.77 is added to the running total.

사용자가 선택 된 추가 단추를 다시 합니다.The user selects the Add button again.
총 지워집니다 전에 154 수는 있습니다. 77 다시 154에 누계 추가 됩니다.77 is again added to the running total, resulting in 154.

사용자가 선택 된 지우기 단추입니다.The user selects the Clear button.
총이 지워집니다. 누계를 0으로 다시 설정 됩니다.The running total is reset to 0.

계산기는 Excel에 존재하지 않는 단추를 사용합니다.Our adding machine uses something that doesn't exist in Excel: a button. 이 앱에서는 사용자가 수행하는 일련의 작업에 따라 값이 달라지므로 수식만으로는 누계를 계산할 수 없습니다.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. 대신 누계를 수동으로 기록하고 업데이트해야 합니다.Instead, our running total must be recorded and updated manually. 대부분의 프로그래밍 도구에서는 이 정보를 변수에 저장합니다.Most programming tools store this information in a variable.

앱이 원하는 방식으로 작동하도록 변수가 필요할 수도 있습니다.You'll sometimes need a variable for your app to behave the way you want. 그러나 이 방법에는 다음과 같은 주의 사항이 있습니다.But the approach comes with caveats:

  • 누계를 수동으로 업데이트해야 합니다.You must manually update the running total. 자동 다시 계산을 수행하지 않습니다.Automatic recalculation won't do it for you.
  • 누계는 더 이상 다른 컨트롤의 값을 기준으로 계산되지 않습니다.The running total can no longer be calculated based on the values of other controls. 사용자가 추가 단추를 선택한 횟수와 매번 텍스트 입력 컨트롤에 있던 값에 따라 누계가 달라집니다.It depends on how many times the user selected the Add button and what value was in the text-input control each time. 사용자가 77을 입력하고 추가를 두 번 추가했나요? 아니면 각 추가에 대해 24와 130을 지정했나요?Did the user enter 77 and select Add twice, or did they specify 24 and 130 for each of the additions? 합계가 154에 도달한 후에는 그 차이를 알 수 없습니다.You can't tell the difference after the total has reached 154.
  • 합계에 대한 변경은 다른 경로에서 제공될 수 있습니다.Changes to the total can come from different paths. 이 예제에서는 추가지우기 단추 모두에서 합계를 업데이트할 수 있습니다.In this example, both the Add and Clear buttons can update the total. 앱이 예상대로 작동하지 않으면 문제의 원인이 되는 단추는 무엇일까요?If the app doesn't behave the way you expect, which button is causing the problem?

전역 변수를 사용 합니다.Use a global variable

계산기를 만들려면 누계를 보유할 변수가 필요합니다.To create our adding machine, we require a variable to hold the running total. PowerApps에서 사용할 가장 간단한 변수는 전역 변수입니다.The simplest variables to work with in PowerApps are global variables.

전역 변수의 작동 방식은 다음과 같습니다.How global variables work:

  • Set 함수를 사용하여 전역 변수의 값을 설정합니다.You set the value of the global variable with the Set function. Set( MyVar, 1 )MyVar 전역 변수를 1의 값으로 설정합니다.Set( MyVar, 1 ) sets the global variable MyVar to a value of 1.
  • Set 함수와 함께 사용할 이름을 참조하여 전역 변수를 사용합니다.You use the global variable by referencing the name used with the Set function. 이 경우 MyVar1을 반환합니다.In this case, MyVar will return 1.
  • 전역 변수에는 문자열, 숫자, 레코드 및 테이블을 포함한 모든 값이 포함될 수 있습니다.Global variables can hold any value, including strings, numbers, records, and tables.

전역 변수를 사용하여 계산기를 다시 빌드해 보겠습니다.Let's rebuild our adding machine by using a global variable:

  1. TextInput1이라는 텍스트 입력 컨트롤과 Button1Button2라는 두 개의 단추를 추가합니다.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Button1Text 속성을 "추가" 로 설정하고, Button2Text 속성을 "지우기" 로 설정합니다.Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. 사용자가 추가 단추를 선택할 때마다 누계를 업데이트하려면 OnSelect 속성을 다음 수식으로 설정합니다.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 )

    이 수식은 단순히 있는지 여부를 설정 RunningTotal 때문에 숫자를 포함 하는 전역 변수를 + 연산자입니다.The mere existence of this formula establishes RunningTotal as a global variable that holds a number because of the + operator. 참조할 수 있습니다 RunningTotal 앱에서 아무 곳 이나 합니다.You can reference RunningTotal anywhere in the app. 사용자가이 앱을 열 때마다 RunningTotal 의 초기 값은 합니다.Whenever the user opens this app, RunningTotal has an initial value of blank.

    처음으로 사용자를 선택 하는 추가 단추 및 설정 실행 RunningTotal 값으로 설정 되어 TextInput1 + RunningTotal합니다.The first time that a user selects the Add button and Set runs, RunningTotal is set to the value RunningTotal + TextInput1.

    함수를 설정 하려면 추가 단추 OnSelect 속성 설정

  4. 사용자가 지우기 단추를 선택할 때마다 누계를 0으로 설정하려면 OnSelect 속성을 다음 수식으로 설정합니다.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 )

    지우기 단추 OnSelect 속성 설정 함수를 설정 하려면

  5. 레이블 컨트롤을 추가하고 Text 속성을 RunningTotal로 설정합니다.Add a Label control, and set its Text property to RunningTotal.

    이 수식은 자동으로 다시 계산되며, 사용자가 선택하는 단추에 따라 변경될 때 사용자에게 RunningTotal 값을 표시합니다.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. 앱을 미리 보면 위에서 설명한 대로 계산기가 있습니다.Preview the app, and we have our adding machine as described above. 텍스트 상자에서 숫자를 입력하고 추가 단추를 몇 번 누릅니다.Enter a number in the text box and press the Add button a few times. 준비가 되면 Esc 키를 사용하여 제작 환경으로 돌아갑니다.When ready, return to the authoring experience using the Esc key.

    텍스트 입력 컨트롤에 값이 있는 및 레이블을 누계를 포함 합니다.

  7. 전역 변수의 값을 표시 하려면 선택 합니다 파일 메뉴에서 선택한 변수 왼쪽 창에서.To show the global variable's value, select the File menu, and select Variables in the left-hand pane.

    파일 메뉴에서 변수 옵션

  8. 변수 정의 되 고 사용 되는 모든 위치를 표시 하려면 선택 합니다.To show all the places where the variable is defined and used, select it.

    변수를 사용 하는 위치 목록

변수 유형Types of variables

PowerApps에는 세 가지 유형의 변수:PowerApps has three types of variables:

변수 유형Variables type 범위Scope 설명Description 설정 하는 함수Functions that establish
전역 변수Global variables AppApp 사용이 가장 간편합니다.Simplest to use. 앱의 모든 위치에서 참조할 수 있는 숫자, 텍스트 문자열, 부울, 레코드, 테이블 등을 보유합니다.Holds a number, text string, Boolean, record, table, etc. that can be references from anywhere in the app. SetSet
컨텍스트 변수Context variables 화면Screen 다른 언어의 프로시저에 대한 매개 변수와 마찬가지로 화면에 값을 전달하는 데 매우 유용합니다.Great for passing values to a screen, much like parameters to a procedure in other languages. 하나의 화면에서 참조할 수 있습니다.Can be referenced from only one screen. UpdateContextUpdateContext
NavigateNavigate
컬렉션Collections AppApp 참조할 수 있는에서 어디서 나 앱에서 테이블을 보유 합니다.Holds a table that can be referenced from anywhere in the app. 테이블의 내용을 전체적으로 설정하지 않고 수정할 수 있습니다.Allows the contents of the table to be modified rather than being set as a whole. 나중에 사용하기 위해 로컬 디바이스에 저장할 수 있습니다.Can be saved to the local device for later use. CollectCollect
ClearCollectClearCollect

만들고 변수를 제거 합니다.Create and remove variables

에 표시 될 경우 모든 변수가 암시적으로 생성 됩니다는 설정UpdateContext탐색수집, 또는 ClearCollect 함수입니다.All variables are created implicitly when they appear in a Set, UpdateContext, Navigate, Collect, or ClearCollect function. 변수와 그 형식에 선언 하려면 필요한만 포함할 있습니다 이러한 함수 중 하나에서 어디서 나 앱에서.To declare a variable and its type, you need only include it in any of these functions anywhere in your app. 변수 만들기 이러한 함수의 없음 이러한 값을 사용 하 여 변수만 채웁니다.None of these functions create variables; they only fill variables with values. 되지 변수를 선언할 있습니다 명시적으로 다른 프로그래밍 도구에서 수와 모든 입력 하는 것은 암시적 사용에서 합니다.You never declare variables explicitly as you might in another programming tool, and all typing is implicit from usage.

예를 들어 단추 컨트롤을 해야 할 수 있습니다는 OnSelect 수식을 같음 집합 (X, 1) 합니다.For example, you might have a button control with an OnSelect formula equal to Set( X, 1 ). 이 수식을 설정 X 번호 형식의 변수입니다.This formula establishes X as a variable with a type of number. 사용할 수 있습니다 X 숫자와 해당 변수는 수식에서 값이 앱을 열면 되었으나 단추를 선택 합니다.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. 제공 하는 단추를 선택 하면 X 변수의 1합니다.When you select the button, you give X the value of 1.

다른 추가한 경우 단추 설정 및 해당 OnSelect 속성을 집합 (X, "Hello"), 형식 (텍스트 문자열)는 이전 형식 일치 하지 않으므로 오류가 발생 설정(숫자)입니다.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). 모든 암시적 정의 변수의 형식에 동의 해야 합니다.All implicit definitions of the variable must agree on type. 마찬가지로 모든 때문일 하셨는데 요 X 수식에서 실제로 실행 이러한 수식 중 하나 때문이 아니라 합니다.Again, all this happened because you mentioned X in formulas, not because any of those formulas had actually run.

모두 제거 하 여 변수를 제거 합니다 설정, UpdateContext탐색수집, 또는 ClearCollect 암시적으로 변수를 설정 하는 함수입니다.You remove a variable by removing all the Set, UpdateContext, Navigate, Collect, or ClearCollect functions that implicitly establish the variable. 이러한 함수 없이 변수의 존재 하지 않습니다.Without these functions, the variable doesn't exist. 변수에 대 한 모든 참조 하면 오류가 발생 하기 때문에 제거 해야 합니다.You must also remove any references to the variable because they will cause an error.

초기 값 및 변수 수명Variable lifetime and initial value

모든 변수는 앱이 실행 되는 동안 메모리에 유지 됩니다.All variables are held in memory while the app runs. 앱을 닫으면 변수에 보유 하는 값을 손실 됩니다.After the app closes, the values that the variables held are lost.

사용 하 여 데이터 원본에 변수의 내용을 저장할 수 있습니다 합니다 패치 하거나 수집 함수입니다.You can store the contents of a variable in a data source by using the Patch or Collect functions. 사용 하 여 로컬 장치에는 컬렉션의 값을 저장할 수도 있습니다는 SaveData 함수입니다.You can also store values in collections on the local device by using the SaveData function.

모든 변수에 초기 값이 있는 사용자가 앱을 열면 합니다.When the user opens the app, all variables have an initial value of blank.

읽기 변수Reading variables

변수 이름을 사용 하 여 해당 값을 읽습니다.You use the variable's name to read its value. 예를 들어이 수식 사용 하 여 변수를 정의할 수 있습니다.For example, you can define a variable with this formula:

Set( Radius, 12 )

간단히 사용할 수 있습니다 Radius 숫자를 사용할 수 있습니다를 사용 하 여 바뀝니다 어디 12:Then you can simply use Radius anywhere that you can use a number, and it will be replaced with 12:

Pi() * Power( Radius, 2 )

컨텍스트 변수 이름이 같은 전역 변수 또는 컬렉션을 제공 하는 경우 컨텍스트 변수가 우선 합니다.If you give a context variable the same name as a global variable or a collection, the context variable takes precedence. 그러나 참조할 수 있습니다 컬렉션 또는 전역 변수를 사용 하는 경우는 명확성 연산자 @[Radius] 합니다.However, you can still reference the global variable or collection if you use the disambiguation operator @[Radius].

컨텍스트 변수를 사용 합니다.Use a context variable

전역 변수 대신 컨텍스트 변수를 사용하여 계산기를 만드는 방법을 살펴보겠습니다.Let's look at how our adding machine would be created using a context variable instead of a global variable.

컨텍스트 변수의 작동 방식은 다음과 같습니다.How context variables work:

  • 암시적으로 설정 하 고 사용 하 여 컨텍스트 변수를 설정 합니다 UpdateContext 하거나 탐색 함수입니다.You implicitly establish and set context variables by using the UpdateContext or Navigate function. 앱을 시작 하는 경우 모든 컨텍스트 변수의 초기 값은 합니다.When the app starts, the initial value of all context variables is blank.
  • 레코드를 사용 하 여 상황에 맞는 변수를 업데이트합니다.You update context variables with records. 다른 프로그래밍 도구에서는 일반적으로 "x = 1"에서와 같이 할당에 "="를 사용합니다.In other programming tools, you commonly use "=" for assignment, as in "x = 1". 컨텍스트 변수를 사용 하 여 {x: 1} 대신 합니다.For context variables, use { x: 1 } instead. 컨텍스트 변수를 사용 하는 경우에 레코드 구문 없이 직접 해당 이름을 사용 합니다.When you use a context variable, use its name directly without the record syntax.
  • 사용 하는 경우에 컨텍스트 변수를 설정할 수 있습니다 합니다 Navigate 화면을 표시 하는 함수입니다.You can also set a context variable when you use the Navigate function to show a screen. 프로시저 또는 서브루틴,이 방법의 한 종류로 화면의 생각 되 면 다른 프로그래밍 도구에서 전달 하는 매개 변수를와 유사 합니다.If you think of a screen as a kind of procedure or subroutine, this approach resembles parameter passing in other programming tools.
  • Navigate 를 제외하고 컨텍스트 변수는 단일 화면의 컨텍스트로 제한되며, 여기에서 컨텍스트 변수의 이름을 얻습니다.Except for Navigate, context variables are limited to the context of a single screen, which is where they get their name. 이 컨텍스트 외부에서는 사용하거나 설정할 수 없습니다.You can't use or set them outside of this context.
  • 컨텍스트 변수에는 문자열, 숫자, 레코드 및 테이블을 포함한 모든 값이 포함될 수 있습니다.Context variables can hold any value, including strings, numbers, records, and tables.

컨텍스트 변수를 사용하여 계산기를 다시 빌드해 보겠습니다.Let's rebuild our adding machine by using a context variable:

  1. TextInput1이라는 텍스트 입력 컨트롤과 Button1Button2라는 두 개의 단추를 추가합니다.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Button1Text 속성을 "추가" 로 설정하고, Button2Text 속성을 "지우기" 로 설정합니다.Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. 사용자가 추가 단추를 선택할 때마다 누계를 업데이트하려면 OnSelect 속성을 다음 수식으로 설정합니다.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 } )

    이 수식은 단순히 있는지 여부를 설정 RunningTotal 때문에 숫자를 포함 하는 컨텍스트 변수를 + 연산자입니다.The mere existence of this formula establishes RunningTotal as a context variable that holds a number because of the + operator. 참조할 수 있습니다 RunningTotal 이 화면에서 아무 곳 이나 합니다.You can reference RunningTotal anywhere in this screen. 사용자가이 앱을 열 때마다 RunningTotal 의 초기 값은 합니다.Whenever the user opens this app, RunningTotal has an initial value of blank.

    사용자가 처음으로 추가 단추와 UpdateContext 실행 RunningTotal 값으로설정되어RunningTotal + TextInput1합니다.The first time that the user selects the Add button and UpdateContext runs, RunningTotal is set to the value RunningTotal + TextInput1.

    추가 단추의 OnSelect 속성

  4. 사용자가 지우기 단추를 선택할 때마다 누계를 0으로 설정하려면 OnSelect 속성을 다음 수식으로 설정합니다.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 수식을 사용 하 여는 UpdateContext ({RunningTotal: 0 } ).Again, UpdateContext is used with the formula UpdateContext( { RunningTotal: 0 } ).

    선택을 취소 단추의 OnSelect 속성

  5. 레이블 컨트롤을 추가하고 Text 속성을 RunningTotal로 설정합니다.Add a Label control, and set its Text property to RunningTotal.

    이 수식은 자동으로 다시 계산되며, 사용자가 선택하는 단추에 따라 변경될 때 사용자에게 RunningTotal 값을 표시합니다.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. 앱을 미리 보면 위에서 설명한 대로 계산기가 있습니다.Preview the app and we have our adding machine as described above. 텍스트 상자에서 숫자를 입력하고 추가 단추를 몇 번 누릅니다.Enter a number in the text box and press the Add button a few times. 준비가 되면 Esc 키를 사용하여 제작 환경으로 돌아갑니다.When ready, return to the authoring experience using the Esc key.

    텍스트 입력 컨트롤에는 값을 표시 및 레이블은 총 실행 표시

  7. 화면을 이동하면서 컨텍스트 변수의 값을 설정할 수 있습니다.You can set the value of a context variable while navigating to a screen. 이 경우 한 화면에서 다른 화면으로 "컨텍스트" 또는 "매개 변수"를 전달할 때 유용합니다.This is useful for passing "context" or "parameters" from one screen to another. 이 기법을 보여 주기 위해 화면을 삽입, 단추를 삽입 하 고 설정 해당 OnSelect 속성을 다음이 수식:To 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 속성

    모두 표시 하려면이 단추를 선택 하는 동안에 Alt 키를 눌러 Screen1 컨텍스트 변수를 설정 하 고 RunningTotal -1000입니다.Hold down the Alt key while you select this button to both show Screen1 and set the context variable RunningTotal to -1000.

    Screen1 열려 있습니다.

  8. 컨텍스트 변수의 값을 표시 하려면 선택 합니다 파일 메뉴를 선택한 후 변수 왼쪽 창에서.To show the value of the context variable, select the File menu, and then select Variables in the left-hand pane.

    파일 메뉴에서 변수 옵션

  9. 컨텍스트 변수가 정의 되 고 사용 되는 위치를 표시 하려면 선택 합니다.To show where the context variable is defined and used, select it.

    변수를 사용 하는 목록

컬렉션 사용Use a collection

마지막으로 컬렉션을 사용하여 계산기를 만드는 방법을 살펴보겠습니다.Finally, let's look at creating our adding machine with a collection. 컬렉션에는 수정하기 쉬운 테이블이 있으므로 이 계산기에서는 "종이 테이프"의 각 값이 입력되는 대로 유지하게 됩니다.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.

컬렉션의 작동 방식은 다음과 같습니다.How collections work:

  • ClearCollect 함수를 사용하여 컬렉션을 만들고 설정합니다.Create and set collections by using the ClearCollect function. Collect 함수를 대신 사용할 수 있지만, 실질적으로 이전 변수를 바꾸는 대신 다른 변수가 필요합니다.You can use the Collect function instead, but it will effectively require another variable instead of replacing the old one.
  • 컬렉션은 일종의 데이터 원본이며, 따라서 테이블입니다.A collection is a kind of data source and, therefore, a table. 컬렉션의 단일 값에 액세스하려면 First 함수를 사용하고 결과 레코드에서 하나의 필드를 추출합니다.To access a single value in a collection, use the First function, and extract one field from the resulting record. ClearCollect 에서 단일 값을 사용한 경우 이 예제와 같이 Value 필드가 됩니다.If you used a single value with ClearCollect, this will be the Value field, as in this example:
    First( VariableName ).ValueFirst( VariableName ).Value

컬렉션을 사용하여 계산기를 다시 만들어 보겠습니다.Let's recreate our adding machine by using a collection:

  1. TextInput1이라는 텍스트 입력 컨트롤과 Button1Button2라는 두 개의 단추를 추가합니다.Add a Text input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Button1Text 속성을 "추가" 로 설정하고 Button2Text 속성을 "지우기" 로 설정합니다.Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. 사용자가 추가 단추를 선택할 때마다 누계를 업데이트하려면 OnSelect 속성을 다음 수식으로 설정합니다.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 )

    이 수식은 단순히 있는지 여부를 설정 PaperTape 텍스트 문자열의 단일 열 테이블을 포함 하는 컬렉션으로 합니다.The mere existence of this formula establishes PaperTape as a collection that holds a single-column table of text strings. 참조할 수 있습니다 PaperTape 이 앱에서 아무 곳 이나 합니다.You can reference PaperTape anywhere in this app. 사용자가이 앱을 열 때마다 PaperTape 빈 테이블입니다.Whenever a user opens this app, PaperTape is an empty table.

    이 수식은 실행 될 때 컬렉션의 끝에 새 값을 추가 합니다.When this formula runs, it adds the new value to the end of the collection. 단일 값을 추가 하는 것 때문 수집 자동으로 단일 열 테이블에 배치 고 열 이름은 , 나중에 사용할 수 있습니다.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 속성

  4. 선택할 때 ' 종이 테이프 '를 선택 취소 합니다 지우기 단추를 설정 해당 OnSelect 속성을 다음이 수식:To clear the paper tape when the user selects the Clear button, set its OnSelect property to this formula:

    Clear( PaperTape )Clear( PaperTape )

    선택을 취소 단추의 OnSelect 속성

  5. 누계를 표시하려면 레이블을 추가하고, Text 속성을 다음 수식으로 설정합니다.To display the running total, add a label, and set its Text property to this formula:

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

    레이블의 텍스트 속성

  6. 계산기를 실행하려면 F5 키를 눌러 미리 보기를 열고, 텍스트 입력 컨트롤에 숫자를 입력한 다음, 단추를 선택합니다.To run the adding machine, press F5 to open Preview, enter numbers in the text-input control, and select buttons.

    텍스트 입력된 컨트롤 값 및 레이블 표시 누계를 보여 줍니다.

  7. 기본 작업 영역으로 돌아가려면 Esc 키를 누릅니다.To return to the default workspace, press the Esc key.

  8. '종이 테이프'를 표시하려면 데이터 테이블 컨트롤을 삽입하고, Items 속성을 다음 수식으로 설정합니다.To display the paper tape, insert a Data table control, and set its Items property to this formula:

    PaperTapePaperTape

    오른쪽 창에서 선택 합니다 열을 표시 합니다.In the right-hand pane, select the Value column to show it.

    컬렉션에 추가 값을 보여 주는 데이터 테이블

  9. 컬렉션의 값을 확인하려면 파일 메뉴에서 컬렉션을 선택합니다.To see the values in your collection, select Collections on the File menu.

    PaperTape 컬렉션의 미리 보기

  10. 저장 하 고 검색 컬렉션에 두 개의 추가 단추 컨트롤을 추가 하 고 설정 자신의 텍스트 속성을 부하 하 고 저장합니다.To store and retrieve your collection, add two additional button controls, and set their Text properties to Load and Save. 설정 된 OnSelect 의 속성을 부하 을 다음이 수식으로 단추:Set the OnSelect property of the Load button to this formula:

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

    때문에 컬렉션을 먼저 선택 취소 해야 할 LoadData 저장 된 값 컬렉션의 끝에 추가 됩니다.You need to clear the collection first because LoadData will append the stored values to the end of the collection.

    부하 단추의 OnSelect 속성

  11. 설정 된 OnSelect 의 속성을 저장 을 다음이 수식으로 단추:Set the OnSelect property of the Save button to this formula:

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

    저장 단추의 OnSelect * 속성

  12. F5 키를 눌러 다시 한 번 미리 보고, 텍스트 입력 컨트롤에서 숫자를 입력하고, 단추를 선택합니다.Preview again by pressing the F5 key, enter numbers in the text-input control, and select buttons. 저장 단추를 선택합니다.Select the Save button. 닫고 앱을 다시 로드 하 고 선택 합니다 부하 컬렉션을 다시 로드 하려면 단추입니다.Close and reload the app, and select the Load button to reload your collection.

참고

SaveData 하 고 LoadData PowerApps Mobile 있지만 PowerApps Studio 또는 PowerApps에 대 한 웹 플레이어의 함수입니다.SaveData and LoadData function in PowerApps Mobile but not PowerApps Studio or the web player for PowerApps.