إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
ينطبق على: تعمل تطبيقات
Canvas Copilot Studio
Desktop على تدفقات
التطبيقات
المستندة إلى نموذج Power Platform CLI
Dataverse لوظائف
Power Pages
البحث عن سجل واحد أو أكثر في الجدول.
شاهد هذا الفيديو لمعرفة كيفية استخدام Filterالوظائف Searchو و:LookUp
ملاحظة
لا تدعم Searchأوامر PAC CLI pac power-fx الوظيفة.
الوصف
تعثر الدالة Filter على سجلات في جدول تفي بصيغة. يتم استخدامها Filter للبحث عن مجموعة من السجلات التي تطابق معيارا واحدا أو أكثر وتجاهل تلك السجلات التي لا تتطابق.
LookUp تعثر الدالة على السجل الأول في جدول يفي بصيغة. استخدم LookUp للبحث عن سجل واحد يطابق معيارا واحدا أو أكثر.
بالنسبة لكلتا الوظيفتين، يتم تقييم الصيغة لكل سجل في الجدول. يتم تضمين السجلات التي تؤدي إلى صواب في النتيجة. إلى جانب عوامل الصيغة العادية، يمكنك استخدام عاملي in وexactin للحصول على مطابقات السلاسل الفرعية.
تتوفر حقول السجل التي تتم معالجتها في الوقت الحالي في الصيغة. استخدم عامل ThisRecord أو ببساطة قم بالإشارة إلى الحقول بالاسم كما تفعل مع أي قيمة أخرى. كما يمكن استخدام عامل As لتسمية السجل الذي تتم معالجته والذي يمكن أن يساعد في تسهيل فهم الصيغة الخاصة بك وجعل السجلات المتداخلة قابلة للوصول. لمزيد من المعلومات، راجع الأمثلة التالية والعمل في نطاق السجلات.
تعثر الدالة Search على سجلات في جدول تحتوي على سلسلة في أحد أعمدةها. قد تظهر السلسلة في أي مكان داخل العمود؛ على سبيل المثال، سيؤدي البحث عن "rob" أو "bert" إلى العثور على تطابق في عمود يحتوي على "Robert". البحث غير حساس لحالة الأحرف. على عكس Filter و LookUp، تستخدم الدالة Search سلسلة واحدة للمطابقة بدلا من صيغة.
Filter وإرجاع Search جدول يحتوي على نفس الأعمدة مثل الجدول الأصلي والسجلات التي تطابق المعايير. LookUp إرجاع السجل الأول الذي تم العثور عليه فقط، بعد تطبيق صيغة لتقليل السجل إلى قيمة واحدة. إذا لم يتم العثور على سجلات، Filter وأرجع Search جدولا فارغا، وأرجع فارغاLookUp.
الجداول هي قيمة في Power Apps ، تماما مثل سلسلة أو رقم. يمكن تمريرها وإرجاعها من الوظائف. Filter LookUp، Search، ولا تقم بتعديل جدول. بدلاً من ذلك، تأخذ جدولًا كوسيطة وتُرجع جدولًا أو سجلًا أو قيمة واحدة منه. راجع التعامل مع الجداول للاطلاع على مزيد من التفاصيل.
تفويض
سيقوم Power Apps بتفويض عمليات التصفية والفرز للصفحة ومصدر البيانات من خلال النتائج عند الطلب، عندما يكون ذلك ممكنًا. على سبيل المثال، عند بدء تشغيل تطبيق يعرض عنصر تحكم المعرض ممتلئًا، فسيتم تقديم المجموعة الأولى من السجلات فقط إلى الجهاز مبدئيًا. أثناء تمرير المستخدم، يتم جلب بيانات إضافية من مصدر البيانات. والنتيجة هي وقت بدء أسرع للتطبيق والوصول إلى مجموعات البيانات الكبيرة جدًا.
ومع ذلك، قد لا يكون التفويض ممكنًا دائمًا. تختلف مصادر البيانات في ماهية الوظائف وعوامل التشغيل التي تدعمها في التفويض. إذا لم يكن التفويض الكامل لصيغة ممكنًا، فستضع بيئة التأليف علامة على الجزء الذي لا يمكن تفويضه مع تحذير. إن أمكن، ففكر في تغيير الصيغة لتجنب الوظائف وعوامل التشغيل التي لا يمكن تفويضها. تشرح قائمة التفويض بالتفصيل مصادر البيانات والعمليات التي يمكن تفويضها.
إذا لم يكن التفويض ممكنًا، فسيقوم تطبيق Power Apps بسحب فقط مجموعة صغيرة من السجلات للعمل عليها محليًا. Filter وستعمل دالات الفرز على مجموعة أقل من السجلات. قد لا يكون المتوفر في المعرض القصة الكاملة، مما قد يؤدي إلى ارتباك المستخدمين.
راجع نظرة عامة على التفويض لمزيد من المعلومات.
بناء الجملة
Filter(Table*, Formula1 [, *Formula2*, ... ] )
- الجدول - مطلوب. الجدول المُراد البحث عنه.
- الصيغ - مطلوب. الصيغة التي يتم من خلالها تقييم كل سجل في الجدول. تقوم الوظيفة بإرجاع جميع السجلات التي تؤدي إلى صواب. يمكنك الرجوع إلى الأعمدة داخل الجدول. إذا قمت بتوفير أكثر من صيغة واحدة، يتم دمج نتائج جميع المعادلات باستخدام وظيفة و .
Search(Table*, SearchString, Column1 [, *Column2*, ... ] )
- الجدول - مطلوب. الجدول المُراد البحث عنه.
- سلسلة البحث - مطلوب. السلسلة المُراد البحث عنها. في حالة ظهور فارغ أو سلسلة فارغة، يتم إرجاع جميع السجلات.
- الأعمدة - مطلوب. أسماء الأعمدة الموجودة في الجدول المُراد البحث عنها. إذا تم العثور على SearchString ضمن بيانات أي عمود من هذه الأعمدة كتطابق جزئي، فسيتم إرجاع السجل بالكامل.
ملاحظة
في Power Apps قبل الإصدار 3.24042، تم تحديد أسماء الأعمدة للدالة Search باستخدام سلسلة نصية باستخدام علامات الاقتباس المزدوجة، وإذا كانت متصلة بمصدر بيانات، فإنها تحتاج أيضا إلى أن تكون أسماء منطقية. على سبيل المثال، استخدم الاسم المنطقي "cr43e_name"مع علامات اقتباس مزدوجة بدلا من اسم العرض Name بدون عروض أسعار. بالنسبة SharePoint لمصادر بيانات Excel التي تحتوي على أسماء أعمدة ذات المسافات، يتم تحديد كل مسافة باستخدام "_x0020_"، على سبيل المثال، "اسم العمود" Column_x0020_Name". بعد هذا الإصدار، يتم تحديث كافة التطبيقات تلقائيًا إلى الجملة الجديدة الموضحة في هذه المقالة.
LookUp(Table*, Formula [, *ReductionFormula* ] )
- الجدول - مطلوب. الجدول المُراد البحث عنه. في واجهة المستخدم، يتم عرض بناء الجملة كـ مصدر أعلى مربع الوظيفة.
- الصيغة - مطلوبة. الصيغة التي يتم من خلالها تقييم كل سجل في الجدول. تقوم الوظيفة بإرجاع السجل الأول الذي يؤدي إلى صواب. يمكنك الرجوع إلى الأعمدة داخل الجدول. في واجهه المستخدم، يتم عرض بناء الجملة كـ شرط أعلى مربع الوظيفة.
- صيغة التخفيض - اختياري. يتم تقييم هذه الصيغة على السجل الذي تم العثور عليه، ثم تقلل السجل إلى قيمة واحدة. يمكنك الرجوع إلى الأعمدة داخل الجدول. إذا لم تستخدم هذه المعلمة، فسوف تُرجع الوظيفة السجل الكامل من الجدول. في واجهه المستخدم، يتم عرض بناء الجملة كـ نتيجة أعلى مربع الوظيفة.
الأمثلة
تستخدم الأمثلة التالية مصدر البياناتIceCream:
| الصيغة | الوصف | نتيجة |
|---|---|---|
| Filter(IceCream، OnOrder > 0) | إرجاع السجلات التي يكون فيها OnOrder أكبر من الصفر. |
|
| Filter(IceCream, Quantity + OnOrder > 225) | إرجاع السجلات حيث يكون مجموع عمودي الكمية وOnOrder أكبر من 225. |
|
| Filter(IceCream, "chocolate" in Lower(Flavor )) | إرجاع السجلات التي تظهر فيها كلمة "chocolate" في اسم النكهة، مستقلةً عن الأحرف الكبيرة أو الصغيرة. |
|
| Filter(IceCream, Quantity < 10 &OnOrder < 20) | إرجاع السجلات التي تكون فيها الكمية أقل من 10 وOnOrder أقل من 20. لا توجد سجلات تطابق هذه المعايير، لذا يتم إرجاع جدول فارغ. |
|
| Search(IceCream, "choc", Flavor) | إرجاع السجلات التي تظهر فيها سلسلة "choc" في اسم النكهة، مستقلةً عن الأحرف الكبيرة أو الصغيرة. |
|
| Search(IceCream، ""، نكهة) | نظرًا لأن مصطلح البحث فارغ، يتم إرجاع جميع السجلات. |
|
| LookUp(IceCream, Flavor = "Chocolate", Quantity) | عمليات بحث عن سجل به قيمة Flavor تعادل "Chocolate"، والتي توجد مرة واحدة. بالنسبة للسجل الأول الذي تم العثور عليه، يتم إرجاع كميه هذا السجل. | 100 |
| LookUp(IceCream، الكمية > 150، الكمية + OnOrder) | عمليات بحث عن سجل يحتوي على كمية أكبر من 150، والتي توجد بها عدة عمليات بحث. بالنسبة للسجل الأول الذي تم العثور عليه، الذي عبارة عن "فانيلا" نكهة، يتم إرجاع مجموع عمودي الكمية وOnOrder. | 250 |
| LookUp(IceCream, Flavor = "Pistachio", OnOrder) | عمليات بحث عن سجل به نكهة تعادل "الفستق"، والتي لا توجد لها أي عملية بحث. بسبب عدم العثور على أي شيء، يرجع البحث القيمة فارغ. | خلبي |
| LookUp(IceCream, Flavor = "Vanilla") | عمليات بحث عن سجل به قيمة Flavor تعادل "Vanilla"، والتي توجد مرة واحدة. نظرًا لعدم توفير صيغة تخفيض، يتم إرجاع السجل بالكامل. | { النكهة: "فانيلا"، الكمية: 200، OnOrder: 75 } |
التصفية باستخدام أعمدة الاختيار
يستخدم المثال التالي جدول الحساب في Microsoft Dataverse كمصدر بيانات. يوضح هذا المثال كيفية Filter قائمة الحسابات استنادا إلى قيم التحكم في مربع التحرير والسرد المحددة:
خطوة بخطوة
افتح تطبيقًا فارغًا.
أضف شاشة جديدة عن طريق تحديد شاشة جديدة.
من علامة التبويب إدراج، حدد Gallery، ثم حدد عمودي.
في علامة التبويب خصائص في الجزء الأيمن، افتح مصدر البيانات ثم حدد الحسابات.
(اختياري) من القائمة تخطيط، حدد خيارات مختلفة.
من علامة التبويب إدراج، حدد إدخال، ثم حدد Combo box. كرر الخطوة لإضافة عنصري تحكم مربع تحرير وسرد.
لكل عنصر تحكم مربع تحرير وسرد، على علامة التبويب خصائص في الجزء الأيمن، افتح مصدر البيانات ثم حدد الحسابات. حدد تحرير إلى جانب خيار الحقول، ثم حدد قيم النص الأساسي وSearchField. يجب أن يكون النص الأساسي عمود الاختيارات الذي ترغب في إضافته إلى مربع التحرير والسرد. كرر الخطوة عنصري تحكم مربع تحرير وسرد إضافيين.
الآن حدد عنصر تحكم Gallery وعيّن خاصية Items إلى الصيغة التالية:
Filter(Accounts, 'Industry' = ComboBox3.Selected.Industry Or IsBlank(ComboBox3.Selected.Industry), 'Relationship Type' = ComboBox2.Selected.'Relationship Type' Or IsBlank(ComboBox2.Selected.'Relationship Type'), 'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact' Or IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
Search تجربة المستخدم
تستخدم الأمثلة التالية مصدر البياناتIceCream:
في العديد من التطبيقات، يمكنك كتابة حرف أو أكثر في مربع البحث لتصفية قائمة السجلات في مجموعة بيانات كبيرة. أثناء الكتابة، تعرض القائمة فقط تلك السجلات التي تطابق معايير البحث.
توضح الأمثلة الموجودة في بقية هذه المقالة نتائج البحث في قائمة مسماة Customers وتحتوي على هذه البيانات:
لإنشاء مصدر البيانات هذا كمجموعة، أنشئ عنصر تحكم Button وقم بتعيين خصائص OnSelect الخاص به إلى هذه الصيغة:
ClearCollect (العملاء ، الجدول ({ الاسم: "فريد جارسيا" ، الشركة: "تجار نورث ويند" } ، { الاسم: "كول ميلر" ، الشركة: "Contoso" } ، { الاسم: "غليندا جونسون" ، الشركة: "Contoso" } ، { الاسم: "مايك كولينز" ، الشركة: "أعمال المغامرة" } ، { الاسم: "كولين جونز" ، الشركة: "أعمال المغامرات") }
كما هو موضح في هذا المثال، يمكنك إظهار قائمة بالسجلات الموجودة في عنصر تحكم Gallery في الجزء السفلي من الشاشة. بالقرب من أعلى الشاشة، يمكنك إضافة عنصر تحكم Text input تُسمى SearchInput، بحيث يمكن للمستخدمين تحديد السجلات التي تثير اهتمامهم.
عندما يكتب المستخدم الأحرف في SearchInput، تتم تصفية النتائج في المعرض تلقائيًا. في هذه الحالة، يتم تكوين المعرض لإظهار السجلات التي يبدأ فيها اسم العميل (وليس اسم الشركة) بتسلسل الأحرف في SearchInput. في حالة قيام المستخدم بكتابة co في مربع البحث، فسيعرض المعرض هذه النتائج:
للتصفية استنادًا إلى عمود الاسم، قم بتعيين خاصية Items الخاصة بعنصر تحكم gallery إلى إحدى هذه الصيغ:
| الصيغة | الوصف | نتيجة |
|---|---|---|
| Filter(العملاء، StartsWith(Name, SearchInput.Text) ) | تصفية مصدر بيانات العملاء للسجلات التي تظهر فيها سلسلة البحث في بداية عمود الاسم. الاختبار غير حساس لحالة الأحرف. في حالة قيام المستخدم بكتابة co في مربع البحث، tسيعرض المعرض Colleen Jones وCole Miller. لا يعرض المعرض Mike Collins لأن عمود الاسم لهذا السجل لا يبدأ بسلسلة البحث. |
|
| Filter(العملاء، SearchInput.Text في الاسم) | تصفية مصدر بيانات العملاء للسجلات التي تظهر فيها سلسلة البحث في أي موضع في عمود الاسم. الاختبار غير حساس لحالة الأحرف. في حالة قيام المستخدم بكتابة co في مربع البحث، يعرض المعرض Colleen Jones،Cole Miller،Mike Collins لأن سلسلة البحث تظهر في أي موضع في عمود الاسم لجميع هذه السجلات. |
|
| Search(العملاء، SearchInput.Text، Name) | على غرار استخدام عامل التشغيل in ، تبحث الدالة Search عن تطابق في أي مكان داخل عمود الاسم لكل سجل. يجب تضمين اسم العمود بين علامات اقتباس مزدوجة. |
|
يمكنك توسيع البحث لتضمين عمود الشركة وعمود الاسم:
| الصيغة | الوصف | نتيجة |
|---|---|---|
| Filter(العملاء، StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) | تصفية مصدر بيانات العملاء للسجلات التي يبدأ فيها عمود الاسم أو عمود الشركة بسلسلة البحث (على سبيل المثال، co). ||عامل التشغيل هو صواب إذا كانت أي وظيفة StartsWith هي صواب. |
|
| Filter(العملاء، SearchInput.Text في الاسم || SearchInput. نص في الشركة) | تصفية مصدر بيانات العملاء للسجلات التي يحتوي فيها عمود الاسم أو عمود الشركة على سلسلة البحث (على سبيل المثال، co) في أي موضع بها. |
|
| Search(العملاء، SearchInput.Text، الاسم، الشركة) | على غرار استخدام عامل التشغيل في ، تبحث الدالة Search في مصدر بيانات العملاء عن السجلات التي يحتوي فيها عمود الاسم أو عمود الشركة على سلسلة البحث (على سبيل المثال، co) في أي مكان داخله. الدالة Search أسهل في القراءة والكتابة مما Filter إذا كنت تريد تحديد أعمدة متعددة ومتعددة في عوامل التشغيل. |
|