Συναρτήσεις Sort και SortByColumns

Ισχύει σε: Εφαρμογές καμβά Ροές επιφάνειας εργασίας Εφαρμογές βάσει μοντέλου 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 και ούτω καθεξής. Οι εγγραφές που δεν εμφανίζονται στον πίνακα ταξινόμησης θα τοποθετούνται στο τέλος της λίστας.

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

Ανάθεση

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

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

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

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

Σύνταξη

Sort( Table, Formula [, SortOrder ] )

  • Πίνακας – Υποχρεωτικό. Πίνακας προς ταξινόμηση.
  • Formula - Υποχρεωτικό. Αυτός ο τύπος υπολογίζεται για κάθε εγγραφή του πίνακα και τα αποτελέσματα χρησιμοποιούνται για την ταξινόμηση του πίνακα. Μπορείτε να αναφερθείτε σε στήλες στον πίνακα.
  • 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_". Για παράδειγμα, καθορίστε "Όνομα στήλης" σαν "Όνομα Στήλης_x0020".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Πίνακας – Υποχρεωτικό. Πίνακας προς ταξινόμηση.

  • ColumnName - Υποχρεωτικό. Το όνομα στήλης προς ταξινόμηση, ως συμβολοσειρές.

  • SortOrderTable - Υποχρεωτικό. Πίνακας τιμών μοναδικής στήλης προς ταξινόμηση.

    Σημείωμα

    Για προελεύσεις δεδομένων SharePoint και Excel που περιέχουν ονόματα στηλών με διαστήματα, καθορίστε κάθε διάστημα ως "_x0020_". Για παράδειγμα, καθορίστε "Όνομα στήλης" σαν "Όνομα Στήλης_x0020".

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

Για τα παρακάτω παραδείγματα, θα χρησιμοποιήσουμε την προέλευση δεδομένων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. Να σημειωθεί ότι η τιμή "Pistachio" εμφανίστηκε πάνω από την τιμή "Vanilla" στην πρώτη ταξινόμηση βάσει της στήλης OnOrder και, στη συνέχεια, μετακινήθηκαν μαζί στην κατάλληλη θέση τους βάσει της στήλης Quantity. Ταξινομημένο με το φυστίκι πάνω από τη βανίλια.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Ταξινομεί τον πίνακα IceCream βάσει της στήλης του Flavor, σύμφωνα με τον πίνακα μοναδικής στήλης που περιέχει τις γεύσεις "Pistachio" και "Strawberry". Εγγραφές με Γεύση "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. Επιλέξτε Collections στο μενού File για να εμφανίσετε τη συλλογή που μόλις δημιουργήσατε και, στη συνέχεια, πατήστε το Esc για να επιστρέψετε στον προεπιλεγμένο χώρο εργασίας.

Sort

  1. Προσθέστε ένα άλλο κουμπί και ορίστε την ιδιότητά του OnSelect σε αυτόν τον τύπο:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Ο προηγούμενος τύπος δημιουργεί μια δεύτερη συλλογή με την ονομασία SortByFlavor, η οποία περιέχει τα ίδια δεδομένα με την προέλευση Ice Cream. Ωστόσο, η νέα συλλογή περιέχει τα δεδομένα ταξινομημένα αλφαβητικά κατά τη στήλη Flavor σε αύξουσα σειρά.

  2. Πατήστε το F5, επιλέξτε το νέο κουμπί και, στη συνέχεια, πατήστε Esc.

  3. Επιλέξτε Collections στο μενού File για να εμφανίσετε αμφότερες τις συλλογές και, στη συνέχεια, πατήστε το 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. Επιλέξτε Collections στο μενού File για να εμφανίσετε και τις τρεις συλλογές και, στη συνέχεια, πατήστε το Esc για να επιστρέψετε στον προεπιλεγμένο χώρο εργασίας.

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