Συναρτήσεις Filter, Search και LookUp

Ισχύει σε: Εφαρμογές καμβά Ροές επιφάνειας εργασίας Εφαρμογές βάσει μοντέλου Power Platform CLI

Εντοπίζει μία ή περισσότερες καρτέλες σε έναν πίνακα.

Παρακολουθήστε αυτό το βίντεο για να μάθετε πώς να χρησιμοποιείτε τις συναρτήσεις Filter, **Search και LookUp:

Σημείωμα

Οι εντολές PAC CLI pac power-fx δεν υποστηρίζουν τη συνάρτηση Search.

Description

Η συνάρτηση Filter βρίσκει τις καρτέλες ενός πίνακα που ικανοποιούν έναν τύπο. Χρησιμοποιήστε τη συνάρτηση Filter για να βρείτε ένα σύνολο καρτελών που πληρούν ένα ή περισσότερα κριτήρια και να απορρίψετε εκείνες που δεν τα πληρούν.

Η συνάρτηση LookUp εντοπίζει την πρώτη καρτέλα σε έναν πίνακα που ικανοποιεί έναν τύπο. Χρησιμοποιήστε τη συνάρτηση LookUp για να βρείτε μια μεμονωμένη καρτέλα που πληροί ένα ή περισσότερα κριτήρια.

Και στις δύο συναρτήσεις ο τύπος υπολογίζεται για κάθε καρτέλα του πίνακα. Οι καρτέλες που έχουν ως αποτέλεσμα true συμπεριλαμβάνονται στο αποτέλεσμα. Εκτός από τους συνήθεις τελεστές τύπων, μπορείτε να χρησιμοποιήσετε τους τελεστές in και exactin για συμφωνίες δευτερευουσών συμβολοσειρών.

Στον τύπο είναι διαθέσιμα πεδία της καρτέλας που βρίσκεται υπό επεξεργασία τη δεδομένη στιγμή. Χρησιμοποιήστε τον τελεστή ThisRecord ή απλά πεδία αναφοράς με βάση το όνομα, όπως θα κάνατε με οποιαδήποτε άλλη τιμή. Ο τελεστής As μπορεί επίσης να χρησιμοποιηθεί για το όνομα της καρτέλας που υπόκειται σε επεξεργασία και η οποία μπορεί να σας βοηθήσει να κάνετε τον τύπο σας πιο κατανοητό και να κάνετε προσβάσιμες τις ένθετες καρτέλες. Για περισσότερες πληροφορίες, δείτε τα παρακάτω παραδείγματα και την ενότητα εργασία με πεδίο καρτελών.

Η συνάρτηση Search βρίσκει καρτέλες σε έναν πίνακα που περιέχουν μια συμβολοσειρά σε μία από τις στήλες τους. Η συμβολοσειρά μπορεί βρίσκεται οπουδήποτε μέσα στη στήλη. Για παράδειγμα, η αναζήτηση για "rob" ή "bert" θα βρει μια συμφωνία σε μια στήλη που περιέχει "Robert". Η αναζήτηση δεν κάνει διάκριση πεζών-κεφαλαίων. Σε αντίθεση με τις συναρτήσεις Filter και LookUp, η συνάρτηση Search χρησιμοποιεί μία μοναδική συμβολοσειρά για συμφωνία και όχι έναν τύπο.

Οι συναρτήσεις Filter και Search επιστρέφουν έναν πίνακα που περιέχει τις ίδιες στήλες όπως ο αρχικός πίνακας και τις καρτέλες που πληρούν τα κριτήρια. Η συνάρτηση LookUp επιστρέφει μόνο την πρώτη καρτέλα που βρέθηκε, μετά την εφαρμογή ενός τύπου για να μειώσει την καρτέλα σε μια μοναδική τιμή. Εάν δεν βρεθεί καμία καρτέλα, οι συναρτήσεις Filter και Search επιστρέφουν έναν κενό πίνακα και η συνάρτηση LookUp επιστρέφει κενό.

Tables είναι μια τιμή στο Power Apps, όπως ακριβώς και μια συμβολοσειρά ή ένας αριθμός. Μπορεί να διαβιβαστεί και να επιστραφεί από συναρτήσεις. Οι συναρτήσεις Filter, Search και LookUp δεν τροποποιούν πίνακες. Αντί για αυτό, λαμβάνουν έναν πίνακα ως όρισμα και επιστρέφουν έναν πίνακα, μια καρτέλα ή μια μεμονωμένη τιμή από αυτόν. Δείτε εργασία με πίνακες για περισσότερες λεπτομέρειες.

Ανάθεση

Όταν είναι δυνατόν, το Power Apps θα αναθέτει λειτουργίες φίλτρου και ταξινόμησης στην προέλευση δεδομένων και τη σελίδα μέσω των αποτελεσμάτων κατ' απαίτηση. Για παράδειγμα, όταν ξεκινάτε μια εφαρμογή που εμφανίζει ένα στοιχείο ελέγχου Συλλογή γεμάτο δεδομένα, στη συσκευή θα φέρνεται αρχικά μόνο το πρώτο σύνολο καρτελών. Καθώς ο χρήστης θα κάνει κύλιση, θα έρχονται επιπρόσθετα δεδομένα από την προέλευση δεδομένων. Το αποτέλεσμα είναι ταχύτερος χρόνος έναρξης για την εφαρμογή και πρόσβαση σε πολύ μεγάλα σύνολα δεδομένων.

Παρόλα αυτά, η ανάθεση μπορεί να μην είναι πάντα δυνατή. Οι προελεύσεις δεδομένων ποικίλλουν ως προς τις λειτουργίες και τους τελεστές που υποστηρίζουν με ανάθεση. Εάν δεν είναι δυνατή η πλήρης ανάθεση ενός τύπου, το περιβάλλον σύνταξης θα επισημαίνει το τμήμα που δεν μπορεί να ανατεθεί με μια ειδοποίηση. Όταν είναι δυνατόν, εξετάστε το ενδεχόμενο αλλαγής του τύπου προκειμένου να αποφύγετε λειτουργίες και τελεστές που δεν μπορούν να ανατεθούν. Η λίστα ανάθεσης περιγράφει λεπτομερώς τις προελεύσεις δεδομένων και τις λειτουργίες που μπορούν να ανατεθούν.

Εάν η ανάθεση δεν είναι δυνατή, το Power Apps θα αντλεί μόνο ένα μικρό σύνολο καρτελών για εργασία τοπικά. Οι λειτουργίες φιλτραρίσματος και ταξινόμησης θα λειτουργούν σε μειωμένο σύνολο καρτελών. Στη Συλλογή μπορεί να μην είναι διαθέσιμο το πλήρες ιστορικό, κάτι που θα μπορούσε να προκαλέσει σύγχυση στους χρήστες.

Για περισσότερες πληροφορίες, δείτε την ενότητα επισκόπηση ανάθεσης.

Σύνταξη

Filter(Table*, Formula1 [, *Formula2*, ... ] )

  • Πίνακας – Υποχρεωτικό. Πίνακας για αναζήτηση.
  • Τύποι - Υποχρεωτικό. Ο τύπος με βάση τον οποίο αξιολογείται κάθε καρτέλα του πίνακα. Η συνάρτηση επιστρέφει όλες τις καρτέλες που έχουν ως αποτέλεσμα true. Μπορείτε να αναφερθείτε σε στήλες στον πίνακα. Εάν παρέχετε περισσότερους από έναν τύπους, τα αποτελέσματα όλων των τύπων συνδυάζονται με την λειτουργία And .

Search(Table*, SearchString, Column1 [, *Column2*, ... ] )

  • Πίνακας – Υποχρεωτικό. Πίνακας για αναζήτηση.
  • SearchString - Υποχρεωτικό. Η συμβολοσειρά για την οποία θα εκτελεστεί η αναζήτηση. Εάν είναι κενό ή μια κενή συμβολοσειρά, επιστρέφονται όλες οι καρτέλες.
  • Column(s) - Υποχρεωτικό. Τα ονόματα των στηλών του Πίνακα για την αναζήτηση. Εάν η SearchString βρεθεί μέσα στα δεδομένα οποιασδήποτε από αυτές τις στήλες ως μερική συμφωνία, θα επιστραφεί η πλήρης καρτέλα.

Σημείωμα

Στο Power Apps πριν από την έκδοση 3.24042, τα ονόματα στηλών για τη συνάρτηση Search καθορίστηκαν με μια συμβολοσειρά κειμένου με τη χρήση διπλών εισαγωγικών και, αν συνδεθούν σε μια προέλευση δεδομένων θα ήταν απαραίτητα για να είναι λογικά ονόματα. Για παράδειγμα, χρησιμοποιήθηκε το λογικό όνομα "cr43e_name" με διπλά εισαγωγικά αντί για το εμφανιζόμενο όνομα Name χωρίς εισαγωγικά. Για τις προελεύσεις δεδομένων SharePoint και Excel που περιέχουν ονόματα στηλών με διαστήματα, κάθε διάστημα καθορίστηκε με "_x0020_", για παράδειγμα "Όνομα στήλης" ως "Column_x0020_Name". Μετά από αυτήν την έκδοση, όλες οι εφαρμογές ενημερώθηκαν αυτόματα με τη νέα σύνταξη που περιγράφεται σε αυτό το άρθρο.

LookUp(Table*, Formula [, *ReductionFormula* ] )

  • Πίνακας – Υποχρεωτικό. Πίνακας για αναζήτηση. Στο UI, η σύνταξη εμφανίζεται ως πηγή πάνω από το πλαίσιο λειτουργίας.
  • Formula - Υποχρεωτικό. Ο τύπος με βάση τον οποίο αξιολογείται κάθε καρτέλα του πίνακα. Η συνάρτηση επιστρέφει την πρώτη καρτέλα που έχει ως αποτέλεσμα true. Μπορείτε να αναφερθείτε σε στήλες στον πίνακα. Στο περιβάλλον εργασίας χρήστη, η σύνταξη εμφανίζεται ως συνθήκη επάνω από το πλαίσιο συναρτήσεων.
  • ReductionFormula - Προαιρετικό. Αυτός ο τύπος αξιολογείται στην καρτέλα που βρέθηκε και στη συνέχεια μειώνει την καρτέλα σε μια μοναδική τιμή. Μπορείτε να αναφερθείτε σε στήλες στον πίνακα. Εάν δεν χρησιμοποιήσετε αυτήν την παράμετρο, η συνάρτηση επιστρέφει την πλήρη καρτέλα από τον πίνακα. Στο περιβάλλον εργασίας χρήστη, η σύνταξη εμφανίζεται ως αποτέλεσμα επάνω από το πλαίσιο συναρτήσεων.

Παραδείγματα

Τα ακόλουθα παραδείγματα χρησιμοποιούν την προέλευση δεδομένωνIceCream:

Προέλευση δεδομένων Ice cream.

Τύπος Description Result
Filter( IceCream, OnOrder > 0 ) Επιστρέφει καρτέλες όπου η τιμή της στήλης OnOrder είναι μεγαλύτερο από το μηδέν. Σειρά φίλτρου ενεργού.
Filter( IceCream, Quantity + OnOrder > 225 ) Επιστρέφει καρτέλες όπου το άθροισμα των στηλών Quantity και OnOrder είναι μεγαλύτερο από 225. Ποσότητα και σειρά φίλτρων.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Επιστρέφει καρτέλες όπου η λέξη "chocolate" εμφανίζεται στο όνομα Flavor, ανεξάρτητα από κεφαλαία ή πεζά γράμματα. Φιλτράρισμα στο χαμηλότερο.
Filter(IceCream, Quantity < 10 && OnOrder < 20) Επιστρέφει καρτέλες όπου η τιμή Quantity είναι μικρότερο από 10 και η τιμή OnOrder είναι μικρότερη από 20. Δεν υπάρχουν καρτέλες που πληρούν αυτά τα κριτήρια, οπότε επιστρέφεται ένας κενός πίνακας. Φίλτρο στην ποσότητα.
Search(IceCream, "choc", Flavor) Επιστρέφει καρτέλες όπου η συμβολοσειρά "choc" εμφανίζεται στο όνομα Γεύση, ανεξάρτητα από κεφαλαία ή πεζά γράμματα. Αναζήτηση στοιχείων.
Search(IceCream, "", Flavor) Επειδή ο όρος αναζήτησης είναι κενός, επιστρέφονται όλες οι καρτέλες. Αναζήτηση όλων των στοιχείων.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Αναζητά μια καρτέλα με Flavor ίση με "Chocolate", από τις οποίες υπάρχει μία. Για την πρώτη καρτέλα που βρέθηκε, επιστρέφει την τιμή Quantity αυτής της καρτέλας. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Αναζητά μια καρτέλα με Quantity μεγαλύτερη από 150, από τις οποίες υπάρχουν πολλές. Για την πρώτη καρτέλα που βρέθηκε, η οποία είναι "Vanilla" Flavor, επιστρέφει το άθροισμα των στηλών Quantity και OnOrder. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Αναζητά μια καρτέλα με Flavor ίση με "Pistachio", από τις οποίες δεν υπάρχει καμία. Επειδή δεν βρίσκεται καμία, η συνάρτηση LookUp επιστρέφει κενό. κενό
LookUp( IceCream, Flavor = "Vanilla" ) Αναζητά μια καρτέλα με Flavor ίση με "Vanilla", από τις οποίες υπάρχει μία. Δεδομένου ότι δεν δόθηκε τύπος μείωσης, επιστρέφεται ολόκληρη η καρτέλα. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Φιλτράρισμα με στήλες επιλογής

Το παρακάτω παράδειγμα χρησιμοποιεί τον πίνακα Λογαριασμός στο Microsoft Dataverse ως προέλευση δεδομένων. Αυτό το παράδειγμα δείχνει τον τρόπο Φιλτραρίσματος λίστας λογαριασμών με βάση τις επιλεγμένες τιμές στοιχείων ελέγχου Combo box:

Βήμα προς βήμα

  1. Άνοιγμα κενής εφαρμογής.

  2. Προσθέστε μια νέα οθόνη επιλέγοντας την επιλογή Νέα οθόνη.

  3. Στην καρτέλα Εισαγωγή, επιλέξτε Gallery και, στη συνέχεια, επιλέξτε Κατακόρυφα.

  4. Στην καρτέλα Ιδιότητες του δεξιού τμήματος παραθύρου, ανοίξτε το παράθυρο Προέλευση δεδομένων, στη συνέχεια, επιλέξτε Λογαριασμοί.

  5. (Προαιρετικό) Στη λίστα Διάταξη, κάντε διαφορετικές επιλογές.

  6. Στην καρτέλα Εισαγωγή, επιλέξτε Είσοδος και, στη συνέχεια, επιλέξτε Combo box. Επαναλάβετε το βήμα για να προσθέσετε ακόμη δύο στοιχεία ελέγχου σύνθετου πλαισίου.

  7. Για κάθε στοιχείο ελέγχου Combo box, στην καρτέλα Ιδιότητες του δεξιού τμήματος παραθύρου, ανοίξτε το παράθυρο Προέλευση δεδομένων και στη συνέχεια, επιλέξτε Λογαριασμοί Επιλέξτε Επεξεργασία δίπλα στην επιλογή Πεδία και, στη συνέχεια, επιλέξτε τις τιμές κύριου κειμένου και SearchField. Το κύριο κείμενο πρέπει να είναι η στήλη επιλογών που θέλετε να προσθέσετε στο σύνθετο πλαίσιο. Επαναλάβετε το βήμα για τα ακόμη δύο στοιχεία ελέγχου σύνθετου πλαισίου.

    Ορισμός τιμών σύνθετου πλαισίου.

  8. Τώρα επιλέξτε στοιχείο 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'))
    

    Προέλευση δεδομένων λογαριασμών.

Εμπειρία αναζήτησης χρήστη

Τα ακόλουθα παραδείγματα χρησιμοποιούν την προέλευση δεδομένωνIceCream:

Σε πολλές εφαρμογές, μπορείτε να πληκτρολογήσετε έναν ή περισσότερους χαρακτήρες σε ένα πλαίσιο αναζήτησης για να φιλτράρετε μια λίστα εγγραφών σε ένα μεγάλο σύνολο δεδομένων. Καθώς πληκτρολογείτε, η λίστα εμφανίζει μόνο εκείνες τις εγγραφές που ικανοποιούν τα κριτήρια αναζήτησης.

Τα παραδείγματα στο υπόλοιπο μέρος αυτού του άρθρου εμφανίζουν τα αποτελέσματα αναζήτησης σε μια λίστα Πελάτες που περιέχουν αυτά τα δεδομένα:

Αναζήτηση για πελάτες.

Για να δημιουργήσετε αυτήν την προέλευση δεδομένων ως συλλογή, δημιουργήστε ένα στοιχείο ελέγχου Button και ορίστε την ιδιότητα OnSelect σε αυτόν τον τύπο:

ClearCollect(Customers, Table({ Name: "Fred Garcia", Company: "Northwind Traders" }, { Name: "Cole Miller", Company: "Contoso" }, { Name: "Glenda Johnson", Company: "Contoso" }, { Name: "Mike Collins", Company: "Adventure Works" }, { Name: "Colleen Jones", Company: "Adventure Works" }) )

Όπως και σε αυτό το παράδειγμα, μπορείτε να εμφανίσετε μια λίστα εγγραφών σε ένα στοιχείο ελέγχου Συλλογή στο κάτω μέρος μιας οθόνης. Κοντά στο επάνω μέρος της οθόνης, μπορείτε να προσθέσετε ένα στοιχείο ελέγχου Text input, που ονομάζεται SearchInput, ώστε οι χρήστες να μπορούν να καθορίσουν τις εγγραφές που τους ενδιαφέρουν.

Αναζήτηση με χρήση της εισόδου αναζήτησης.

Καθώς ο χρήστης πληκτρολογεί χαρακτήρες στο στοιχείο ελέγχου SearchInput, τα αποτελέσματα της συλλογής φιλτράρονται αυτόματα. Στην περίπτωση αυτή, η συλλογή έχει ρυθμιστεί για την εμφάνιση καρτελών για τις οποίες το όνομα του πελάτη (όχι το όνομα της εταιρείας) ξεκινά με τη σειρά των χαρακτήρων στο στοιχείο SearchInput. Εάν ο χρήστης πληκτρολογήσει co στο πλαίσιο αναζήτησης, η συλλογή εμφανίζει αυτά τα αποτελέσματα:

Η αναζήτηση με ξεκινά με.

Για να φιλτράρετε με βάση τη στήλη Όνομα, ορίστε την ιδιότητα Items του στοιχείου ελέγχου "Συλλογή" σε έναν από αυτούς τους τύπους:

Τύπος Περιγραφή Αποτέλεσμα
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Φιλτράρει την προέλευση δεδομένων Customers για εγγραφές στις οποίες η συμβολοσειρά αναζήτησης εμφανίζεται στην αρχή της στήλης Name. Η δοκιμή δεν κάνει διάκριση πεζών-κεφαλαίων. Εάν ο χρήστης πληκτρολογήσει co στο πλαίσιο αναζήτησης, η συλλογή εμφανίζει Colleen Jones και Cole Miller. Η συλλογή δεν εμφανίζει το όνομα Mike Collins επειδή η στήλη Name για τη συγκεκριμένη εγγραφή δεν ξεκινά με τη συμβολοσειρά αναζήτησης. Φιλτράρισμα με έναρξη με.
Filter( Customers, SearchInput.Text in Name ) Φιλτράρει την προέλευση δεδομένων Customers για εγγραφές στις οποίες η συμβολοσειρά αναζήτησης εμφανίζεται οπουδήποτε στη στήλη Name. Η δοκιμή δεν κάνει διάκριση πεζών-κεφαλαίων. Εάν ο χρήστης πληκτρολογήσει co στο πλαίσιο αναζήτησης, η συλλογή εμφανίζει τα ονόματα Colleen Jones,Cole Miller και Mike Collins, επειδή η συμβολοσειρά αναζήτησης εμφανίζεται κάπου στη στήλη Name όλων αυτών των καρτελών. Φιλτράρισμα με δεδομένα εισόδου αναζήτησης.
Search(Customers, SearchInput.Text, Name) Παρόμοια με τη χρήση του τελεστή in, η συνάρτηση Search αναζητεί μια αντιστοίχιση σε οποιοδήποτε σημείο μέσα στη στήλη Όνομα κάθε εγγραφής. Πρέπει να περικλείσετε τη στήλη ονόματος σε διπλά εισαγωγικά. Αναζήτηση πελατών.

Μπορείτε να επεκτείνετε την αναζήτησή σας για να συμπεριλάβετε τη στήλη Εταιρεία και τη στήλη Όνομα:

Τύπος Περιγραφή Αποτέλεσμα
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Φιλτράρει την πηγή δεδομένων Πελάτες για εγγραφές στις οποίες είτε η στήλη Όνομα είτε η στήλη Εταιρία ξεκινά με τη συμβολοσειρά αναζήτησης (για παράδειγμα, co). Ο ||τελεστής είναι true, εάν οποιαδήποτε συνάρτηση StartsWith είναι true. Φιλτράρισμα πελατών, έναρξη με.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Φιλτράρει την προέλευση δεδομένων Company για εγγραφές στις οποίες είτε η στήλη Name, είτε η στήλη Company περιέχει οπουδήποτε τη συμβολοσειρά αναζήτησης (για παράδειγμα, co). Φιλτράρισμα πελατών δεδομένα εισόδου αναζήτησης.
Search(Customers, SearchInput.Text, Name, Company) Παρόμοια με τη χρήση του τελεστή in, η συνάρτηση Search εκτελεί αναζήτηση στην προέλευση δεδομένων Πελάτες για εγγραφές στις οποίες είτε η στήλη Όνομα είτε η στήλη Εταιρεία περιέχει οπουδήποτε τη συμβολοσειρά αναζήτησης (για παράδειγμα, co). Η ανάγνωση και εγγραφή της συνάρτησης Search είναι πιο εύκολη από εκείνη της συνάρτησης Filter, αν θέλετε να καθορίσετε πολλές στήλες και πολλούς τελεστές in.  Αναζήτηση πελατών με δεδομένα εισόδου αναζήτησης.