مشاركة عبر


الدالتان GroupBy وUngroup

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

تجميع أو إلغاء تجميع سجلات خاصة بـ جدول.

الوصف

ستقوم وظيفة GroupBy بإرجاع جدول مع تضمين السجلات معًا استنادًا إلى القيم في عمود واحد أو أكثر. يتم وضع السجلات في نفس المجموعة في سجل واحد، مع إضافة عمود يحتوي على جدول متداخل للأعمدة المتبقية.

تقوم وظيفة Ungroup بإلغاء عملية GroupBy. تقوم هذه الوظيفة بإرجاع جدول، مقسمة إلى سجلات منفصلة أي سجلات تم تجميعها معًا.

يمكنك تجميع السجلات باستخدام GroupBy، قم بتعديل الجدول الذي يقوم بإرجاعه ثم قم بإلغاء تجميع السجلات في الجدول المعدل باستخدام إلغاء التجميع. على سبيل المثال، يمكنك إزالة مجموعة من السجلات باتباع هذا النهج:

  • استخدم وظيفة GroupBy.
  • استخدم وظيفة Filter لإزالة مجموعة السجلات بالكامل.
  • استخدم وظيفة Ungroup.

يمكنك أيضًا تجميع النتائج بناءً على التجميع:

  • استخدم وظيفة GroupBy.
  • استخدم وظيفة AddColumns مع Sum و Average، والوظائف التجميعية الأخرى لإضافة عمود جديد وهو تجميع جداول المجموعة.
  • استخدم وظيفة DropColumns لإسقاط جدول المجموعة.

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

جدول عبارة عن قيمة في Power Apps، تمامًا مثل سلسلة أو رقم. يمكنك تحديد جدول كوسيطة لوظيفة، ويمكن للوظيفة إرجاع جدول. لا يقوم GroupBy وUngroup بتعديل جدول؛ بدلا من ذلك يأخذان جدولا كوسيطة ويرجعان جدولا مختلفا. راجع التعامل مع الجداول للاطلاع على مزيد من التفاصيل.

‏‫ملاحظة

قبل Power Apps الإصدار 3.24042، كانت أسماء الأعمدة محددة بسلسلة نصية باستخدام علامات اقتباس مزدوجة، وإذا كانت مرتبطة مصدر البيانات فهي تحتاج أيضا إلى أسماء منطقية. على سبيل المثال، استخدم الاسم المنطقي "cr43e_name" مع علامات اقتباس مزدوجة بدلا من اسم العرض Name بدون عروض أسعار. بالنسبة SharePoint لمصادر بيانات Excel التي تحتوي على أسماء أعمدة ذات المسافات، يتم تحديد كل مسافة باستخدام "_x0020_" ، على سبيل المثال، "اسم العمود" Column_x0020_Name". بعد هذا الإصدار، يتم تحديث كافة التطبيقات تلقائيًا إلى الجملة الجديدة الموضحة في هذه المقالة.

بناء الجملة

GroupBy (Table,ColumnName1 [, ColumnName2 , ... ],GroupColumnName)

  • الجدول - مطلوب. الجدول المراد تجميعه.
  • أسماء الأعمدة- مطلوب. أسماء الأعمدة في الجدول الذي يتم فيه تجميع السجلات. تصبح هذه الأعمدة أعمدة في الجدول الناتج.
  • GroupColumnName - مطلوب. اسم العمود لتخزين بيانات السجل ليس في ColumnName(s).

إلغاء المجموعة (الجدول,GroupColumnName )

  • الجدول - مطلوب. الجدول المراد إلغاء تجميعه.
  • GroupColumnName - مطلوب. العمود الذي يحتوي على إعداد بيانات السجل باستخدام وظيفة GroupBy.

الأمثلة

إنشاء مجموعة

  1. أضف زرًا، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر الأصلي.
  2. قم بتعيين خاصية OnSelect الخاصة بالزر الأصلي إلى هذه الصيغة:
ClearCollect( CityPopulations,
    { City: "London",    Country: "United Kingdom", Population: 8615000},
    { City: "Berlin",    Country: "Germany",        Population: 3562000},
    { City: "Madrid",    Country: "Spain",          Population: 3165000},
    { City: "Rome",      Country: "Italy",          Population: 2874000},
    { City: "Paris",     Country: "France",         Population: 2273000},
    { City: "Hamburg",   Country: "Germany",        Population: 1760000},
    { City: "Barcelona", Country: "Spain",          Population: 1602000},
    { City: "Munich",    Country: "Germany",        Population: 1494000},
    { City: "Milan",     Country: "Italy",          Population: 1344000}
)
  1. أثناء الضغط على مفتاح Alt، حدد الزر الأصلي.

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

    مثال CityPopulations.

  2. لعرض هذه المجموعة، حدد المجموعات في قائمة الملف، ثم حدد مجموعة CityPopulations. تظهر السجلات الخمسة الأولى في المجموعة:

    مجموعة CityPopulations.

تجميع السجلات

  1. أضف زرًا آخر، وقم بتعيين خاصية Text الخاصة به إلى "تجميع".

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

    ClearCollect( CitiesByCountry ، GroupBy ( CityPopulations ، Country ، Cities ) )

  3. أثناء الضغط على مفتاح Alt، حدد الزر تجميع.

    لقد قمت بإنشاء مجموعة تسمى CitiesByCountry، التي يتم فيها تجميع سجلات المجموعة السابقة حسب عمود البلد.

    مدن تم تجميعها.

  4. لعرض السجلات الخمسة الأولى في هذه المجموعة، حدد مجموعات في قائمة الملف.

    المدن حسب البلد/المنطقة.

  5. لعرض محتويات المدن في بلد/منطقة، حدد رمز الجدول في عمود المدن لهذا البلد/المنطقة (على سبيل المثال، ألمانيا):

    السكان - ألمانيا.

تصفية السجلات وإلغاء تجميعها

  1. وأضف زرًا آخر، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر "تصفية".

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

    ClearCollect( CitiesByCountryFiltered, Filter( CitiesByCountry, "e" في البلد ))

  3. أثناء الضغط على مفتاح Alt، حدد الزر الذي أضفته.

    لقد قمت للتو بإنشاء مجموعة ثالثة تسمى CitiesByCountryFiltered وتشمل فقط تلك البلدان التي تشتمل على "ص" في أسمائها (أي ليس السعودية أو الإمارات).

    CitiesByCountryFiltered.

  4. أضف زرًا واحدًا آخر، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر "إلغاء تجميع".

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

    ClearCollect( CityPopulationsUngrouped, Ungroup( CitiesByCountryFiltered, Cities) )

    مما يؤدي إلى:

    المدن حسب البلد/المنطقة بعد إلغاء التجميع.

تجميع النتائج

هناك عملية أخرى يمكننا تنفيذها على جدول مجمع وهي تجميع النتائج. في هذا المثال، سنقوم بجمع عدد سكان المدن الرئيسية في كل بلد/منطقة.

  1. وأضف زرًا آخر، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر "مجموع".

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

    ClearCollect( CityPopulationsSum, AddColumns( CitiesByCountry, 'مجموع سكان المدن', Sum( المدن, السكان)) )

    مما يؤدي إلى:

    مجموع المدن.

    تبدأ AddColumns بالمجموعة الأساسية CitiesByCountry وتضيف عمودا جديدا مجموع سكان المدينة. يتم حساب قيم هذا العمود صفًا تلو الآخر، استنادًا إلى الصيغة Sum( Cities, Population ). توفر AddColumns قيمة عمود المدن (جدول) لكل صف، ويجمع ... المجموع المحتوى لكل صف من هذا الجدول الفرعي.

    الآن بعد أن حصلنا على المبلغ الذي نريده، يمكننا استخدام DropColumns لإزالة الجداول الفرعية.

  3. وأضف زرًا آخر، وقم بتعيين خاصية Text الخاصة به، بحيث يعرض الزر "‏SumOnly".

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

    ClearCollect( CityPopulationsSumOnly ، DropColumns ( CityPopulationsSum ، المدن )

    مما يؤدي إلى:

    مجموع البلدان.

    لاحظ أننا لم نحتاج إلى إلغاء تجميع هذا الجدول.