الدالتان Update وUpdateIf

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

تحديث السجلات في مصدر بيانات.

الوصف

وظيفة Update

استخدم وظيفة Update لاستبدال سجل كامل في مصدر بيانات. وفي المقابل، تقوم وظيفتا UpdateIf وPatch بتعديل قيمة واحدة أو أكثر في السجل، مع ترك القيم الأخرى وحدها.

بالنسبة إلى مجموعة، يجب أن يتطابق السجل بالكامل. تسمح المجموعات بسجلات مكررة ، لذلك قد تتطابق سجلات متعددة. يمكنك استخدام الوسيطة RemoveFlags.All لتحديث جميع نسخ السجل؛ وإلا فسيتم تحديث نسخة واحدة فقط من السجل.

إذا كان مصدر البيانات يولد قيمة العمود تلقائيًا، فإن قيمة ذلك العمود يجب إعادة تأكيدها.

وظيفة UpdateIf

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

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

مثلما هو الحال مع وظيفة UpdateIf، يمكنك أيضًا استخدام وظيفة Patch لتغيير أعمدة معينة للسجل دون التأثير على أعمدة أخرى.

تقوم وظيفتا Update وUpdateIf بإرجاع مصدر البيانات المعدل باعتباره جدول. يجب عليك استخدام أي من الوظيفتين في صيغة سلوك.

تفويض

عند استخدام هذه الدالات مع مصدر بيانات، لا يمكن تفويضها. سيتم استرداد الجزء الأول من مصدر البيانات وعندئذٍ يتم تطبيق الوظيفة. قد لا تمثل النتيجة القصة الكاملة. وقد يظهر تحذير في وقت تأليف الرسالة لتذكيرك بهذا القيد.

دعم التفويض (تجريبي)

دعم التفويض لكل من UpdateIf وRemoveIf هو الآن في وضع الإصدار الأولي التجريبي (متوقف عن التشغيل بشكل افتراضي) لمصادر البيانات التي تدعمه. إذا لم يدعم مصدر البيانات هذه الميزة، فسيُرسل Power Apps الآن استعلامًا إلى الخادم ويسترد كافة البيانات التي تطابق تعبير عامل التصفية حتى الحد الأقصى إما 500 أو 2000 أو حجم صفحة البيانات. بعد ذلك، سيقوم بتحديث هذه السجلات وإعادة إرسال كل واحد منها إلى الخادم لتحديثه.

بناء الجملة

Update( DataSource, OldRecord, NewRecord [, RemoveFlags.All ] )

  • DataSource – مطلوب. مصدر البيانات الذي يحتوي على السجل الذي تريد استبداله.
  • OldRecord – مطلوب. السجل المراد استبداله.
  • NewRecord – مطلوب. سجل الاستبدال. هذا ليس سجل تغيير. يتم استبدال السجل بالكامل ، وستحتوي الخصائص المفقودة على فارغ.
  • RemoveFlags.All – اختياري. في مجموعة ، قد يظهر نفس السجل أكثر من مرة. حدد الوسيطة RemoveFlags.All لتحديث كافة نسخ السجل.

UpdateIf( DataSource, Condition1, ChangeRecord1 [, Condition2, ChangeRecord2, ... ] )

  • DataSource – مطلوب. مصدر البيانات الذي يحتوي على السجل أو السجلات التي تريد تعديلها.
  • شرط (شروط) – مطلوب. صيغة يتم تقييمها إلى صواب للسجل أو السجلات التي تريد تعديلها. يمكنك استخدام أسماء أعمدة DataSourceفي الصيغة.
  • ChangeRecord(s) - مطلوب. لكل شرط مقابل، سجل تغيير لقيم خاصية جديدة لتطبيقها على سجلات DataSource التي تفي بالشرط. إذا قمت بتوفير السجل عبر الإنترنت باستخدام أقواس متعرجة ، يمكن استخدام قيم خصائص السجل الحالي في صيغ الخصائص.

الأمثلة

في هذه الأمثلة، ستقوم باستبدال أو تعديل سجلات في مصدر بيانات مسمى IceCream ويبدأ بالبيانات الموجودة في هذا الجدول.

مثال الآيس كريم.

الصيغة الوصف النتيجة
Update( IceCream,
First( Filter( IceCream, Flavor="Chocolate" ) ), { ID: 1, Flavor: "Mint Chocolate", Quantity:150 } )
استبدال سجل من مصدر البيانات. استبدال سجل.

تم تعديل مصدر بيانات IceCream.
UpdateIf( IceCream, Quantity > 175, { Quantity: Quantity + 10 } ) تعديل السجلات التي تحتوي على كمية أكبر من 175. يتزايد حقل الكمية بمقدار 10، ولا يتم تعديل أي حقول أخرى. تعديل السجلات.

تم تعديل مصدر بيانات IceCream.
Update( IceCream,
First( Filter( IceCream, Flavor="Strawberry" ) ),
{ ID: 3, Flavor: "Strawberry Swirl"} )
استبدال سجل من مصدر البيانات. لم يتم توفير خاصية Quantity في السجل البديل، لذا ستكون الخاصية فارغة في النتيجة. استبدال السجل عندما لا يتم توفير الكمية.

تم تعديل مصدر بيانات IceCream.
UpdateIf( IceCream, true, { Quantity: 0 } ) تعيين قيمة خاصية Quantity لجميع السجلات الموجودة في مصدر البيانات إلى 0. تعيين كمية للجميع إلى 0.

تم تعديل مصدر بيانات IceCream.

خطوة بخطوة

  1. استورد أو أنشئ مجموعة تسمى مخزون، وقم بإظهارها في معرض كما هو موصوف في إظهار البيانات في معرض.

  2. قم بتسمية المعرض ProductGallery.

  3. أضف شريط تمرير يُسمى UnitsSold، وقم بتعيين خاصية Max الخاصة به إلى هذا التعبير:
    ProductGallery.Selected.UnitsInStock

  4. أضف زرًا، وقم بتعيين خاصية OnSelect الخاصة به إلى هذه الصيغة:
    UpdateIf(Inventory, ProductName = ProductGallery.Selected.ProductName, {UnitsInStock:UnitsInStock-UnitsSold.Value})

  5. اضغط على F5، وحدد منتجًا في المعرض، وحدد قيمة باستخدام شريط التمرير، ثم حدد الزر.

    ينخفض عدد الوحدات المتوفرة للمنتج الذي حددته بالمبلغ الذي حددته.