Partajați prin


Funcțiile Sort și SortByColumns

Se aplică pentru: planșă de lucru aplicații Fluxuri desktop Aplicații bazate pe model Power Pages Power Platform CLI

Sortează un tabel.

Notă

Comenzile PAC CLI pac power-fx nu acceptă funcția SortByColumns .

Descriere

Funcția Sort sortează un tabel pe baza unei formule.

Formula este evaluată pentru fiecare înregistrare din tabel, iar rezultatele sunt utilizate pentru a sorta tabelul. Formula trebuie să aibă ca rezultat un număr, un șir sau o valoare booleană; nu poate avea ca rezultat un tabel sau o înregistrare.

Câmpurile înregistrării procesate în prezent sunt disponibile în cadrul formulei. Utilizați operatorul ThisRecord sau pur și simplu faceți referire la câmpuri după nume, așa cum ați face cu orice altă valoare. Operatorul Ca poate fi, de asemenea, utilizat pentru a denumi înregistrarea care este procesată, ceea ce poate face formula dvs. să fie mai ușor de înțeles și înregistrările imbricate să fie accesibile. Pentru informații suplimentare, consultați exemplele de mai jos și lucrul cu domeniul de aplicare al înregistrărilor.

Pentru a sorta mai întâi o coloană și apoi alta, încorporați o formulă Sort formulă în cadrul alteia. De exemplu, puteți utiliza această formulă pentru a sorta un tabel Persoane de contact mai întâi după coloana Numele de familie și apoi după coloana Prenumele: Sort( Sort( Contacts, LastName ), FirstName )

Funcția SortByColumns poate fi utilizată, de asemenea, pentru a sorta un tabel după una sau mai multe coloane.

Lista parametrilor pentru SortByColumns furnizează numele coloanelor pentru sortare și direcția de sortare pe coloană. Sortarea se realizează în ordinea parametrilor (mai întâi după prima coloană, apoi a doua și așa mai departe). Numele coloanelor sunt specificate ca șiruri și necesită ghilimele duble dacă sunt incluse direct în lista de parametri. De exemplu, SortByColumns( CustomerTable, "LastName" ).

Puteți combina SortByColumns cu Drop down sau controlul Casetă cu listă pentru a le permite utilizatorilor să selecteze ce coloană să ordoneze.

Pe lângă sortarea ascendentă sau descendentă, SortByColumns se poate sorta pe baza unui tabel de valori cu o singură coloană De exemplu, puteți sorta înregistrarea în funcție de numele unei zile a săptămânii specificând [ "Luni", "Marți", "Miercuri", "Joi", "Vineri", "Sâmbătă", "Duminică" ] ca ordine de sortare. Toate înregistrările care includ Luni" vor fi incluse primele, urmate de Marţi și așa mai departe. Înregistrările găsite care nu apar în tabelul de sortare sunt puse la sfârșitul listei.

Tabelele sunt o valoare în Power Apps, la fel ca un șir sau un număr. Pot fi transmise și returnate din funcții. Sort și SortByColumn nu modifică un tabel, ci iau un tabel ca argument și returnează un tabel nou care a fost sortat. Pentru mai multe detalii, consultați lucrul cu tabele.

Delegare

Atunci când este posibil, Power Apps va delega operațiunile de filtrare și sortare către sursa de date și va pagina rezultatele la cerere. De exemplu, când porniți o aplicație care arată un control Galerie completat cu date, doar primul set de înregistrări va fi adus inițial pe dispozitiv. Pe măsură ce utilizatorul defilează, se aduc date suplimentare din sursa de date. Rezultatul este un timp de pornire mai rapid pentru aplicație și acces la seturi de date foarte mari.

Cu toate acestea, delegarea nu este posibilă întotdeauna. Sursele de date suportă diverse funcții și diverși operatori cu delegarea. Dacă delegarea completă a unei formule nu este posibilă, mediul de creare va semnala porțiunea care nu poate fi delegată cu un avertisment. Atunci când este posibil, schimbați formula pentru a evita funcțiile și operatorii care nu se pot delega. Lista de delegare prezintă sursele de date și operațiunile care se pot delega.

Dacă delegarea nu este posibilă, Power Apps va extrage doar un set mic de înregistrări la care să se lucreze local. Funcțiile de filtrare și sortare vor funcționa pentru un set redus de înregistrări. Este posibil ca elementele disponibile în Galerie să nu reprezinte întreaga situație, lucru care-i poate deruta pe utilizatori.

Consultați prezentarea generală a delegării pentru mai multe informații.

Sintaxă

Sort( Table, Formula [, SortOrder ] )

  • Table – Obligatoriu. Tabel de sortat.
  • Formula – Obligatoriu. Această formulă este evaluată pentru fiecare înregistrare din tabel, iar rezultatele sunt utilizate pentru a sorta tabelul. Puteți face referire la coloane din tabel.
  • SortOrder - Opțional. Specificați SortOrder.Descending pentru a sorta tabelul în ordine descrescătoare. SortOrder.Ascending este valoarea implicită.

SortByColumns( Table, ColumnName1 [, SortOrder1, ColumnName2, SortOrder2, ... ] )

  • Table – Obligatoriu. Tabel de sortat.

  • ColumnName(s) - Obligatoriu. Numele coloanelor pentru sortare, ca șiruri.

  • SortOrder(s) - Opțional. SortOrder.Ascending sau SortOrder.Descending. SortOrder.Ascending este valoarea implicită. Dacă sunt furnizate mai multe ColumnNames, toate coloanele, exceptând ultima, trebuie să includă o SortOrder.

    Notă

    Pentru sursele de date SharePoint și Excel care conțin nume de coloană cu spații, specificați fiecare spațiu ca "_x0020_". De exemplu, specificați "Numele coloanei" ca "Nume_x0020_coloană".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – Obligatoriu. Tabel de sortat.

  • ColumnName - Obligatoriu. Numele coloanei de sortat, ca șiruri.

  • SortOrderTable - Obligatoriu. Tabel cu o singură coloană de valori după care sortat.

    Notă

    Pentru sursele de date SharePoint și Excel care conțin nume de coloană cu spații, specificați fiecare spațiu ca "_x0020_". De exemplu, specificați "Numele coloanei" ca "Nume_x0020_coloană".

Exemple

Pentru următoarele exemple, vom utiliza IceCreamsursa de date, care conține datele din acest tabel:

Exemplu de înghețată.

Formula Descriere Rezultat
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Sortează Înghețata după coloana Aromă. Coloana Flavor conține șiruri, astfel încât tabelul este sortat în ordine alfabetică. În mod implicit, ordinea de sortare este crescătoare. Sortate alfabetic.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Sortează Înghețată după coloana Cantitate. Coloana Cantitate conține numere, astfel încât tabelul este sortat în ordine numerică. În mod implicit, ordinea de sortare este crescătoare. Sortate numeric.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Sortează Înghețată după coloana Cantitate. Coloana Cantitate conține numere, astfel încât sortarea se efectuează în ordine numerică. Ordinea de sortare a fost specificată ca descrescătoare. Sortate numeric și descendent.
Sort( IceCream, Quantity + OnOrder ) Sortează Înghețata pe baza sumei de la coloanele Cantitate și La comandă pentru fiecare înregistrare în parte. Suma este un număr, deci tabelul este sortat numeric. În mod implicit, ordinea de sortare este crescătoare. Deoarece sortăm după o formulă și nu după valorile brute ale coloanei, nu există niciun echivalent care să utilizeze SortByColumns. Sortate numeric și ascendent.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending )
Sortează Înghețata mai întâi după coloana La comandă, iar apoi după coloana Cantitate. Observați că "Fistic" a trecut înaintea "Vaniliei" în prima sortare bazată pe La comandă, iar apoi amândouă au fost mutate la locul potrivit în funcție de valoarea Cantitate. Sortat cu Fistic peste Vanilie.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Sortează Înghețata după coloana Aromă pe baza tabelului cu o singură coloană care conține "Fistic" și "Căpșuni". Înregistrările care conțin o Aromă de "Fistic" vor apărea primele în rezultat, urmate de înregistrări care conțin "Căpșuni". Pentru valorile din coloana Aromă care nu se potrivesc, cum ar fi "Vanilie", acestea vor apărea după elementele care au fost potrivite. Sortat cu Fistic peste Căpșuni.

Pas cu pas

Pentru a executa singuri aceste exemple, creați sursa de date IceCream ca o colecție:

  1. Adăugați un buton, apoi setați proprietatea OnSelect la această formulă:
    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. Previzualizați aplicația, selectați butonul, apoi apăsați Esc pentru a reveni la spațiul de lucru implicit.
  3. Selectați Colecții în meniul Fişier pentru a afișa colecția pe care tocmai ați creat-o, apoi apăsați Esc pentru a reveni la spațiul de lucru implicit.

Sortare

  1. Adăugați alt buton, apoi setați proprietatea OnSelect la această formulă:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Formula anterioară creează o a doua colecție, denumită SortByFlavor, care conține aceleași date ca și Înghețată. Cu toate acestea, noua colecție conține datele ordonate alfabetic după coloana Aromă în ordine crescătoare.

  2. Apăsați F5, selectați butonul nou, apoi apăsați Esc.

  3. Selectați Colecții în meniul Fişier pentru a afișa ambele colecții, apoi apăsați Esc pentru a reveni la spațiul de lucru implicit.

  4. Repetați ultimii trei pași, dar schimbați numele colecției pe care doriți să o creați și înlocuiți formula Sortare cu o formulă diferită din tabelul de exemple anterioare din această secțiune care folosește Sortare.

SortByColumns

  1. Adăugați alt buton, apoi setați proprietatea OnSelect la această formulă:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Cantitate", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    Formula anterioară creează o a treia colecție, denumită SortByQuantity, care conține aceleași date ca și Înghețată. Cu toate acestea, noua colecție conține datele sortate numeric după coloana Cantitate în ordine crescătoare, iar apoi după coloana Aromă în ordine descrescătoare.

  2. Apăsați F5, selectați butonul nou, apoi apăsați Esc.

  3. Selectați Colecții în meniul Fişier pentru a afișa toate cele trei colecții, apoi apăsați Esc pentru a reveni la spațiul de lucru implicit.

  4. Repetați ultimii trei pași, dar schimbați numele colecției pe care doriți să o creați și înlocuiți formula SortByColumns cu o formulă diferită din tabelul de exemple anterioare din această secțiune care folosește SortByColumns.