الدالتان Sort وSortByColumns

ينطبق على: تطبيقات قماش تدفقات سطح المكتب التطبيقات التي يحركها النموذج Power Platform CLI

فرز جدول.

‏‫ملاحظة

أوامر PAC CLI pac power-fx لا تدعم وظيفة SortByColumns .

الوصف

تفرز وظيفة Sort جدولاً يعتمد على صيغة.

يتم تقييم الصيغة لكل سجل الجدول، وتُستخدم النتائج لفرز الجدول. يجب أن تؤدي الصيغة إلى رقم أو سلسلة أو قيمة منطقية ؛ لا يمكن أن ينتج عنه جدول أو سجل.

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

للفرز أولاً بعمود واحد ثم بعمود آخر، يمكنك تضمين صيغة Sort في صيغة أخرى. على سبيل المثال، يمكنك استخدام هذه الصيغة لفرز جدول جهات الاتصال أولاً حسب عمود LastName ثم حسب عمود FirstName : ‎‎Sort‎( Sort( Contacts, LastName ), FirstName )

يمكن أيضًا استخدام وظيفة SortByColumns لفرز جدول بناءً على عمود واحد أو أكثر.

توفر قائمة معلمات SortByColumns أسماء الأعمدة للفرز حسب واتجاه الفرز لكل عمود. يتم إجراء الفرز بترتيب المعلمات (مرتبة أولاً حسب العمود الأول، ثم الثاني، وهكذا). يتم تحديد أسماء الأعمدة كسلاسل ، مما يتطلب علامات اقتباس مزدوجة إذا تم تضمينها مباشرة في قائمة المعلمات. على سبيل المثال، SortByColumns( CustomerTable, "LastName" ).

يمكنك دمج SortByColumns باستخدام عنصر تحكم Drop down أو مربع القائمة لتمكين المستخدمين من تحديد العمود الذي سيتم الفرز حسبه.

بالإضافة إلى الفرز التصاعدي أو التنازلي، يمكن لـ SortByColumns الفرز بناءً على جدول قيم عمود واحد. على سبيل المثال ، يمكنك فرز السجل بناءً على اسم يوم من أيام الأسبوع عن طريق توفير [ "الإثنين"، "الثلاثاء"، "الأربعاء"، "الخميس"، "الجمعة"، "السبت"، "الأحد" ] مثل ترتيب الفرز. ستأتي جميع السجلات التي تحتوي على الإثنين" أولاً، متبوعًا بـ الثلاثاء، وهكذا. تم العثور على السجلات التي لا تظهر في جدول الفرز في نهاية القائمة.

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

تفويض

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

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

إذا لم يكن التفويض ممكنًا، فسيقوم تطبيق Power Apps بسحب فقط مجموعة صغيرة من السجلات للعمل عليها محليًا. سوف تعمل وظائف التصفية والفرز في مجموعة مخفضة من السجلات. قد لا يكون المتوفر في المعرض القصة الكاملة، مما قد يؤدي إلى ارتباك المستخدمين.

راجع نظرة عامة على التفويض لمزيد من المعلومات.

بناء الجملة

Sort( Table, Formula [, SortOrder ] )

  • الجدول - مطلوب. الجدول المراد فرزه.
  • الصيغة‏‎ - مطلوبة. يتم تقييم هذه الصيغة لكل سجل الجدول، وتُستخدم النتائج لفرز الجدول. يمكنك الرجوع إلى الأعمدة داخل الجدول.
  • SortOrder - اختياري. حدد SortOrder.Descending لفرز الجدول بترتيب تنازلي. SortOrder.Ascending هو القيمة الافتراضية.

SortByColumns( Table, ColumnName1 [, SortOrder1, ColumnName2, SortOrder2, ... ] )

  • الجدول - مطلوب. الجدول المراد فرزه.

  • ColumnName(s) - مطلوب. أسماء الأعمدة للفرز عليها، كسلاسل.

  • SortOrder(s) - اختياري. SortOrder.Ascending أو SortOrder.Descending. SortOrder.Ascending هو القيمة الافتراضية. في حالة توفير ColumnNames متعددة، يجب أن تتضمن الكل عدا العمود الأخير SortOrder.

    ‏‫ملاحظة‬

    بالنسبة لمصادر بيانات SharePoint وExcel التي تحتوي على أسماء الأعمدة مع مسافات، حدد كل مسافة على أنها "_x0020_". على سبيل المثال، حدد "اسم العمود" كـ "‏Column_x0020_Name".

SortByColumns( Table, ColumnName, SortOrderTable )

  • الجدول - مطلوب. الجدول المراد فرزه.

  • ColumnName - مطلوب. اسم العمود للفرز عليها، كسلاسل.

  • SortOrderTable - مطلوب. جدول قيم عمود واحد للفرز حسبه.

    ‏‫ملاحظة‬

    بالنسبة لمصادر بيانات SharePoint وExcel التي تحتوي على أسماء الأعمدة مع مسافات، حدد كل مسافة على أنها "_x0020_". على سبيل المثال، حدد "اسم العمود" كـ "‏Column_x0020_Name".

الأمثلة

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

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

الصيغة الوصف النتيجة
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
فرز IceCream حسب عمود Flavor الخاص به. يحتوي عمود Flavor على سلاسل، لذا يتم فرز الجدول أبجديًا. افتراضيًا ، يكون ترتيب الفرز تصاعديًا. فرز أبجدي.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
فرز IceCream حسب عمود Quantity الخاص به. يحتوي عمود Quantity على الأرقام، لذا يتم فرز الجدول عدديًا. افتراضيًا ، يكون ترتيب الفرز تصاعديًا. تم الفرز رقميًا.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
فرز IceCream حسب عمود Quantity الخاص به. يحتوي عمود Quantity على الأرقام، لذا يتم الفرز عدديًا. تم تحديد ترتيب الفرز على أنه تنازلي. تم الفرز رقميا وتنازليا.
Sort( IceCream, Quantity + OnOrder ) فرز IceCream بواسطة مجموع عمودي Quantity وOnOrder لكل سجل على حدة. المجموع هو رقم، لذا يتم فرز الجدول عدديًا. افتراضيًا ، يكون ترتيب الفرز تصاعديًا. نظرًا لأننا نقوم بالفرز حسب الصيغة وليس حسب قيم الأعمدة الأولية ، فلا يوجد مكافئ لها باستخدام SortByColumns. تم الفرز رقميا وتصاعديًا.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending )
فرز IceCream أولاً حسب عمود OnOrder الخاص به، ثم حسب عمود Quantity الخاص به. لاحظ أن "الفستق" ارتفع فوق "الفانيليا" في التصنيف الأول بناءً على OnOrder، ثم انتقلا معًا إلى مكانهما المناسب استنادًا إلى Quantity. مرتبة بالفستق فوق الفانيليا.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) فرز IceCream حسب عمود Flavor الخاص به بناء على جدول العمود الواحد الذي يحتوي على "الفستق" و"الفراولة". ستظهر السجلات التي تحتوي على Flavor الخاصة بـ "Pistachio" أولاً في النتيجة، تليها السجلات التي تحتوي على "Strawberry". بالنسبة للقيم الموجودة في عمود Flavor غير المتطابقة، مثل "Vanilla"، ستظهر بعد العناصر التي تمت مطابقتها. مرتبة بالفستق فوق الفراولة.

خطوة بخطوة

لتشغيل هذه الأمثلة بنفسك، قم بإنشاء مصدر بيانات IceCream كـ مجموعة:

  1. أضف زرًا، وقم بتعيين خاصية OnSelect الخاصة به إلى هذه الصيغة:
    ClearCollect( IceCream, { Flavor: "Chocolate", Quantity: 100, OnOrder: 150 }, { Flavor: "Vanilla", Quantity: 200, OnOrder: 20 }, { Flavor: "Strawberry", Quantity: 300, OnOrder: 0 }, { Flavor: "Mint Chocolate", Quantity: 60, OnOrder: 100 }, { Flavor: "Pistachio", Quantity: 200, OnOrder: 10 } )
  2. قم بمعاينة التطبيق، وحدد الزر، ثم اضغط على Esc للعودة إلى مساحة العمل الافتراضية.
  3. حدد مجموعاتمن قائمة الملف لعرض المجموعة التي أنشأتها للتو ، ثم اضغط على Esc للرجوع إلى مساحة العمل الافتراضية.

فرز

  1. أضف زرًا آخر، وقم بتعيين خاصية OnSelect الخاصة به إلى هذه الصيغة:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    تنشئ الصيغة السابقة مجموعة ثانية تسمى SortByFlavor، التي تحتوي على نفس البيانات مثل Ice Cream. ومع ذلك ، تحتوي المجموعة الجديدة على البيانات مرتبة أبجديًا حسب عمود Flavor في ترتيب تصاعدي.

  2. اضغط على المفتاح F5 وحدد الزر الجديد، ثم اضغط على Esc.

  3. حدد مجموعاتمن قائمة الملف لعرض المجموعتين ، ثم اضغط على Esc للرجوع إلى مساحة العمل الافتراضية.

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

SortByColumns

  1. أضف زرًا آخر، وقم بتعيين خاصية OnSelect الخاصة به إلى هذه الصيغة:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    تنشئ الصيغة السابقة مجموعة ثالثة تسمى SortByQuantity، التي تحتوي على نفس البيانات مثل Ice Cream. ومع ذلك ، تحتوي المجموعة الجديدة على البيانات المصنفة رقميًا حسب عمود Quantity بترتيب تصاعدي، ثم حسب عمود Flavor بترتيب تنازلي.

  2. اضغط على المفتاح F5 وحدد الزر الجديد، ثم اضغط على Esc.

  3. حدد مجموعاتمن قائمة الملف لعرض المجموعات الثلاث، ثم اضغط على Esc للرجوع إلى مساحة العمل الافتراضية.

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