تصفية أعمدة الاختيار فِي Dataverse باستخدام صيغ Power Fx

مكتمل

عندما يكون لديك جدول Dataverse به عمود اختيار، فغالباً ما تريد تصفية البيانات باستخدام عمود اختيار. أكثر سيناريوهات التصفية شيوعاً هي:

  • تصفية صفوف الجدول للعرض فِي معرض ما.

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

على سبيل المثال، إذا كان لديك حقل الاختيار فئة فِي جدول الحسابات، فيمكنك استخدام المنطق التالي لتصفية العملاء المفضلين فقط:

Filter(
  Accounts,
  Category = 'Category (Accounts)'.'Preferred Customer'
)

تأكد من أنك لا تستخدم فقط السلسلة 'Preferred Customer' (مثل الصورة أدناه) لأنها مقارنة غير صالحة. سيعطيك الخطأ 'Incompatible types for comparison'. نظراً لأن 'Category' هي جدول (أو مجموعة خيارات) نفسها، فلا يمكنك مقارنة قيمة الجدول بقيمة نصية. لذلك، تحتاج إلى استخدام المرجع المؤهل بالكامل: 'Category (Accounts)'.'Preferred Customer' (يتم عرضه أيضاً كـ [@Category].'Preferred Customer').

لقطة شاشة لمعادلة Power Fx غير الصالحة لـ: Filter ( Accounts, Category =

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

لقطة شاشة لنموذج معلومات حساب جزئي، تعرض قائمة منسدلة بفئات متعددة محددة:

أولاً، ستقوم بإضافة مربع تحرير وسرد إلى الشاشة ثم تعيين الخاصية Items باستخدام الدالة Choices.

لقطة شاشة للتعبير التالي كمعادلة للخاصية أصناف وهي: Choices(Accounts.Category).

تُعد الدالة Choices() قائمة بالقيَم للمستخدم الخاص بك للاختيار من بينها باستخدام بيانات التعريف لعمود الاختيار Accounts.Category.

بعد ذلك، ستقوم بتعديل صيغة Items للمعرض لتضمينها باستخدام خاصية مربع التحرير والسرد SelectedItems.

Filter(Accounts, Category in ComboBoxCategory.SelectedItems)

يسمح استخدام عامل التشغيل in للمعادلة بالتصفية على أي فئة من الفئات المحددة.

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

Filter(
  Accounts, Category in ComboBoxCategory.SelectedItems
  || IsEmpty(ComboBoxCategory.SelectedItems)
)

تصفية أعمدة الاختيارات

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

لقطة شاشة للمعادلة Filter(Accounts,Text(Dropdown1.Selected.Value in 'Preferred Delivery').

أحد الأساليب التي يمكنك اتباعها هو إنشاء طريقة عرض جدول Dataverse تقوم بتصفية قيم الاختيارات ثم استخدامها فِي معايير الدالة Filter(). سيساعدك هذا الأسلوب فِي تجنب تحدي التفويض، لكنه لن يسمح لمستخدم التطبيق بتقديم قيم معايير التصفية. تُظهر لقطة الشاشة التالية مثالاً لعامل تصفية عرض Dataverse لعمود الاختيارات التسليم المفضل.

لقطة شاشة لمعايير عامل تصفية تحرير طريقة العرض Dataverse التي تُظهر التصفية فِي عمود الاختيارات

يمكنك استخدام هذا طريقة العرض Dataverse باسم تسليم يوم الاثنين باستخدام الدالة Filter() التالية:

Filter(
  Accounts,
  'Accounts (Views)'.'Monday Delivery'
)

بالإضافة إلى ذلك، لا يزال بإمكانك تضمين المعايير التي أدخلها المستخدم لأعمدة أخرى غير طريقة العرض. على سبيل المثال، تُظهر الدالة Filter() التالية إضافة عمود الاختيار الفئة، الذي يتم تصفيته حسب القيمة التي حددها المستخدم من القائمة المنسدلة.

Filter(
  Accounts,
  'Accounts (Views)'.'Monday Delivery',
  Category = Dropdown1.Selected.Value
)

نظراً لقائمة القيَم الموحدة الخاصة بهم، فإن أعمدة الاختيار والاختيارات مفيدة فِي توفير طرق متسقة لتصفية صفوف الجدول.