الدالات Blank، وCoalesce، وIsBlank، وIsEmpty

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

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

النظرة العامة

فارغ هو عنصر نائب يشير إلى "لا قيمة" أو "قيمة غير معروفة". على سبيل المثل، عنصر تحكم Combo box وخاصيته Selected هو فارغ إذا لم يقم المستخدم بأي تحديد. يمكن للعديد من مصادر البيانات تخزين قيم فارغة وإرجاعها، والتي يتم تمثيلها في Power Apps باعتبارها فارغة.

أي خاصية أو قيمة محسوبة في Power Apps قد تكون فارغة. على سبيل المثال، تحتوي القيمة المنطقية عادةً على إحدى القيمتين: صواب أو خطأ. ولكن بالإضافة إلى هذين النوعين، يمكنها أن تكون فارغة للإشارة إلى أن الحالة غير معروفة. يشبه هذا Microsoft Excel، حيث تبدأ خلية ورق عمل كفارغة دون أي محتيات ولكن يمكنها الاحتفاظ بقيمتي صواب أو خطأ (من بين قيم أخرى). في أي وقت، يمكن مسح محتويات الخلية مرة أخرى ، وإعادتها إلى الحالة فارغة.

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

في سياق وظيفة IsEmpty، تكون القيمة فارغة خاصة بالجداول التي لا تحتوي على أي سجلات. وقد تكون بنية الجدول دون تغيير وكاملة مع أسماء الأعمدة، ولكن لا توجد بيانات في الجدول. قد يبدأ الجدول فارغًا ، ويحتفظ بالسجلات ولم يعد فارغًا ، ثم يُزال السجلات ثم يكون فارغًا مرة أخرى.

‏‫ملاحظة‬

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

فارغ

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

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

IsBlank

ينطبق على: تطبيقات اللوحة التطبيقات المستندة إلى النموذج

تقوم وظيفة IsBlank بالاختبار لقيمة فارغة أو سلسلة فارغة. يتضمن الاختبار سلاسل فارغة لتسهيل إنشاء التطبيق نظرًا لأن بعض مصادر البيانات وعناصر التحكم تستخدم سلسلة فارغة عندما لا توجد قيمة. للاختبار على وجه الخصوص لقيمة فارغة استخدم if( Value = Blank(), ... بدلاً من IsBlank. تعتبر الدالة IsBlank الجداول الفارغة غير فارغة، وينبغي استخدام Is2pty لاختبار جدول.

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

قيمة الإرجاع لـ IsBlank هي قيمة منطقيةصواب أو خطأ.

Coalesce

ينطبق على: تطبيقات اللوحة التطبيقات المستندة إلى النموذج

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

Coalesce( value1, value2 ) هي المكافئ الأكثر إيجازًا لـ If( Not IsBlank( value1 ), value1, Not IsBlank( value2 ), value2 ) ولا تتطلب value1 وvalue2 المراد تقييمهما مرتين. إذا قامت وظيفة If بإرجاع فارغ إذا لم تكن هناك صيغة "آخر" كما هو الحال هنا.

يجب أن تكون كل وسيطات Coalesce من نفس النوع؛ على سبيل المثال، لا يمكنك مزج الأرقام مع السلاسل النصية. قيمة الإرجاع من Coalesce هي من هذا النوع الشائع.

IsEmpty

ينطبق على: تطبيقات اللوحة التطبيقات المستندة إلى النموذج

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

قيمة الإرجاع لـ IsEmpty هي قيمة منطقيةصواب أو خطأ.

بناء الجملة

Blank()

Coalesce( Value1 [, Value2, ... ] )

  • القيمة (القيم) – مطلوبة. القيم المُراد اختبارها. يتم تقييم كل قيمة بالترتيب حتى يتم العثور على قيمة ليست فارغة وسلسلة ليست فارغة. لا يتم تقييم القيم بعد هذه النقطة.

IsBlank( القيمة )

  • Value – مطلوبة. القيمة المراد اختبارها لقيمة فارغة أو سلسله فارغة.

IsEmpty( الجدول )

  • الجدول - مطلوب. الجدول المراد اختباره للسجلات.

الأمثلة

فارغ

‏‫ملاحظة‬

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

  1. أنشئ تطبيقًا من البداية، وأضف عنصر تحكم Button.

  2. قم بتعيين خاصية OnSelect الخاصة بالزر إلى هذه الصيغة:

    ClearCollect( Cities, { Name: "Seattle", Weather: "Rainy" } )
    
  3. قم بمعاينة تطبيقك، وانقر أو اضغط على الزر الذي أضفته، ثم أغلق المعاينة.

  4. في قائمة الملف، انقر فوق أو اضغط على المجموعات.

    تظهر مجموعة المدن، مع عرض سجل واحد لمدينة "سياتل" و"ممطر":

    مجموعة تُظهر سياتل مع طقس ممطر.

  5. المس أو انقر فوق سهم للخلف للرجوع إلى مساحة العمل الافتراضية.

  6. أضف عنصر تحكم Label، وقم بتعيين خاصية Text الخاص بها إلى هذه الصيغة:

    IsBlank( First( Cities ).Weather )
    

    تُظهر التسمية خطأ لأن حقل الطقس يحتوي على قيمة ("ممطر").

  7. أضف زرًا ثانيًا، وقم بتعيين خاصية OnSelect الخاصة به إلى هذه الصيغة:

    Patch( Cities, First( Cities ), { Weather: Blank() } )
    
  8. قم بمعاينة تطبيقك، وانقر أو اضغط على الزر الذي أضفته، ثم أغلق المعاينة.

    يتم استبدال حقل الطقس الخاص بالسجل الأول في المدن بـ فارغ، مما يؤدي إلى إزالة "ممطر" التي كانت موجودة من قبل.

    مجموعة تُظهر سياتل مع حقل طقس فارغ.

    تُظهر التسمية صواب لأن حقل الطقس لم يعد يحتوي على قيمة.

Coalesce

صيغة ‏‏الوصف نتيجة
Coalesce( Blank(), 1 ) اختبار قيمة الإرجاع من وظيفة Blank، التي تقوم دائمًا بإرجاع القيمة فارغ. ونظرًا لأن الوسيطة الأولى فارغة، يستمر التقييم مع الوسيطة التالية إلى أن يتم العثور على قيمة غير فارغة وسلسلة غير فارغة. 1
Coalesce( "", "2" ) اختبار الوسيطة الأولى التي هي سلسلة فارغة. ونظرًا لأن الوسيطة الأولى عبارة عن سلسلة فارغة، يستمر التقييم مع الوسيطة التالية إلى أن يتم العثور على قيمة غير فارغة وسلسلة غير فارغة. 2
Coalesce( Blank(), "", Blank(), "", "3", "4" ) تبدأ وظيفة Coalesce في بداية قائمه الوسيطات وتقوم بتقييم كل وسيطة بدورها إلى أن يتم العثور على قيمة غير فارغة وسلسلة غير فارغة. في هذه الحالة، تُرجع جميع الوسيطات الأربعة الأولى قيمة فارغة أو سلسلة فارغة، لذا يستمر التقييم للوسيطة الخامسة. الوسيطة الخامسة هي قيمة غير فارغة وسلسلة غير فارغة، لذا تتوقف عمليه التقييم هنا. يتم إرجاع قيمة الوسيطة الخامسة، ولا يتم تقييم الوسيطة السادسة. 3
Coalesce( "" ) اختبار الوسيطة الأولى التي هي سلسلة فارغة. لأن الوسيطة الأولى عبارة عن سلسلة فارغة، ولم يعد هناك وسيطات، تُرجع الوظيفة فارغ. blank

IsBlank

  1. أنشئ تطبيقًا من البداية، وأضف عنصر تحكم في إدخال النص، وقم بتسميته FirstName.

  2. أضف تسمية، وعيِّن خاصية Text على هذه الصيغة:

    If( IsBlank( FirstName.Text ), "First Name is a required field." )
    

    وبشكل افتراضي، يتم تعيين خاصية Text الخاصة بعنصر تحكم إدخال النص إلى "إدخال النص". لأن الخاصية تحتوي على قيمة، فهي ليست فارغة، ولا يعرض التصنيف أي رسالة.

  3. قم بإزالة كافة الأحرف من عنصر تحكم إدخال النص، بما في ذلك أي مسافات.

    ونظرًا لأن خاصية Text لم تعد تحتوي على أي أحرف، فإنها تكون سلسلة فارغة، ووظيفة IsBlank( FirstName.Text ) ستكون صواب. يتم عرض رسالة الحقل المطلوبة.

للحصول على معلومات حول كيفية إجراء التحقق باستخدام أدوات أخرى، راجع وظيفة Validate والتعامل مع مصادر البيانات.

الأمثلة الأخرى:

صيغة ‏‏الوصف نتيجة
IsBlank( Blank() ) اختبار قيمة الإرجاع من وظيفة Blank، التي تقوم دائمًا بإرجاع القيمة فارغ. true
IsBlank( "" ) سلسلة لا تحتوي على أي أحرف. true
IsBlank( "Hello" ) سلسلة تحتوي على حرف واحد أو أكثر. false
IsBlank( AnyCollection ) نظرًا لأن المجموعة موجودة، فإنها لا تكون فارغة، حتى لو لم تحتوي على أي سجلات. للتحقق من مجموعة فارغة، استخدم وظيفة IsEmpty بدلاً منها. false
IsBlank( Mid( "Hello", 17, 2 ) ) يقع حرف البداية في Mid بعد نهاية السلسلة. والنتيجة هي سلسلة فارغة. true
IsBlank( If( false, false ) ) وظيفة If دون أي ElseResult. نظرًا لأن الشرط دائمًا ما يكون خطأ، غالبًا ما تُرجع وظيفة If هذه قيمة فارغة. true

IsEmpty

  1. أنشئ تطبيقًا من البداية، وأضف عنصر تحكم Button.

  2. قم بتعيين خاصية OnSelect الخاصة بالزر إلى هذه الصيغة:

    Collect( IceCream, { Flavor: "Strawberry", Quantity: 300 }, { Flavor: "Chocolate", Quantity: 100 } )

  3. قم بمعاينة تطبيقك، وانقر أو اضغط على الزر الذي أضفته، ثم أغلق المعاينة.

    يتم إنشاء مجموعة تسمى IceCream وتحتوي على هذه البيانات:

    طاولة بنكهات الفراولة والشوكولاتة بكمية 300 و100.

    تشتمل هذه المجموعة على سجلين ولا تكون فارغة. تقوم IsEmpty( IceCream ) بإرجاع خطا، وتقوم CountRows( IceCream ) بإرجاع 2.

  4. أضف زرًا ثانيًا، وقم بتعيين خاصية OnSelect الخاصة به إلى هذه الصيغة:

    Clear( IceCream )

  5. قم بمعاينة تطبيقك، وانقر أو اضغط على الزر الثاني، ثم أغلق المعاينة.

    المجموعة فارغة الآن:

    مجموعة مع النكهة والكمية كمجموعة فارغة.

    تقوم وظيفة Clear بإزالة جميع السجلات من مجموعة، مما يؤدي إلى مجموعة فارغة. تقوم IsEmpty( IceCream ) بإرجاع صواب، وتقوم CountRows( IceCream ) بإرجاع 0.

يمكنك أيضا استخدام وظيفة IsEmpty لاختبار ما إذا كان الجدول المحسوب فارغًا، كما تُظهر الأمثلة التالية ما يلي:

صيغة ‏‏الوصف نتيجة
IsEmpty( [ 1, 2, 3 ] ) يحتوي الجدول ذو العمود الواحد على ثلاثة سجلات، وبالتالي فهو ليس فارغًا. false
IsEmpty( [ ] ) لا يحتوي الجدول ذو العمود الواحد على أي سجلات، وبالتالي فهو فارغ. true
IsEmpty( Filter( [ 1, 2, 3 ], Value > 5 ) ) لا يحتوي الجدول ذو العمود الواحد على قيم أكبر من 5. لا تحتوي نتيجة التصفية على أي سجلات وهي فارغة. true