Συναρτήσεις Sort και SortByColumns
Ισχύει για: Εφαρμογές καμβά Ροές επιφάνειας εργασίας Εφαρμογές Power Pages Power Platform βάσει μοντέλου CLI
Ταξινομεί έναν πίνακα.
Σημείωμα
PAC CLI pac power-fx εντολές δεν υποστηρίζουν τη συνάρτηση SortByColumns .
Description
Η συνάρτηση Sort ταξινομεί έναν πίνακα βάσει ενός τύπου.
Ο τύπος υπολογίζεται για κάθε εγγραφή του πίνακα και τα αποτελέσματα χρησιμοποιούνται για την ταξινόμηση του πίνακα. Ο τύπος πρέπει να έχει ως αποτέλεσμα έναν αριθμό, μια συμβολοσειρά ή μια δυαδική τιμή, όμως δεν μπορεί να οδηγήσει σε έναν πίνακα ή μια εγγραφή.
Στον τύπο είναι διαθέσιμα πεδία της καρτέλας που βρίσκεται υπό επεξεργασία τη δεδομένη στιγμή. Χρησιμοποιήστε τον τελεστή ThisRecord ή απλά πεδία αναφοράς με βάση το όνομα, όπως θα κάνατε με οποιαδήποτε άλλη τιμή. Ο τελεστής As μπορεί επίσης να χρησιμοποιηθεί για το όνομα της καρτέλας που υπόκειται σε επεξεργασία και η οποία μπορεί να σας βοηθήσει να κάνετε τον τύπο σας πιο κατανοητό και να κάνετε προσβάσιμες τις ένθετες καρτέλες. Για περισσότερες πληροφορίες, δείτε τα παρακάτω παραδείγματα και την ενότητα εργασία με πεδίο καρτελών.
Για ταξινόμηση πρώτα κατά μία στήλη και έπειτα κατά μία άλλη, ενσωματώνετε τον τύπο Sort μέσα σε έναν άλλο. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε αυτόν τον τύπο για να ταξινομήσετε έναν πίνακα Επαφές πρώτα κατά μια στήλη Επώνυμο και στη συνέχεια κατά μια στήλη Όνομα : Sort( Sort( Επαφές, Επώνυμο ) , Όνομα)
Η συνάρτηση SortByColumns μπορεί, επίσης, να χρησιμοποιηθεί για ταξινόμηση ενός πίνακα βάσει μίας ή περισσότερων στηλών.
Η λίστα παραμέτρων για τη συνάρτηση SortByColumns παρέχει τα ονόματα για τις στήλες προς ταξινόμηση και τη σειρά ταξινόμησης ανά στήλη. Η ταξινόμηση εκτελείται με τη σειρά των παραμέτρων (ταξινόμηση πρώτα κατά την πρώτη στήλη, έπειτα κατά τη δεύτερη και ούτω καθεξής). Τα ονόματα στηλών καθορίζονται ως συμβολοσειρές και απαιτούν διπλά εισαγωγικά εάν συμπεριλαμβάνονται απευθείας στη λίστα παραμέτρων. Για παράδειγμα, SortByColumns( CustomerTable, "LastName" ).
Μπορείτε να συνδυάσετε τη συνάρτηση SortByColumns με ένα στοιχείο ελέγχου Drop down ή List box για να επιτρέψετε σε χρήστες να επιλέγουν βάσει ποιας στήλης θα εκτελείται ταξινόμηση.
Επιπλέον της ταξινόμησης με αύξουσα ή φθίνουσα σειρά, η συνάρτηση SortByColumns μπορεί να ταξινομεί βάσει ενός πίνακα τιμών μοναδικής στήλης. Για παράδειγμα, μπορείτε να ταξινομήσετε εγγραφές βάσει του ονόματος της ημέρας της εβδομάδας παρέχοντας [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ] ως σειρά ταξινόμησης. Όλες οι εγγραφές με Monday θα προηγούνται και θα ακολουθούν εγγραφές με Tuesday και ούτω καθεξής. Οι εγγραφές που δεν εμφανίζονται στον πίνακα ταξινόμησης θα τοποθετούνται στο τέλος της λίστας.
Οι πίνακες είναι μια τιμή Power Apps, ακριβώς όπως μια συμβολοσειρά ή ένας αριθμός. Μπορεί να διαβιβαστεί και να επιστραφεί από συναρτήσεις. Οι επιλογές Sort και SortByColumn δεν τροποποιούν έναν πίνακα. Αντίθετα , λαμβάνουν έναν πίνακα ως όρισμα και επιστρέφουν έναν νέο πίνακα που έχει ταξινομηθεί. Δείτε εργασία με πίνακες για περισσότερες λεπτομέρειες.
Ανάθεση
Όταν είναι δυνατόν, το Power Apps θα αναθέτει λειτουργίες φίλτρου και ταξινόμησης στην προέλευση δεδομένων και τη σελίδα μέσω των αποτελεσμάτων κατ' απαίτηση. Για παράδειγμα, όταν ξεκινάτε μια εφαρμογή που εμφανίζει ένα στοιχείο ελέγχου Συλλογή γεμάτο δεδομένα, στη συσκευή θα φέρνεται αρχικά μόνο το πρώτο σύνολο καρτελών. Καθώς ο χρήστης θα κάνει κύλιση, θα έρχονται επιπρόσθετα δεδομένα από την προέλευση δεδομένων. Το αποτέλεσμα είναι ταχύτερος χρόνος έναρξης για την εφαρμογή και πρόσβαση σε πολύ μεγάλα σύνολα δεδομένων.
Παρόλα αυτά, η ανάθεση μπορεί να μην είναι πάντα δυνατή. Οι προελεύσεις δεδομένων ποικίλλουν ως προς τις λειτουργίες και τους τελεστές που υποστηρίζουν με ανάθεση. Εάν δεν είναι δυνατή η πλήρης ανάθεση ενός τύπου, το περιβάλλον σύνταξης θα επισημαίνει το τμήμα που δεν μπορεί να ανατεθεί με μια ειδοποίηση. Όταν είναι δυνατόν, εξετάστε το ενδεχόμενο αλλαγής του τύπου προκειμένου να αποφύγετε λειτουργίες και τελεστές που δεν μπορούν να ανατεθούν. Η λίστα ανάθεσης περιγράφει λεπτομερώς τις προελεύσεις δεδομένων και τις λειτουργίες που μπορούν να ανατεθούν.
Εάν η ανάθεση δεν είναι δυνατή, το Power Apps θα αντλεί μόνο ένα μικρό σύνολο καρτελών για εργασία τοπικά. Οι λειτουργίες φιλτραρίσματος και ταξινόμησης θα λειτουργούν σε μειωμένο σύνολο καρτελών. Στη Συλλογή μπορεί να μην είναι διαθέσιμο το πλήρες ιστορικό, κάτι που θα μπορούσε να προκαλέσει σύγχυση στους χρήστες.
Για περισσότερες πληροφορίες, δείτε την ενότητα επισκόπηση ανάθεσης.
Σύνταξη
Ταξινόμηση( Πίνακας; Τύπος [; Σειρά_ταξινόμησης ] )
- Πίνακας - Υποχρεωτικό. Πίνακας προς ταξινόμηση.
- Τύπος - Απαιτείται. Αυτός ο τύπος υπολογίζεται για κάθε εγγραφή του πίνακα και τα αποτελέσματα χρησιμοποιούνται για την ταξινόμηση του πίνακα. Μπορείτε να αναφερθείτε σε στήλες στον πίνακα.
- SortOrder - Προαιρετικό. Ορίστε SortOrder.Descending για ταξινόμηση του πίνακα σε φθίνουσα σειρά. SortOrder.Αύξουσα είναι η προεπιλεγμένη τιμή.
SortByColumns(Πίνακας ; ColumnName1[ ; SortOrder1; ColumnName2; SortOrder2; ... ] )
Πίνακας - Υποχρεωτικό. Πίνακας προς ταξινόμηση.
ColumnNames - Απαιτείται. Τα ονόματα στηλών προς ταξινόμηση, ως συμβολοσειρές.
SortOrders - Προαιρετικό. SortOrder.Ascending ή SortOrder.Descending. SortOrder.Αύξουσα είναι η προεπιλογή. Εάν παρέχονται πολλαπλά ColumnNames, όλα εκτός της τελευταίας στήλης πρέπει να περιλαμβάνουν μια τιμή SortOrder.
Σημείωμα
Για προελεύσεις δεδομένων SharePoint και Excel που περιέχουν ονόματα στηλών με διαστήματα, καθορίστε κάθε διάστημα ως "_x0020_". Για παράδειγμα, καθορίστε "Όνομα στήλης" σαν "Όνομα Στήλης_x0020".
SortByColumns(Πίνακας ; Όνομα_στήλης; Πίνακας_ταξινόμησης)
Πίνακας - Υποχρεωτικό. Πίνακας προς ταξινόμηση.
ColumnName - Απαιτείται. Το όνομα στήλης προς ταξινόμηση, ως συμβολοσειρές.
SortOrderTable - Απαιτείται. Πίνακας τιμών μοναδικής στήλης προς ταξινόμηση.
Σημείωμα
Για προελεύσεις δεδομένων SharePoint και Excel που περιέχουν ονόματα στηλών με διαστήματα, καθορίστε κάθε διάστημα ως "_x0020_". Για παράδειγμα, καθορίστε "Όνομα στήλης" σαν "Όνομα Στήλης_x0020".
Παραδείγματα
Για τα παρακάτω παραδείγματα, θα χρησιμοποιήσουμε την προέλευση δεδομένων IceCream, η οποία περιέχει τα δεδομένα σε αυτόν τον πίνακα:
Τύπος | Περιγραφή | Αποτέλεσμα |
---|---|---|
Ταξινόμηση ( Παγωτό, Γεύση ) SortByColumns( Παγωτό, "Γεύση" ) |
Ταξινομεί τον πίνακα IceCream βάσει της στήλης του Flavor. Η στήλη Flavor περιέχει συμβολοσειρές, επομένως ο πίνακας ταξινομείται αλφαβητικά. Από προεπιλογή, η σειρά ταξινόμησης είναι αύξουσα. | |
Ταξινόμηση ( Παγωτό, Ποσότητα ) SortByColumns( Παγωτό, "Ποσότητα") |
Ταξινομεί τον πίνακα IceCream κατά τη στήλη του Quantity. Η στήλη Quantity περιέχει αριθμούς, επομένως ο πίνακας ταξινομείται αριθμητικά. Από προεπιλογή, η σειρά ταξινόμησης είναι αύξουσα. | |
Ταξινόμηση (παγωτό, ποσότητα, SortOrder.φθίνουσα) SortByColumns( Παγωτό; "Ποσότητα"; SortOrder.Φθίνουσα) |
Ταξινομεί τον πίνακα IceCream κατά τη στήλη του Quantity. Η στήλη Quantity περιέχει αριθμούς, επομένως η ταξινόμηση εκτελείται αριθμητικά. Η σειρά ταξινόμησης έχει καθοριστεί ως φθίνουσα. | |
Ταξινόμηση ( Παγωτό, Ποσότητα + Παραγγελία ) | Ταξινομεί τον πίνακα IceCream βάσει του αθροίσματος των στηλών Quantity και OnOrder για κάθε μεμονωμένη εγγραφή. Το άθροισμα είναι ένας αριθμός, επομένως ο πίνακας ταξινομείται αριθμητικά. Από προεπιλογή, η σειρά ταξινόμησης είναι αύξουσα. Καθώς ταξινομούμε βάσει ενός τύπου και όχι βάσει καθαρών τιμών στηλών, δεν υπάρχει ισοδύναμο της χρήσης της συνάρτησης SortByColumns. | |
Ταξινόμηση ( Ταξινόμηση ( Παγωτό, OnOrder ), ποσότητα ) SortByColumns( Παγωτό, "OnOrder", SortOrder.Ascending, "Ποσότητα", SortOrder.Ascending) |
Ταξινομεί τον πίνακα IceCream πρώτα κατά τη στήλη του OnOrder και, στη συνέχεια, κατά τη στήλη του Quantity. Να σημειωθεί ότι η τιμή "Pistachio" εμφανίστηκε πάνω από την τιμή "Vanilla" στην πρώτη ταξινόμηση βάσει της στήλης OnOrder και, στη συνέχεια, μετακινήθηκαν μαζί στην κατάλληλη θέση τους βάσει της στήλης Quantity. | |
SortByColumns( Παγωτό; "Γεύση"; [ "Φιστίκι", "Φράουλα" ] ) | Ταξινομεί τον πίνακα IceCream βάσει της στήλης του Flavor, σύμφωνα με τον πίνακα μοναδικής στήλης που περιέχει τις γεύσεις "Pistachio" και "Strawberry". Εγγραφές με Γεύση "Pistachio" θα εμφανίζονται πρώτες στο αποτέλεσμα και θα ακολουθούν εγγραφές που περιέχουν "Strawberry". Για τιμές στη στήλη Flavor που δεν αντιστοιχίζονται, όπως "Vanilla", θα εμφανιστούν μετά την αντιστοίχιση των στοιχείων. |
Βήμα προς βήμα
Για να εκτελέσετε αυτά τα παραδείγματα μόνοι σας, δημιουργήστε την προέλευση δεδομένων IceCream ως μια συλλογή:
- Προσθέστε ένα κουμπί και ορίστε την ιδιότητα OnSelect σε αυτόν τον τύπο:
ClearCollect( Παγωτό, { Γεύση: "Σοκολάτα", Ποσότητα: 100, Κατόπιν παραγγελίας: 150 }, { Γεύση: "Βανίλια", Ποσότητα: 200, Κατόπιν παραγγελίας: 20 }, { Γεύση: "Φράουλα", Ποσότητα: 300, Κατόπιν παραγγελίας: 0 }, { Γεύση: "Σοκολάτα μέντας", Ποσότητα: 60, Κατόπιν παραγγελίας: 100 }, { Γεύση: "Φιστίκι", Ποσότητα: 200, Κατόπιν παραγγελίας: 10 } ) - Κάντε προεπισκόπηση της εφαρμογής, επιλέξτε το κουμπί και, στη συνέχεια, πατήστε το Esc για να επιστρέψετε στον προεπιλεγμένο χώρο εργασίας.
- Επιλέξτε Collections στο μενού File για να εμφανίσετε τη συλλογή που μόλις δημιουργήσατε και, στη συνέχεια, πατήστε το Esc για να επιστρέψετε στον προεπιλεγμένο χώρο εργασίας.
Sort
Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του OnSelect σε αυτόν τον τύπο:
ClearCollect (SortByFlavor, Ταξινόμηση (Παγωτό, Γεύση) )Ο προηγούμενος τύπος δημιουργεί μια δεύτερη συλλογή με την ονομασία SortByFlavor, η οποία περιέχει τα ίδια δεδομένα με την προέλευση Ice Cream. Ωστόσο, η νέα συλλογή περιέχει τα δεδομένα ταξινομημένα αλφαβητικά κατά τη στήλη Flavor σε αύξουσα σειρά.
Πατήστε το F5, επιλέξτε το νέο κουμπί και, στη συνέχεια, πατήστε Esc.
Επιλέξτε Collections στο μενού File για να εμφανίσετε αμφότερες τις συλλογές και, στη συνέχεια, πατήστε το Esc για να επιστρέψετε στον προεπιλεγμένο χώρο εργασίας.
Επαναλάβετε τα τελευταία τρία βήματα, αλλά αλλάξτε το όνομα της συλλογής που θέλετε να δημιουργήσετε και αντικαταστήστε τον τύπο Sort με ένα διαφορετικό τύπο από τον πίνακα παραδειγμάτων που παρουσιάστηκε νωρίτερα στην ενότητα αυτή, που χρησιμοποιεί τη συνάρτηση Sort.
SortByColumns
Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του OnSelect σε αυτόν τον τύπο:
ClearCollect( SortByQuantity, SortByColumns( Παγωτό, "Ποσότητα", SortOrder.Αύξουσα, "Γεύση", SortOrder.Φθίνουσα) )Ο προηγούμενος τύπος δημιουργεί μια τρίτη συλλογή με την ονομασία SortByQuantity, η οποία περιέχει τα ίδια δεδομένα με την προέλευση Ice Cream. Ωστόσο, η νέα συλλογή περιέχει τα δεδομένα ταξινομημένα αριθμητικά, κατά τη στήλη Quantity σε αύξουσα σειρά και, στη συνέχεια, κατά τη στήλη Flavor σε φθίνουσα σειρά.
Πατήστε το F5, επιλέξτε το νέο κουμπί και, στη συνέχεια, πατήστε Esc.
Επιλέξτε Collections στο μενού File για να εμφανίσετε και τις τρεις συλλογές και, στη συνέχεια, πατήστε το Esc για να επιστρέψετε στον προεπιλεγμένο χώρο εργασίας.
Επαναλάβετε τα τελευταία τρία βήματα, αλλά αλλάξτε το όνομα της συλλογής που θέλετε να δημιουργήσετε και αντικαταστήστε τον τύπο SortByColumns με ένα διαφορετικό τύπο από τον πίνακα παραδειγμάτων που παρουσιάστηκε νωρίτερα στην ενότητα αυτή, που χρησιμοποιεί τη συνάρτηση SortByColumns.