حذف (سجل) سجلات من مصادر البيانات والمجموعات

مكتمل

أحد الموضوعات التي لم يتم تناولها في المحتوى السابق هو مفهوم حذف سجل من مصدر بيانات مجدول أو مجموعة. بخلاف إنشاء السجلات وتحريرها، التي تحتوي على عناصر تحكم ووظائف متعددة، لحذف السجلات، لا يوجد سوى دالات Remove وRemoveIf وClear. غالبًا ما تُتضاف هذه التعليمات البرمجية إلى خاصية OnSelect لعنصر تحكم زر أو أيقونة.

حذف سجل

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

على سبيل المثال، يمكنك استخدام الصيغة التالية لحذف سجل.

Remove(CustomerOrders, LookUp(CustomerOrders, ID = 1))

ستحذف هذه الصيغة السجل الذي يكون فيه المعرف يساوي 1 من مصدر البيانات CustomerOrders.

الإزالة لا تطلب التأكيد

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

الحذف يستند إلى شرط

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

على سبيل المثال، يمكنك استخدام الصيغة التالية لحذف جميع السجلات حيث تكون "الحالة" تساوي "منتهي الصلاحية" من مصدر بيانات CustomerOrders.

RemoveIf(CustomerOrders, Status = "Expired")

حذف جميع السجلات

من الممكن أيضًا حذف جميع السجلات الموجودة في مصدر البيانات. هذا الأمر أكثر شيوعًا مع المجموعات حيث يمكنك استخدام دالة المسح. إذا كنت تريد حذف جميع السجلات من مصدر بيانات، فيمكنك استخدام RemoveIf.

حذف جميع السجلات في مجموعة

تحذف دالة المسح جميع سجلات المجموعة. ستبقى أعمدة المجموعة. الإدخال الوحيد الذي تقوم بتمريره إلى الوظيفة هو اسم المجموعة.

على سبيل المثال، يمكنك استخدام الصيغة التالية لحذف جميع السجلات من مجموعة.

Clear(collectSelectedItems)

ستحذف هذه الصيغة جميع السجلات من مجموعة collectionSelectedItems دون تغيير أعمدة المجموعة.

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

تحذف دالة ClearCollect جميع السجلات من مجموعة ثم تضيف مجموعة مختلفة من السجلات إلى نفس المجموعة. باستخدام دالة واحدة، توفر ClearCollect مزيجًا من Clear ثم Collect.

جميع الوظائف الثلاث لها مكانها. إحدى الطرق للتفكير فيما إذا كنت تريد استخدام Clear وCollect مقابل ClearCollect هي عندما يحدث مسح المجموعة مقارنةً بالوقت الذي تريد فيه إضافة السجلات مرة أخرى. فيما يلي مثالان لتوضيح ذلك:

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

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

حذف جميع السجلات من مصدر البيانات

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

على سبيل المثال، يمكنك استخدام الصيغة التالية لحذف كافة السجلات من مصدر بيانات.

RemoveIf(CustomerOrders, true)

ستحذف هذه الصيغة جميع السجلات من مصدر بيانات CustomerOrders دون تغيير أعمدة مصدر البيانات.

سبب نجاح هذا هو أن RemoveIf يفحص كل سجل في مصدر البيانات لمعرفة ما إذا كانت المعادلة تساوي true. في هذه الحالة، تم تعيين المعادلة على true، لذلك سيتم حذف كل سجل.

ملاحظة

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