PowerApps'teki değişkenleri anlamaUnderstand variables in PowerApps

Daha önce Visual Basic veya JavaScript gibi başka bir programlama aracı kullandıysanız şu soruyu soruyor olabilirsiniz: Değişkenler nereye gitti?If you've used another programming tool, such as Visual Basic or JavaScript, you may be asking: Where are the variables? PowerApps biraz farklıdır ve farklı bir yaklaşım gerektirir.PowerApps is a little different and requires a different approach. Bir değişkene erişmeye çalışmak yerine kendinize şunu sorun: Excel'de olsaydım ne yapardım?Instead of reaching for a variable, ask yourself: What would I do in Excel?

Diğer araçlarla çalışırken doğrudan hesaplamalar gerçekleştirip sonucu bir değişken olarak almış olabilirsiniz.In other tools, you may have explicitly performed a calculation and stored the result in a variable. Ancak PowerApps ve Excel, giriş verisi değiştikçe formülleri otomatik olarak yeniden hesaplar; böylece genellikle değişkenler oluşturmanız veya bunları güncelleştirmeniz gerekmez.However, PowerApps and Excel both automatically recalculate formulas as the input data changes, so you usually don't need to create and update variables. Mümkün olduğunda bu yaklaşımı tercih ederek, uygulamanızı daha kolay bir şekilde oluşturabilir, anlayabilir ve koruyabilirsiniz.By taking this approach whenever possible, you can more easily create, understand, and maintain your app.

Excel'in modelini davranış formülleri ile genişleten PowerApps'te bazı durumlarda değişkenleri kullanmanız gerekir.In some cases, you'll need to use variables in PowerApps, which extends Excel's model by adding behavior formulas. Bu formüller, bir kullanıcının düğme seçmesi gibi durumlarda çalıştırılır.These formulas run when, for example, a user selects a button. Bir davranış formülünde, diğer formüllerde kullanılacak bir değişken ayarlamak genellikle işe yarar.Within a behavior formula, it's often helpful to set a variable to be used in other formulas.

Genel olarak, değişkenleri kullanmaktan kaçının.In general, avoid using variables. Ancak bazı durumlarda yalnızca bir değişken, istediğiniz deneyimi sunmanıza olanak sağlayabilir.But sometimes only a variable can enable the experience you want.

Excel'i PowerApps'e dönüştürmeTranslate Excel into PowerApps

ExcelExcel

Excel'in nasıl çalıştığını gözden geçirelim.Let's review how Excel works. Hücreler sayı veya dize gibi bir değer ya da başka hücrelerin değerlerine göre değişen bir formül içerebilir.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. Kullanıcı bir hücreye farklı bir değer girdikten sonra Excel, yeni değere göre değişen tüm formülleri otomatik olarak yeniden hesaplar.After the user enters a different value into a cell, Excel automatically recalculates any formulas that depend on the new value. Bu davranıştan faydalanabilmek için programlama yapmanız gerekmez.You don't have to do any programming to enable this behavior.

Excel değişken içermez.Excel doesn't have variables. Formül içeren bir hücrenin değeri hücredeki girişe göre değişir ancak bir formülün sonucunun hatırlanması ve bir hücrede veya başka bir yerde saklanması mümkün değildir.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. Bir hücrenin değerini değiştirirseniz tüm elektronik tablo değişebilir ve daha önce hesaplanan değerler kaybedilir.If you change a cell's value, the entire spreadsheet may change, and any previously calculated values are lost. Bir Excel kullanıcısı hücreleri kopyalayıp yapıştırabilir ancak bu işlemler formüllerle değil, kullanıcı tarafından elle gerçekleştirilir.An Excel user can copy and paste cells, but that's under the user's manual control and isn't possible with formulas.

PowerApp'lerPowerApps

PowerApps'te oluşturduğunuz uygulamalar Excel ile oldukça benzer bir şekilde davranış gösterir.Apps that you create in PowerApps behave very much like Excel. Hücreleri güncelleştirmek yerine bir ekranın istediğiniz kısımlarına denetimler ekleyebilir ve bunları formüllerde kullanmak üzere adlandırabilirsiniz.Instead of updating cells, you can add controls wherever you want on a screen and name them for use in formulas.

Örneğin, TextBox1 adında bir Etiket denetiminin yanı sıra TextInput1 ve TextInput2 adlarında iki Metin girişi denetimi ekleyerek Excel davranışını bir uygulamada oluşturabilirsiniz.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. Ardından, TextBox1 denetiminin Text özelliğini TextInput1 + TextInput2 olarak ayarlarsanız her zaman TextInput1 ve TextInput2 denetimlerinde bulunan sayıların toplamına ulaşırsınız.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.

TextBox1 denetiminin seçili olduğuna ve ekranın üst kısmındaki formül çubuğunda Text formülünün gösterildiğine dikkat edin.Notice that the TextBox1 control is selected, showing its Text formula in the formula bar at the top of the screen. Burada TextInput1 + TextInput2 formülünü görürüz.Here we find the formula TextInput1 + TextInput2. Bu formül, söz konusu denetimler arasında tıpkı Excel çalışma kitaplarında bulunan hücreler arasındaki gibi bir bağımlılık oluşturur.This formula creates a dependency between these controls, just as dependencies are created between cells in an Excel workbook. TextInput1 denetiminin değerini değiştirelim:Let's change the value of the TextInput1:

TextBox1 denetimine ilişkin formül yeni değeri gösterecek şekilde otomatik olarak yeniden hesaplanır.The formula for TextBox1 has been automatically recalculated, showing the new value.

PowerApps'te yalnızca bir denetimin birincil değerini değil, aynı zamanda biçimlendirme gibi özellikleri belirlemek için de formülleri kullanabilirsiniz.In PowerApps, you can use formulas to determine not only the primary value of a control but also properties such as formatting. Sıradaki örnekte, etiketin Color özelliğine ilişkin bir formül negatif değerleri otomatik olarak kırmızı renkte gösterir.In the next example, a formula for the Color property of the label will automatically show negative values in red. If, büyük olasılıkla Excel'den aşina olduğunuz bir işlevdir:The If function should look very familiar from Excel:
If( Value(TextBox1.Text) < 0, Red, Black )If( Value(TextBox1.Text) < 0, Red, Black )

Artık TextBox1.Text içindeki hesaplamamızın sonucu negatifse sayı kırmızı renkte gösterilir:Now, if the result of our calculation in TextBox1.Text is negative, the number will be shown in red:

Formülleri çok çeşitli senaryolar için kullanabilirsiniz:You can use formulas for a wide variety of scenarios:

  • Cihazınızın GPS'ini kullanarak, Location.Latitude ve Location.Longitude özelliklerinin kullanıldığı bir formülle bir harita denetimin geçerli konumunuzu görüntülemesine olanak sağlayabilirsiniz.By using your device's GPS, a map control can display your current location with a formula that uses Location.Latitude and Location.Longitude. Siz hareket ettikçe harita, konumunuzu otomatik olarak izler.As you move, the map will automatically track your location.
  • Diğer kullanıcılar veri kaynaklarını güncelleştirebilir.Other users can update data sources. Örneğin, ekibinizdeki diğer kişiler bir SharePoint listesindeki öğeleri güncelleştirebilir.For example, others on your team might update items in a SharePoint list. Bir veri kaynağı yenilediğinizde tüm bağımlı formüller, güncelleştirilmiş verileri yansıtacak şekilde otomatik olarak yeniden hesaplanır.When you refresh a data source, any dependent formulas are automatically recalculated to reflect the updated data. Örneği genişletmek gerekirse bir galerinin Items özelliğini Filter( SharePointList ) formülü olarak ayarlayabilir; böylece, yeni filtrelenmiş kayıt kümesinin otomatik olarak görüntülenmesini sağlayabilirsiniz.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.

AvantajlarBenefits

Uygulama oluşturmak için formül kullanmak birçok avantaj sunar:Using formulas to build apps has many advantages:

  • Excel'i kullanmayı biliyorsanız PowerApps'i de kullanmayı biliyorsunuz demektir.If you know Excel, you know PowerApps. Model ve formül dili aynıdır.The model and formula language are the same.
  • Daha önce başka programlama araçları kullandıysanız bu örnekleri gerçeğe dönüştürmek için ne kadar kod kullanmanız gerekeceği hakkında düşünün.If you've used other programming tools, think about how much code would be required to accomplish these examples. Visual Basic'te, her bir metin girişi denetimindeki değişiklik olayı için olay işleyicisi yazmanız gerekirdi.In Visual Basic, you'd need to write an event handler for the change event on each text-input control. Bunların her birinde söz konusu hesaplamayı gerçekleştirmeye yönelik kod gereksizdir ve eşitleme sağlanamayabilir veya ortak bir alt yordam yazmanız gerekir.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'te söz konusu işlemlerin tümünü tek satırlık bir formülle gerçekleştirebilirsiniz.In PowerApps, you accomplished all of that with a single, one-line formula.
  • TextBox1 metninin kaynağını anlamak için nereye bakmanız gerektiğini tam olarak biliyorsunuz: Text özelliğindeki formül.To understand where TextBox1's text is coming from, you know exactly where to look: the formula in the Text property. Bu denetimin metni başka hiçbir şeyden etkilenmez.There's no other way to affect the text of this control. Geleneksel bir programlama aracında, etiketin değeri, olay işleyicileri veya alt yordamlar ile programın herhangi bir bölümünden değiştirilebilir.In a traditional programming tool, any event handler or subroutine could change the value of the label, from anywhere in the program. Bu, bir değişkenin ne zaman ve nerede değiştirildiğinin izlenmesini zorlaştırabilir.This can make it hard to track down when and where a variable was changed.
  • Kullanıcı önce bir kaydırıcı denetimini daha sonra da fikrini değiştirirse kaydırıcıyı özgün değerine döndürebilir.If the user changes a slider control and then changes their mind, they can change the slider back to its original value. Üstelik her şey aynı kalır: Uygulama tıpkı önceden olduğu gibi aynı denetim değerlerini gösterir.And it's as if nothing had ever changed: the app shows the same control values as it did before. Tıpkı Excel'deki gibi, deneme yapılmasında ve "varsayalım" ifadesinin kullanılmasında herhangi bir sakınca yoktur.There are no ramifications for experimenting and asking "what if," just as there are none in Excel.

Genel olarak, bir etkiyi formül kullanarak oluşturmakta yarar vardır.In general, if you can achieve an effect by using a formula, you'll be better off. PowerApps'teki formül motorundan en iyi şekilde faydalanın.Let the formula engine in PowerApps work for you.

Değişkenlerin ne zaman kullanılacağını bilmeKnow when to use variables

Basit ekleyicimizi, değişen toplam ile eski moda bir ekleme makinesi gibi davranacak şekilde değiştirelim.Let's change our simple adder to act like an old-fashioned adding machine, with a running total. Bir Add düğmesini seçerseniz değişen toplama bir sayı eklersiniz.If you select an Add button, you'll add a number to the running total. Bir Clear düğmesini seçerseniz değişen toplamı sıfırlarsınız.If you select a Clear button, you'll reset the running total to zero.

Ekleme makinemizde Excel'de bulunmayan bir şey kullanılır: düğme.Our adding machine uses something that doesn't exist in Excel: a button. Toplam değer kullanıcının gerçekleştirdiği bir dizi eyleme bağlı olduğundan bu uygulamada, değişen toplamı hesaplamak için yalnızca formülleri kullanamazsınız.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. Bunun yerine, değişen toplamımızın elle kaydedilmesi ve güncelleştirilmesi gerekir.Instead, our running total must be recorded and updated manually. Çoğu programlama aracında bu bilgiler bir değişkende depolanır.Most programming tools store this information in a variable.

Bazen uygulamanızın istediğiniz şekilde davranmasını sağlamak için bir değişkene ihtiyaç duyarsınız.You'll sometimes need a variable for your app to behave the way you want. Ancak bu yaklaşımın benimsenmesi konusunda dikkat edilmesi gereken noktalar vardır:But the approach comes with caveats:

  • Değişen toplamı elle güncelleştirmeniz gerekir.You must manually update the running total. Bu işlemler için otomatik yeniden hesaplamadan yararlanamazsınız.Automatic recalculation won't do it for you.
  • Değişen toplam artık diğer denetimlerin değerleri temel alınarak hesaplanamaz.The running total can no longer be calculated based on the values of other controls. Değişen toplam, kullanıcının Add düğmesini kaç kez seçtiğine ve metin girişi denetiminde hangi değerin yer aldığına göre her seferinde değişir.It depends on how many times the user selected the Add button and what value was in the text-input control each time. Kullanıcı 77 değerini girip Add düğmesini iki kez mi seçti, yoksa toplanması için 24 ve 130 değerlerini mi belirtti?Did the user enter 77 and select Add twice, or did they specify 24 and 130 for each of the additions? Toplam 154 değerine ulaştıktan sonra bunu ayırt etmeniz mümkün değildir.You can't tell the difference after the total has reached 154.
  • Toplam değere ilişkin değişiklikler farklı noktalardan kaynaklanıyor olabilir.Changes to the total can come from different paths. Bu örnekte, Add ve Clear düğmelerinin her ikisi de toplamı güncelleştirebilir.In this example, both the Add and Clear buttons can update the total. Uygulama beklediğiniz gibi davranmıyorsa sorun hangi düğmeden kaynaklanıyor olabilir?If the app doesn't behave the way you expect, which button is causing the problem?

Genel değişken oluşturmaCreate a global variable

Ekleme makinemizi oluşturmak için, değişen toplamın bulunacağı bir değişkene ihtiyacımız vardır.To create our adding machine, we require a variable to hold the running total. PowerApps'te kullanılabilecek en basit değişkenler genel değişkenlerdir.The simplest variables to work with in PowerApps are global variables.

Genel değişkenler şu şekilde çalışır:How global variables work:

  • Genel değişkenin değerini Set işleviyle ayarlarsınız.You set the value of the global variable with the Set function. Set( MyVar, 1 ), MyVar genel değişkeninin değerini 1 olarak ayarlar.Set( MyVar, 1 ) sets the global variable MyVar to a value of 1.
  • Genel değişkeni, Set işleviyle kullanılan ada başvurarak kullanırsınız.You use the global variable by referencing the name used with the Set function. Bu durumda MyVar, 1 değerini döndürür.In this case, MyVar will return 1.
  • Genel değişkenler dizeler, sayılar, kayıtlar ve tablolar gibi herhangi bir değere sahip olabilir.Global variables can hold any value, including strings, numbers, records, and tables.

Genel değişken kullanarak, ekleme makinemizi yeniden oluşturalım:Let's rebuild our adding machine by using a global variable:

  1. TextInput1 adlı bir metin girişi denetiminin yanı sıra Button1 ve Button2 adlarında iki düğme ekleyin.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Button1 düğmesinin Text özelliğini "Add" olarak, Button2 düğmesinin Text özelliğini ise "Clear" olarak ayarlayın.Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Değişen toplamı, bir kullanıcının Add düğmesini her seçişinde güncelleştirmek için söz konusu düğmenin OnSelect özelliğini şu formül olarak ayarlayın: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 )

    Bir kullanıcı Add düğmesini ilk kez seçtiğinde ve Set işlevi çağrıldığında RunningTotal, varsayılan boş değerle oluşturulur.The first time a user selects the Add button and Set is called, RunningTotal is created with a default value of blank. Toplamada ise sıfır olarak değerlendirilir.In the addition, it will be treated as a zero.

  4. Değişen toplamı, bir kullanıcının Clear düğmesini her seçişinde 0 olarak ayarlamak için düğmenin OnSelect özelliğini şu formül olarak ayarlayın: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. Bir Etiket denetimi ekleyin ve Text özelliğini RunningTotal olarak ayarlayın.Add a Label control, and set its Text property to RunningTotal.

    Bu formül otomatik olarak yeniden hesaplanır ve kullanıcıya, seçtiği düğmeye bağlı olarak değişen RunningTotal değerini gösterir.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. Uygulamayı önizlediğinizde yukarıda açıklanan şekliyle ekleme makinemizi görürsünüz.Preview the app, and we have our adding machine as described above. Metin kutusuna bir sayı girin ve Add düğmesine birkaç kez basın.Enter a number in the text box and press the Add button a few times. Hazır olduğunuzda Esc tuşunu kullanarak, yazma deneyimine dönün.When ready, return to the authoring experience using the Esc key.

  7. Genel değişkenimizin değerini görmek için Dosya menüsünü seçin ve ardından sol bölmedeki Değişkenler seçeneğini belirleyin.To see our global variable's value, select the File menu and select Variables in the left hand pane.

  8. Değişkenimizin nerede tanımlandığını ve kullanıldığını görmek için değişkeni seçin.To see all the places where our variable is defined and used, select it.

Değişken türleriTypes of variables

PowerApps'te üç değişken türü bulunur:There are three types of variables in PowerApps:

Değişken türüVariables type KapsamScope AçıklamaDescription İşlevlerFunctions
Genel değişkenlerGlobal variables UygulamaApp En kolay kullanım.Simplest to use. Uygulamanın herhangi bir yerinden başvurulabilen sayı, metin dizesi, Boole, kayıt ve tablo gibi bir değere sahiptir.Holds a number, text string, Boolean, record, table, etc. that can be references from anywhere in the app. SetSet
Bağlam değişkenleriContext variables EkranScreen Parametreleri, başka dillerdeki bir yordama geçirmeye benzer şekilde; bir ekrana değerler geçirmek için harikadır.Great for passing values to a screen, much like parameters to a procedure in other languages. Yalnızca tek bir ekrandan başvurulabilir.Can only be referenced from one screen. UpdateContextUpdateContext
NavigateNavigate
KoleksiyonlarCollections UygulamaApp Uygulamanın herhangi bir yerinden başvurulabilen bir tablo barındırır.Holds a table that can be references from anywhere in the app. Tablo içeriğinin bir bütün olarak ayarlanmak yerine değiştirilmesine izin verir.Allows the contents of the table to be modified rather than being set as a whole. Daha sonra kullanılmak üzere yerel cihaza kaydedilebilir.Can be saved to the local device for later use. CollectCollect
ClearCollectClearCollect
PatchPatch
UpdateUpdate
RemoveRemove
SaveDataSaveData
LoadDataLoadData
vb.etc.

Set, UpdateContext, Navigate veya Collect işlevleriyle kullanıldığında tüm değişkenler örtük olarak oluşturulur.All variables are created implicitly when used in Set, UpdateContext, Navigate, or Collect functions. Diğer programlama araçlarında olduğu gibi açık bir değişken bildirimi sunulmaz.There is no explicit declaration of variables as is done in other programming tools. Değişken türleri de içlerinde bulunan değerlerden örtük olarak elde edilir.The types of the variables are also derived implicitly from the values that are placed in them.

Tüm değişkenler uygulama çalışırken bellekte tutulur.All variables are held in memory while the app is running. Uygulama kapatıldıktan sonra, değişkenlerde barındırılan değerler kaybedilir.After the app closes, the values held in the variables are lost. Patch veya Collect işlevini kullanarak değişkenlerin içeriğini bir Veri Kaynağında depolayabilirsiniz veya koleksiyonlarla çalışıyorsanız içeriği yerel cihaza kaydetmek için SaveData işlevini kullanabilirsiniz.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. Uygulama ilk kez yüklendiğinde tüm değişkenler boş değere sahip olur.When the app is first loaded, all variables will have the blank value.

Değerlerini okumak için değişken adlarını kullanırsınız.You use the variables name to read its value. Örneğin, Set( MyColor, Red ) ile tanımlandıktan sonra MyVar genel değişkenini, bir renk değerinin kullanılabildiği herhangi bir yerde kullanabilir ve değerin Red ile değiştirilmesini sağlayabilirsiniz.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. Bir bağlam değişkeniyle aynı ada sahip bir genel değişken veya koleksiyon bulundurabilirsiniz.It is possible to have a global variable or collection with the same name as a context variable. Böyle bir durumda, bağlam değişkeni öncelikli olur.In this case, the context variable will take precedence. Yine de @[MyColor] kesinleştirme işlecini kullanarak genel değişkene veya koleksiyona başvurabilirsiniz.You can still reference the global variable or collection using the disambiguation operator @[MyColor].

Bağlam değişkeni oluşturmaCreate a context variable

Ekleme makinemizin genel değişken yerine bağlam değişkeni kullanılarak nasıl oluşturulacağına göz atalım.Let's look at how our adding machine would be created using a context variable instead of a global variable.

Bağlam değişkenleri şu şekilde çalışır:How context variables work:

  • Bağlam değişkenlerini UpdateContext işlevini kullanarak oluşturur ve ayarlarsınız.You create and set context variables by using the UpdateContext function. Bir bağlam değişkeni ilk güncelleştirme sırasında mevcut değilse varsayılan boş değerle oluşturulur.If a context variable doesn't already exist when first updated, it will be created with a default value of blank.
  • Bağlam değişkenlerini kayıtlarla oluşturur ve güncelleştirirsiniz.You create and update context variables with records. Diğer programlama araçlarında, atama için yaygın olarak "=" ("x = 1" gibi) kullanırsınız.In other programming tools, you commonly use "=" for assignment, as in "x = 1". Bağlam değişkenleri için bunun yerine { x: 1 } kullanın.For context variables, use { x: 1 } instead. Bir bağlam değişkenini kullanırken doğrudan değişkenin adını kullanın.When you use a context variable, use its name directly.
  • Navigate işlevini kullanarak bağlam değişkenlerini bir ekran görüntülendiğinde de ayarlayabilirsiniz.You can also set a context variable when a screen is displayed, by using the Navigate function. Ekranları bir yordam veya alt yordam olarak düşünürseniz bu, diğer programlama araçlarındaki parametre geçirme işlemine benzerdir.If you think of a screen as a kind of procedure or subroutine, this is similar to parameter passing in other programming tools.
  • Navigate işlevi hariç tutulmak üzere, bağlam değişkenleri, tek bir ekranın (adlandırıldıkları yer) bağlamıyla sınırlıdır.Except for Navigate, context variables are limited to the context of a single screen, which is where they get their name. Bağlam değişkenlerini bu bağlam dışında kullanamaz veya ayarlayamazsınız.You can't use or set them outside of this context.
  • Bağlam değişkenleri dizeler, sayılar, kayıtlar ve tablolar da dahil olmak üzere herhangi bir değere sahip olabilir.Context variables can hold any value, including strings, numbers, records, and tables.

Bağlam değişkeni kullanarak, ekleme makinemizi yeniden oluşturalım:Let's rebuild our adding machine by using a context variable:

  1. TextInput1 adlı bir metin girişi denetiminin yanı sıra Button1 ve Button2 adlarında iki düğme ekleyin.Add a text-input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Button1 düğmesinin Text özelliğini "Add" olarak, Button2 düğmesinin Text özelliğini ise "Clear" olarak ayarlayın.Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Değişen toplamı, bir kullanıcının Add düğmesini her seçişinde güncelleştirmek için söz konusu düğmenin OnSelect özelliğini şu formül olarak ayarlayın: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 } )

    Bir kullanıcı Add düğmesini ilk kez seçtiğinde ve UpdateContext işlevi çağrıldığında RunningTotal, varsayılan boş değerle oluşturulur.The first time a user selects the Add button and UpdateContext is called, RunningTotal is created with a default value of blank. Toplamada ise sıfır olarak değerlendirilir.In the addition, it will be treated as a zero.

  4. Değişen toplamı, bir kullanıcının Clear düğmesini her seçişinde 0 olarak ayarlamak için düğmenin OnSelect özelliğini şu formül olarak ayarlayın: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 } )

    Daha önce olduğu gibi, UpdateContext işlevi UpdateContext( { RunningTotal: 0 } ) formülüyle kullanılmıştır.Again, UpdateContext is used with the formula UpdateContext( { RunningTotal: 0 } ).

  5. Bir Etiket denetimi ekleyin ve Text özelliğini RunningTotal olarak ayarlayın.Add a Label control, and set its Text property to RunningTotal.

    Bu formül otomatik olarak yeniden hesaplanır ve kullanıcıya, seçtiği düğmeye bağlı olarak değişen RunningTotal değerini gösterir.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. Uygulamayı önizlediğinizde, yukarıda açıklanan şekliyle ekleme makinemizi görürsünüz.Preview the app and we have our adding machine as described above. Metin kutusuna bir sayı girin ve Add düğmesine birkaç kez basın.Enter a number in the text box and press the Add button a few timnes. Hazır olduğunuzda Esc tuşunu kullanarak, yazma deneyimine dönün.When ready, return to the authoring experience using the Esc key.

  7. Bir ekrana giderken bağlam değişkeninin değerini ayarlayabilirsiniz.You can set the value of a context variable while navigating to a screen. Bu, bir ekrandan diğerine "bağlam" veya "parametre" geçirmek için kullanışlıdır.This is useful for passing "context" or "parameters" from one screen to another. Bunu görmek için yeni bir ekran ve düğme ekleyin, ardından düğmenin OnSelect özelliği şu formül olarak ayarlayın: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 } )

    Screen2 ekranında bu düğme seçildiğinde (sonlara doğru seçmeniz halinde yazma sırasında gerçekleştirebilirsiniz) Screen1 ekranı gösterilir ve RunningTotal bağlam değişkeni -1000 olarak ayarlanır.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. Bağlam değişkenimizin değerini görmek için Dosya menüsünü seçin ve ardından sol bölmedeki Değişkenler seçeneğini belirleyin.To see our context variable's value, select the File menu and select Variables in the left hand pane.

  9. Bağlam değişkeninizin nerede tanımlandığını ve kullanıldığını görmek için değişkeni seçin.To see where your context variable is defined and used, select it.

Koleksiyon oluşturunCreate a collection

Son olarak, ekleme makinemizi bir koleksiyonla oluşturma işlemine göz atalım.Finally, let's look at creating our adding machine with a collection. Koleksiyonlar değiştirilmesi kolay tablolar içerdiğinden bu ekleme makinesinin, her değer girildiğinde söz konusu değerlere ilişkin bir "paper tape" (kağıt bant) tutmasını sağlayacağız.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.

Koleksiyonlar şu şekilde çalışır:How collections work:

  • Koleksiyonları oluşturmak ve ayarlamak için ClearCollect işlevini kullanın.Create and set collections by using the ClearCollect function. Bunun yerine Collect işlevini de kullanabilirsiniz ancak bu durumda eski değişkenin değiştirilmesi yerine etkin olarak başka bir değişken gerekir.You can use the Collect function instead, but it will effectively require another variable instead of replacing the old one.
  • Koleksiyonlar bir tür veri kaynağıdır ve bu nedenle tablodur.A collection is a kind of data source and, therefore, a table. Bir koleksiyondaki tek bir değere erişmek için First işlevini kullanın ve elde edilen kayıttaki bir alanı ayıklayın.To access a single value in a collection, use the First function, and extract one field from the resulting record. ClearCollect ile tek bir değer kullandıysanız bu, aşağıdaki örnekteki gibi bir Value alanı olur:If you used a single value with ClearCollect, this will be the Value field, as in this example:
    First( DeğişkenAdı ).ValueFirst( VariableName ).Value

Bir koleksiyon kullanarak ekleme makinemizi yeniden oluşturalım:Let's recreate our adding machine by using a collection:

  1. TextInput1 adlı bir Metin girişi denetiminin yanı sıra Button1 ve Button2 adlarında iki düğme ekleyin.Add a Text input control, named TextInput1, and two buttons, named Button1 and Button2.

  2. Button1 düğmesinin Text özelliğini "Add" olarak, Button2 düğmesinin Text özelliğini ise "Clear" olarak ayarlayın.Set the Text property of Button1 to "Add", and set the Text property of Button2 to "Clear".

  3. Değişen toplamı, bir kullanıcının Add düğmesini her seçişinde güncelleştirmek için söz konusu düğmenin OnSelect özelliğini şu formül olarak ayarlayın: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 )

    Bu formül kullanıldığında yeni değer koleksiyonun sonuna eklenir.This formula will add the new value to the end of the collection. Tek bir değer eklediğimizden Collect işlevi bu değeri, daha sonra kullanacağımız Value adlı bir sütunu içeren tek sütunlu bir tabloya yerleştirir.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. Kullanıcı Clear düğmesini seçtiğinde kağıt bandımızın temizlenmesi için düğmenin OnSelect özelliğini şu formül olarak ayarlayın:To clear our paper tape when the user selects the Clear button, set its OnSelect property to this formula:

    Clear( PaperTape )Clear( PaperTape )

  5. Değişen toplamı görüntülemek için bir etiket ekleyin ve Text özelliğini şu formül olarak ayarlayın:To display the running total, add a label, and set its Text property to this formula:

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

  6. Ekleme makinesini çalıştırmak üzere Önizlemeyi açmak için F5 tuşuna basın, metin girişi denetimine sayılar girin ve düğmeleri seçin.To run the adding machine, press F5 to open Preview, enter numbers in the text-input control, and select buttons.

  7. Varsayılan çalışma alanına dönmek için Esc tuşuna basın.To return to the default workspace, press the Esc key.
  8. Kağıt bandı görüntülemek için bir Veri tablosu denetimi ekleyin ve Items özelliğini şu formül olarak ayarlayın:To display the paper tape, insert a Data table control, and set its Items property to this formula:

    PaperTapePaperTape

    Ayrıca, sağ bölmede gösterilecek sütunları da seçmeniz gerekir. Örneğimizde, Value sütununu gösterin:You will also need to select the columns to show in the right hand pane, in our case show the Value column:

  9. Koleksiyonunuzdaki değerleri görmek için Dosya menüsündeki Koleksiyonlar seçeneğini belirleyin.To see the values in your collection, select Collections on the File menu.

  10. Koleksiyonunuzu depolamaya ve almaya yönelik olarak iki düğme denetimi daha ekleyin ve metinlerini Load ile Save olarak ayarlayın.To store and retrieve your collection, add two additional button controls and set their text to Load and Save. Load düğme denetiminin OnSelect özelliğini şu formül olarak ayarlayın:For Load, set the OnSelect property to:

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

    LoadData işlevi, depolanan değerleri koleksiyonun sonuna ekleyeceğinden öncelikle koleksiyonu temizlememiz gerekir.We need to clear the collection first as LoadData will append the stored values to the end of the collection.

  11. Save düğme denetiminin OnSelect özelliğini şu formül olarak ayarlayın:For Save, set the OnSelect property to:

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

  12. F5 tuşuna basarak tekrar önizleme yapın, metin girişi denetimine sayılar girin ve düğmeleri seçin.Preview again by pressing the F5 key, enter numbers in the text-input control, and select buttons. Save düğmesini seçin.Select the Save button. Uygulamanızı kapatıp yeniden yükleyin ve koleksiyonlarınızı yeniden yüklemek için Load düğmesini seçin.Close and reload your app, and select the Load button to reload your collection.

    Not

    Bir web tarayıcısı kullanılıyorsa SaveData ve LoadData işlevleri çalışmaz.SaveData and LoadData do not function when running in a web browser. Windows'da yüklü stüdyoyu veya mobil cihazlara yönelik oynatıcılardan birini kullanmanız gerekir.You must be using the studio installed on Windows or one of the players for mobile devices.