مشاركة عبر


الدالتان If وSwitch

ينطبق على: أعمدة صيغة تطبيقات Dataverse اللوحة تدفقات سطح المكتب التطبيقات المستندة Power Pages Power Platform إلى النموذج CLI

تحديد ما إذا كان أي شرط في مجموعة صحيحًا ( If) أو أن نتيجة الصيغة تطابق أي قيمة في مجموعة ( Switch) ثم إرجاع نتيجة أو تنفيذ إجراء.

‏‏الوصف

تقوم وظيفة If باختبار شرط واحد أو أكثر حتى يتم العثور على نتيجة صواب. إذا تم العثور على مثل هذه النتيجة، يتم إرجاع قيمة مقابلة. إذا لم يتم العثور على مثل هذه النتيجة، يتم إرجاع قيمة افتراضية. وفي كلتا الحالتين، قد تكون القيمة التي تم إرجاعها عبارة عن سلسلة ليتم عرضها أو صيغة لتقييمها أو نموذج آخر للنتيجة.

تقوم وظيفة Switch بتقييم صيغة وتحديد ما إذا كانت النتيجة تطابق أي قيمة في التسلسل الذي تحدده. إذا تم العثور على مطابقة، يتم إرجاع قيمة مقابلة. إذا لم يتم العثور على مطابقة، يتم إرجاع قيمة مطابقة. وفي كلتا الحالتين، قد تكون القيمة التي تم إرجاعها عبارة عن سلسلة ليتم عرضها أو صيغة لتقييمها أو نموذج آخر للنتيجة.

إذا كان و Switch متشابهين جدا ، ولكن يجب عليك استخدام أفضل وظيفة لموقفك:

  • استخدم وظيفة If لتقييم شرط فردي. بناء الجملة الأكثر شيوعًا لهذه الدالة هو If (Condition، ThenResult، DefaultResult)، والذي يوفر النمط الشائع "if … ومن ثمَّ... آخر…" النمط الذي يظهر في أدوات البرمجة الأخرى.
  • استخدم وظيفة If لتقييم الشروط المتعددة غير ذات الصلة. في Power Apps (بخلاف Microsoft Excel)، يمكنك تحديد شروط متعددة دون الحاجة إلى تداخل صيغ If.
  • استخدم وظيفة التبديل لتقييم شرط واحد مقابل عدة مطابقات محتملة. يمكنك أيضًا استخدام وظيفة If في هذه الحالة، ولكن ينبغي عليك تكرار الصيغة لكل مطابقة محتملة.

يمكنك استخدام كل من هاتين الوظيفتين في صيغ السلوك للتفريع بين إجراءين أو أكثر. سيقوم فرع واحد فقط بتشغيل أحد الإجراءات. يتم تقييم الشروط والمطابقات بالترتيب، وتتوقف إذا كانت الحالة صواب أو إذا تم العثور على مطابقة.

يتم إرجاع Blank إذا لم تكن هناك شروط صحيحة، ولم يتم العثور على تطابقات، ولم تحدد نتيجة افتراضية.

بناء الجملة

إذا ( شرط، ثمنتيجة نتيجة افتراضية ])
إذا(الشرط1,ثمالنتيجة1 [ , الشرط2,ثمالنتيجة2 , ... [ ، النتيجة الافتراضية ] ] )

  • الشروط - مطلوب. الصيغة (الصيغة) المطلوب اختبارها لـ صواب. تحتوي هذه الصيغ عمومًا على مشغلات مقارنة (مثل <، >، و=) وظائف الاختبار مثل IsBlank وIsEmpty.
  • ثمالنتائج - مطلوب. القيمة المطابقة لإرجاع شرط يتم تقييمه إلى صواب.
  • النتيجة الافتراضية - اختياري. القيمة المراد إرجاعها في حالة عدم تقييم أي شرط إلى صواب. إذا لم تقم بتحديد هذه الوسيطة، فإنه يتم إرجاع القيمة فارغ.

التبديل (الصيغة ، المباراة 1 ، النتيجة 1 المباراة 2 ، النتيجة 2 ، ... النتيجة الافتراضية ] ] )

  • الصيغة - مطلوبة. الصيغة المراد تقييمها للحصول على المطابقات. يتم تقييم هذه الصيغة مرة واحدة فقط.
  • المباريات - مطلوب. القيم المراد مقارنتها بالنتيجة من الصيغة. وفي حالة العثور على مطابقة تامة، يتم إرجاع النتيجة المقابلة.
  • النتائج - مطلوبة. النتيجة المقابلة المراد إرجاعها عند العثور على مطابقة تامة.
  • النتيجة الافتراضية - اختياري. وفي حالة عدم العثور على مطابقة تامة، يتم إرجاع هذه القيمة. إذا لم تقم بتحديد هذه الوسيطة، فإنه يتم إرجاع القيمة فارغ.

الأمثلة

القيم في الصيغ

في الأمثله التالية، يشتمل عنصر تحكم Slider (المسمى Slider1) على قيمة 25.

الصيغة الوصف نتيجة
إذا ( شريط التمرير 1.القيمة = 25 ، "النتيجة 1") الشرط هو صواب، ويتم إرجاع النتيجة المقابلة. "Result1"
إذا ( شريط التمرير 1.القيمة = 25 ، "النتيجة 1" ، "النتيجة 2") الشرط هو صواب، ويتم إرجاع النتيجة المقابلة. "Result1"
إذا(شريط التمرير1.القيمة > 1000، "النتيجة1") الشرط هو خطأ، ولم يتم توفير أي DefaultResult. خلبي
إذا( شريط التمرير 1.القيمة > 1000 ، "النتيجة 1" ، "النتيجة 2") الشرط هو خطأ، وتم توفير DefaultResult وتم إرجاعها. "Result2"
إذا ( شريط التمرير 1.القيمة = 25 ، "النتيجة 1" ، شريط التمرير 1.القيمة > 0 ، "النتيجة 2") الشرط الأول هو صواب، ويتم إرجاع النتيجة المقابلة. والشرط الثاني هو صواب أيضًا، ولكن لم يتم تقييمه لأنه يظهر لاحقًا في قائمة الوسائط بدلاً من الشرط الذي يتم تقييمه إلى صواب. "Result1"
إذا (IsBlank (شريط التمرير 1.القيمة) ، "النتيجة 1" ، IsNumeric (شريط التمرير 1.القيمة) ، "النتيجة 2") الشرط الأول هو خطأ نظرًا لأن شريط التمرير غير فارغ. الشرط الثاني هو صواب لأن قيمة شري التمرير هي رقم، ويتم إرجاع النتيجة المقابلة. "Result2"
إذا ( شريط التمرير 1.القيمة > 1000 ، "النتيجة 1" ، شريط التمرير 1.القيمة > 50 ، "النتيجة 2" ، "النتيجة 3") كلُّ من الشرطين الأول والثاني هما خطأ، وتم توفير DefaultResult وتم إرجاعها. "Result3"
التبديل (شريط التمرير 1.القيمة ، 25 ، "النتيجة 1") تطابق قيمة شريط التمرير القيمة الأولى المراد التحقق منها، ويتم إرجاع النتيجة المقابلة. "Result1"
التبديل (شريط التمرير 1.القيمة ، 20 ، "النتيجة 1" ، 25 ، "النتيجة 2" ، 30 ، "النتيجة 3") تطابق قيمة شريط التمرير القيمة الثانية المراد التحقق منها، ويتم إرجاع النتيجة المقابلة. "Result2"
التبديل (شريط التمرير 1.القيمة ، 20 ، "النتيجة 1" ، 10 ، "النتيجة 2" ، 0 ، "النتيجة 3" ، "النتيجة الافتراضية") لا تتطابق قيمه شريط التمرير مع أي قيمة مراد التحقق منها. تم توفير DefaultResult، لذا تم إرجاعها. "DefaultResult"

التفريع في صيغ السلوك

في هذه الأمثلة، يشتمل عنصر تحكم Text input المسمى FirstName على القيمة "جون" المكتوب فيه.

صيغة ‏‏الوصف نتيجة
If( ! IsBlank( FirstName.Text ), Navigate( Screen1, ScreenTransition.None ) ) الشرط هو صواب، لذا يتم تشغيل وظيفة Navigate. يمكنك استخدام وظيفة IsBlank لاختبار ما إذا كان قد تم ملء حقل نموذج مطلوب. إذا كان FirstName هو blank، لن يكون لهذه الصيغة أي تأثير. صحيح

تم تغيير العرض إلى Screen1.
إذا (IsBlank (الاسم الأول.نص) ، التنقل (الشاشة 1 ، ScreenTransition.None ) ، الرجوع () ) من دون عامل التشغيل !، الشرط هو خطأ، لذا فإن الوظيفة Navigate لا تعمل. تم توفير وظيفة Back كـ DefaultResult، لذا يتم تشغيلها. صحيح

ينتقل العرض مرة أخرى إلى الشاشة التي تم عرضها من قبل.
التبديل (الاسم الأول.النص ، "كارلوس" ، التنقل (الشاشة 1 ، ScreenTransition.None ) ، "Kirstin" ، التنقل (Screen2 ، ScreenTransition.None ) ، "جون" ، التنقل (الشاشة 3 ، ScreenTransition.None ) ) تتم مقارنة القيمة FirstName.Text بـ "كارلوس" و"كيرستين" و"جون" بهذا الترتيب. يتم العثور على مطابقة مع "جون"، لذا ينتقل التطبيق إلى Screen3. صحيح

تم تغيير العرض إلى Screen3.

خطوة بخطوة

  1. أضف عنصر تحكم Text input، وقم بتسميته Text1، إذا لم يكن يحتوي على الاسم بشكل افتراضي.

  2. في Text1، اكتب 30.

  3. أضف عنصر تحكم ‎Label، وقم بتعيين خاصية Text الخاصة به إلى هذه الصيغة:
    إذا (القيمة (Text1.Text) < 20 ، "اطلب الكثير!" ، القيمة (Text1.Text) < 40 ، "اطلب المزيد!" ، Text1.Text)

    يعرض عنصر‏‎ تحكم التسمية النص اطلب المزيد! لأن قيمة Text1 تزيد عن 20 ولكنها أقل من 40.

  4. في Text1، اكتب 15.

    يعرض عنصر‏‎ تحكم التسمية النص اطلب المزيد والمزيد! لأن قيمة Text1 تقل عن 20.

  5. في Text1، اكتب 50.

    يعرض عنصر تحكم Label القيمة التي قمت بكتابتها لأنها أكثر من 40.