Share via


If ve Switch işlevleri

Şunlar için geçerlidir: Tuval uygulamaları Dataverse formül sütunları Masaüstü akışları Model temelli uygulamalar Power Platform CLI

Herhangi bir koşulun true olarak ayarlanıp ayarlanmadığını (If) veya bir formülün sonucunun bir kümedeki herhangi bir değerle eşleşip eşleşmediğini (Switch) belirler ve ardından bir sonuç döndürür ya da bir eylem uygular.

Açıklama

If işlevi, true sonucu bulunana kadar bir veya birden çok koşulu test eder. Böyle bir sonuç bulunursa buna karşılık gelen bir değer döndürülür. Böyle bir sonuç bulunmazsa, varsayılan bir değer döndürülür. Her iki durumda da, döndürülen değer gösterilecek bir dize, değerlendirilecek bir formül veya diğer bir sonuç biçimi olabilir.

Switch işlevi bir formülü değerlendirir ve sonucun belirttiğiniz bir dizideki herhangi bir değerle eşleşip eşleşmediğini belirler. Eşleşme bulunursa buna karşılık gelen bir değer döndürülür. Eşleşme bulunmazsa, varsayılan bir değer döndürülür. Her iki durumda da, döndürülen değer gösterilecek bir dize, değerlendirilecek bir formül veya diğer bir sonuç biçimi olabilir.

If ve Switch birbirine oldukça benzer ancak kendi durumunuza en uygun işlevi kullanmanız gerekir:

  • Tek bir koşulu değerlendirmek için If işlevini kullanın. Bu işlev için en sık kullanılan sözdizimi şu şekildedir: If( Condition, ThenResult, DefaultResult ). Bu, diğer programlama araçlarında sıklıkla görülen “if … then … else …" desenini sağlar.
  • İlişkili olmayan birden çok koşulu değerlendirmek için If işlevini kullanın. Power Apps'te (Microsoft Excel'in aksine) If formüllerini iç içe yerleştirmenize gerek kalmadan birden çok işlev belirtebilirsiniz.
  • Birden çok olası eşleşme için tek bir koşulu değerlendirmek üzere Switch işlevini kullanın. Bu durumda If işlevini de kullanabilirsiniz ancak olası her eşleşme için formülü yinelemeniz gerekir.

İki veya daha fazla eylem arasında dal oluşturmak için davranış formüllerinde bu işlevlerden her ikisini de kullanabilirsiniz. Yalnızca bir dal, eylem tetikler. Koşullar sırayla değerlendirilir ve bir koşulun true olması veya bir eşleşmenin bulunması durumunda durdurulur.

Hiçbir koşul true olmazsa, eşleşme bulunmazsa ve varsayılan bir sonuç belirtmezseniz Boş değer döndürülür.

Sözdizimi

If( Condition, ThenResult [, DefaultResult ] )
If( Condition1, ThenResult1 [, Condition2, ThenResult2, ... [ , DefaultResult ] ] )

  • Koşullar: Gerekli. true için test edilecek formüller. Bu formüller genellikle karşılaştırma işleçleri (<, > ve = gibi) ve IsBlank ve IsEmpty gibi test işlevleri içerir.
  • ThenResult(s): Gerekli. true sonucunu veren bir koşul için döndürülecek ilgili değer.
  • DefaultResult - İsteğe bağlı. true değerini döndüren bir koşul olmaması halinde döndürülecek değer. Bu bağımsız değişkeni belirtmezseniz boş değer döndürülür.

Switch( Formül, Eşleşme1, Sonuç1 [, Eşleşme2, Sonuç2, ... [, VarsayılanSonuç ] ] )

  • Formül: Gerekli. Eşleşmeler için değerlendirilecek formül. Bu formül yalnızca bir kez değerlendirilir.
  • Eşleşmeler: Gerekli. Formül tarafından döndürülen sonuçla karşılaştırılacak değerler. Tam bir eşleşme bulunursa buna karşılık gelen Sonuç döndürülür.
  • Sonuçlar: Gerekli. Tam bir eşleşme bulunduğunda döndürülecek, buna karşılık gelen değer.
  • DefaultResult - İsteğe bağlı. Tam bir eşleşme bulunmazsa bu değer döndürülür. Bu bağımsız değişkeni belirtmezseniz boş değer döndürülür.

Örnekler

Formüllerdeki değerler

Aşağıdaki örneklerde bir Slider denetimi (Slider1 adında) 25 değerine sahiptir.

Formül Tanım Result
If( Slider1.Value = 25, "Result1" ) Koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür. "Result1"
If( Slider1.Value = 25, "Result1", "Result2" ) Koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür. "Result1"
If( Slider1.Value>1000, "Result1" ) Koşul false şeklindedir ve VarsayılanSonuç sağlanmamıştır. blank
If( Slider1.Value>1000, "Result1", "Result2" ) Koşul false şeklindedir, bir VarsayılanSonuç sağlanmıştır ve bu döndürülür. "Result2"
If( Slider1.Value = 25, "Result1", Slider1.Value > 0, "Result2" ) İlk koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür. İkinci koşul da true'dur ancak bağımsız değişken listesinde true değerini döndüren bir koşuldan daha sonra göründüğü için değerlendirilmez. "Result1"
If( IsBlank( Slider1.Value ), "Result1", IsNumeric( Slider1.Value ), "Result2" ) Kaydırıcı boş olmadığından ilk koşul false şeklindedir. Kaydırıcının değeri bir sayı olduğundan ikinci koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür. "Result2"
If( Slider1.Value>1000, "Result1", Slider1.Value>50, "Result2", "Result3") Hem birinci hem de ikinci koşul false şeklindedir, bir VarsayılanSonuç sağlanmıştır ve bu döndürülür. "Result3"
Switch( Slider1.Value, 25, "Result1" ) Kaydırıcının değeri, kontrol edilecek ilk değerle eşleşir ve buna karşılık gelen sonuç döndürülür. "Result1"
Switch( Slider1.Value, 20, "Result1", 25, "Result2", 30, "Result3" ) Kaydırıcının değeri, kontrol edilecek ikinci değerle eşleşir ve buna karşılık gelen sonuç döndürülür. "Result2"
Switch( Slider1.Value, 20, "Result1", 10, "Result2", 0, "Result3", "DefaultResult" ) Kaydırıcının değeri, kontrol edilecek herhangi bir değerle eşleşmez. Bir VarsayılanSonuç sağlanmıştır, bu nedenle bu döndürülür. "DefaultResult"

Davranış formüllerinde dal oluşturma

Bu örneklerde FirstName adlı bir Text input denetimi, denetimin içine yazılmış "John" değerine sahiptir.

Formül Açıklama Sonuç
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) Koşul true şeklindedir, bu nedenle Navigate işlevi çalıştırılır. Gerekli bir form alanının doldurulup doldurulmadığını test etmek için IsBlank işlevini kullanabilirsiniz. FirstName, blank ise bu formülün herhangi bir etkisi olmaz. true

Görünüm Screen1 olarak değiştirilir.
If( IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ), Back() ) ! işleci olmadan koşul false şeklindedir, bu nedenle Navigate işlevi çalıştırılmaz. Back işlevi VarsayılanSonuç olarak sağlanmıştır, bu nedenle çalıştırılır. true

Görünüm, daha önce gösterilen ekrana geri döner.
Switch( FirstName.Text, "Carlos", Navigate( Screen1, ScreenTransition.None ), "Kirstin", Navigate( Screen2, ScreenTransition.None ), "John", Navigate( Screen3, ScreenTransition.None ) ) FirstName.Text değeri sırasıyla "Carlos", "Kirstin" ve "John" ile karşılaştırılır. "John" ile eşleşme mevcuttur, bu nedenle uygulama Screen3 görünümüne gider. true

Görünüm Screen3 olarak değiştirilir.

Adım adım

  1. Bir Text input denetimi ekleyin ve varsayılan olarak Text1 adına sahip değilse bu şekilde adlandırın.

  2. Text1 içine 30 yazın.

  3. Bir Label denetimi ekleyin ve Text özelliğini şu formüle ayarlayın:
    If( Value(Text1.Text) < 20, "Order MANY more!", Value(Text1.Text) < 40, "Order more!", Text1.Text )

    Label denetimi Order more! gösterir çünkü Text1 değeri 20'den fazla ancak 40'tan azdır.

  4. Text1 içine 15 yazın.

    Label denetimi Order MANY more! gösterir çünkü Text1 değeri 20'den azdır.

  5. Text1 içine 50 yazın.

    Label denetimi, yazdığınız değeri gösterir. Bunun nedeni, 40'tan büyük olmasıdır.