If ve Switch işlevleri
Şunlar için geçerlidir: Tuval uygulamaları Dataverse formül sütunları Masaüstü akışları Model yönetimli uygulamalar Power Pages 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 çok benzer, ancak durumunuz için en iyi işlevi kullanmalısınız:
- 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 doğru değilse , eşleşme bulunamazsa ve varsayılan bir sonuç belirtmezseniz boşdöndürülür.
Sözdizimi
Eğer( Koşul,ThenResult [, VarsayılanSonuç ] )
Eğer( Koşul1,SonraSonuç1 [, Koşul2,SonraSonuç2 , ... [, VarsayılanSonuç ] ] )
- 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.
- ThenResults - 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.
Anahtar(Formül,Eşleştir1,Sonuç1 [, Eşleştir2,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 |
---|---|---|
Eğer( Kaydırıcı1.Değer = 25, "Sonuç1" ) | Koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür. | "Result1" |
Eğer( kaydırıcı1.değer = 25, "Sonuç1", "Sonuç2" ) | Koşul true şeklindedir ve buna karşılık gelen sonuç döndürülür. | "Result1" |
Eğer( kaydırıcı1.Değer > 1000, "Sonuç1" ) | Koşul false şeklindedir ve VarsayılanSonuç sağlanmamıştır. | boş |
Eğer( Kaydırıcı1.Değer > 1000, "Sonuç1", "Sonuç2" ) | Koşul false şeklindedir, bir VarsayılanSonuç sağlanmıştır ve bu döndürülür. | "Result2" |
If( kaydırıcı1.değer = 25, "sonuç1", kaydırıcı1.değer > 0, "sonuç2" ) | İ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" |
Eğer( kaydırıcı1.değer > 1000, "sonuç1", kaydırıcı1.değer > 50, "sonuç2", "sonuç3") | Hem birinci hem de ikinci koşul false şeklindedir, bir VarsayılanSonuç sağlanmıştır ve bu döndürülür. | "Result3" |
Anahtar( Kaydırıcı1.Değer, 25, "Sonuç1" ) | 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, "Sonuç1", 25, "Sonuç2", 30, "Sonuç3" ) | 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, "Sonuç1", 10, "Sonuç2", 0, "Sonuç3", "VarsayılanSonuç" ) | 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. | doğru 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. | doğru 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. | doğru Görünüm Screen3 olarak değiştirilir. |
Adım adım
Bir Text input denetimi ekleyin ve varsayılan olarak Text1 adına sahip değilse bu şekilde adlandırın.
Text1 içine 30 yazın.
Bir Label denetimi ekleyin ve Text özelliğini şu formüle ayarlayın:
If( Value(Text1.Text) < 20, "ÇOK daha fazla sipariş ver!", Value(Text1.Text) < 40, "Daha fazla sipariş ver!", Text1.Text )Label denetimi Order more! gösterir çünkü Text1 değeri 20'den fazla ancak 40'tan azdır.
Text1 içine 15 yazın.
Label denetimi Order MANY more! gösterir çünkü Text1 değeri 20'den azdır.
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.