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

مكتمل

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

حذف سجل

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

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

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

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

Remove لا تطلب التأكيد

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

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

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

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

RemoveIf(CustomerOrders, Status = "Expired")

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

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

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

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

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

Clear(collectSelectedItems)

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

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

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

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

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

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

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

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

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

RemoveIf(CustomerOrders, true)

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

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

‏‫ملاحظة

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