Funkcijos Sort and SortByColumns

Taikoma: Drobės programos Darbalaukio srautai Modeliu pagrįstos programos Power Platform CLI

Surikiuoja lentelę .

Pastaba.

PAC CLI pac power-fx komandos nepalaiko SortByColumns funkcijos.

Aprašą

Sort funkcija surikiuoja lentelę pagal formulę.

Formulė įvertinama kiekvienam lentelės įrašui , o rezultatai panaudojami surikiuoti lentelę. Formulė turi būti skaičius, eilutė arba Bulio logikos vertė; ji negali būti lentelė arba įrašas.

Formulėje pasiekiami šiuo metu apdorojamo įrašo laukai. Naudokite operatorių ThisRecord arba tiesiog laukus, kaip ir bet kurią kitą reikšmę, nurodykite pagal pavadinimus. Operatorių As taip pat galima naudoti norint pavadinti apdorojamą įrašą. Tai gali padėti lengviau suprasti formulę ir įdėtuosius įrašus pritaikyti neįgaliesiems. Norėdami gauti daugiau informacijos, žr. tolesnius pavyzdžius ir įrašą apie darbą su įrašų aprėptimi.

Jei norite rūšiuoti pirmiausia pagal vieną stulpelį, o tada kitą, galite įdėti Sortformulę vieną į kitą. Pavyzdžiui, galite naudoti šią formulę, kad pirmiausia būtų rūšiuojama Contacts lentelė pagal LastName stulpelį, o tada FirstName stulpelį: Sort( Sort( Contacts, LastName ), FirstName )

FunkcijąSortByColumnstaip pat galima naudoti rikiuojant lentelę pagal vieną ar daugiau stulpelių.

SortByColumns parametrų sąraše pateikiami stulpelių pavadinimai, rikiuojami pagal ir rikiavimo kryptį stulpelyje. Rikiavimas atliekamas pagal parametrų tvarką (surikiuotas pirmiausia pagal pirmąjį stulpelį, tada – antrąjį ir t.t.). Stulpelių pavadinimai nurodomi eilutėmis, reikalaujančiais dvigubų kabučių, jei jos tiesiogiai įtraukiamos į parametrų sąrašą. Pavyzdžiui, SortByColumns( CustomerTable, "LastName" ).

Galite jungti SortByColumns su Drop down arList box valdikliu, kad vartotojai pasirinktų pagal kurį stulpelį rikiuoti.

Be rikiavimo didėjimo arba mažėjimo tvarka SortByColumns gali rikiuoti pagal vieno stulpelio verčių lentelę. Pavyzdžiui, galite rikiuoti įrašą pagal savaitės dieną pateikiant rikiavimo tvarką[ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday" ]. Visi įrašai, turintys Monday vertę, bus rodomi pirmi, po to Tuesday ir t.t. Rasti įrašai, nerodomi rikiavimo lentelėje, pateikiami sąrašo pabaigoje.

Lentelėsturi vertę "Power Apps" kaip ir eilutė arba skaičius. Jie gali būti perduodami ir grąžinami iš funkcijų. Sort ir SortByColumn nemodifikuoja lentelės; vietoj to, jos priima lentelę kaip argumentą ir grąžina naują surikiuotą lentelę. Norėdami sužinoti daugiau informacijos, peržiūrėkite Darbas su lentelėmis.

Perdavimas

Kai bus įmanoma, „Power Apps“ filtravimo ir rikiavimo operacijas, naudodama rezultatų pareikalavus funkciją, perduos duomenų šaltiniui ir puslapiui. Pavyzdžiui, kai paleidžiate programą, kurioje rodomas duomenimis užpildytas valdiklis Galerija, įrenginyje iš pradžių bus pateikiami tik pirmieji keletas įrašų. Vartotojui slenkant, iš duomenų šaltinio pateikiama papildomų duomenų. Rezultatas – greičiau paleidžiama programa ir prieiga prie labai didelių duomenų rinkinių.

Tačiau perduoti ne visada gali būti įmanoma. Duomenų šaltiniai skiriasi tuo, kokias funkcijas ir kokius operatorius jie palaiko, kai naudojama perdavimo funkcija. Jei visiškai perduoti formulės neįmanoma, kūrimo aplinka negalimą perduoti dalį pažymės įspėjimu. Kai įmanoma, apsvarstykite galimybę formulę pakeisti, kad išvengtumėte tokių funkcijų ir operatorių, kurių negalima perduoti. Perdavimo sąraše išsamiai nurodyta, kuriuos duomenų šaltinius ir kurias operacijas galima perduoti.

Jei perduoti neįmanoma, „Power Apps“ gaus tik keletą įrašų, su kuriais bus galima dirbti vietoje. Filtravimo ir rikiavimo funkcijos veiks mažesniame įrašų rinkinyje. Gali būti pateikiama ne visa informacija apie tai, ko yra galerijoje, ir tai gali būti painu vartotojams.

Norėdami gauti daugiau informacijos, žr. perdavimo apžvalgą.

Sintaksė

Sort ( Table, Formula [, SortOrder ] )

  • Table – būtina. Lentelė, kurią norite surikiuoti.
  • Formula – būtina. Formulė įvertinama kiekvienam lentelės įrašui, o rezultatai panaudojami surikiuoti lentelę. Stulpelius galite nurodyti lentelėje.
  • SortOrder - Pasirinktinas. Nurodykite SortOrder.Descending, kad surikiuotumėte lentelę mažėjančia tvarka. SortOrder.Ascending yra numatytoji vertė.

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

  • Table – būtina. Lentelė, kurią norite surikiuoti.

  • ColumnName(s) - Būtinas. Stulpelių pavadinimai rikiuojami kaip eilutės.

  • SortOrder(s) - Pasirinktinas. SortOrder.Ascendingarba SortOrder.Descending. SortOrder.Ascendingyra numatytoji vertė. Jei pateikiami ColumnNames, visi, išskyrus paskutinį stulpelį, turi turėti SortOrder.

    Pastaba.

    Naudojant „SharePoint“ ir „Excel” duomenų šaltinius, turinčius stulpelių pavadinimus su tarpais, kiekvieną tarpą nurodykite kaip _x0020_. Pavyzdžiui, nurodykite "Column Name"kaip "Column_x0020_Name".

SortByColumns ( Table, ColumnName, SortOrderTable )

  • Table – būtina. Lentelė, kurią norite surikiuoti.

  • ColumnName - Būtinas. Stulpelių pavadinimai rikiuojami kaip eilutės.

  • SortOrderTable - Būtinas. Vieno stulpelio verčių lentelė, kurią norite rikiuoti pagal.

    Pastaba.

    Naudojant „SharePoint“ ir „Excel” duomenų šaltinius, turinčius stulpelių pavadinimus su tarpais, kiekvieną tarpą nurodykite kaip _x0020_. Pavyzdžiui, nurodykite "Column Name"kaip "Column_x0020_Name".

Pavyzdžiai

Toliau pateiktuose pavyzdžiuose naudosime Ledųduomenų šaltinį, kuriame yra šios lentelės duomenys:

Ledų pavyzdys.

Formulė Aprašymas Rezultatas
Sort( IceCream, Flavor )

SortByColumns( Ledai, „Skonis” )
Surikiuoja IceCream pagal jų Flavorstulpelį. Flavor stulpelyje yra eilučių, todėl lentelė rūšiuojama abėcėlės tvarka. Pagal numatytuosius nustatymus, rikiavimo tvarka yra didėjanti. Abėcėlės tvarka rūšiuota.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Surikiuoja IceCream pagal jų Quantitystulpelį. Quantity stulpelyje yra skaičių, todėl lentelė rūšiuojama pagal skaičius. Pagal numatytuosius nustatymus, rikiavimo tvarka yra didėjanti. Rūšiuota skaitine tvarka.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Surikiuoja IceCream pagal jų Quantitystulpelį. Quantity stulpelyje yra skaičių, todėl rikiuojama pagal skaičius. Rikiavimo tvarka buvo nurodyta kaip mažėjanti. Rūšiuota skaitine ir mažėjimo tvarka.
Sort( IceCream, Quantity + OnOrder ) Rikiuoja IceCream pagal jų Quantity ir OnOrder stulpelių sumą kiekvienam įrašu atskirai. Suma yra skaičius, todėl lentelė rikiuojama pagal skaičius. Pagal numatytuosius nustatymus, rikiavimo tvarka yra didėjanti. Kadangi rikiuojame pagal formulę, o ne pagal neapdorotas stulpelių vertes, nėra ekvivalento SortByColumns. Rūšiuota skaitine ir mažėjimo tvarka.
Sort( Sort( IceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending )
Rikiuoja IceCreampirma pagal jų OnOrder stulpelį, tada pagal jo Quantitystulpelį. Atkreipkite dėmesį, kad „pistacijų” pakilo virš „vanilės”"vaniliniai" pirmoje surikiuotoje vietoje remiantis OnOrder, o tada kartu jie persikėlė į atitinkamą vietą pagal Quantity. Rūšiuota su pistacijomis virš vanilės.
SortByColumns( Ledai, "Skonis", [ "Pistaciniai", "Braškiniai" ] ) Rikiuoja IceCreampagal jų Flavorstulpelį, pagrįstą vieno stulpelio lentele, kurioje yra „pistacijų” ir „braškių”. Įrašai, turintys Flavor „pistacijų”, bus rodomi pirmi rezultatuose, o po jų seks „braškių”. Jei stulpelyje Flavornėra sutampančių verčių., pvz., „vanilės”, jos bus rodomos po atitikusių elementų. Rūšiuota su pistacijomis virš braškių.

Nuoseklūs veiksmai

Norėdami patys paleisti šiuos pavyzdžius, sukurkite " IceCreamduomenų šaltinį kaip rinkinį :

  1. Įtraukite mygtuką ir nustatykite joOnSelect ypatybę pagal šią formulę:
    ClearCollect( Ledai, { Skonis: "Šokoladiniai", Kiekis: 100, OnOrder: 150 }, { Skonis: "Vaniliniai", Kiekis: 200, OnOrder: 20 }, { Skonis: "Braškiniai", Kiekis: 300, OnOrder: 0 }, { Skonis: "Šokoladiniai mėtiniai", Kiekis: 60, OnOrder: 100 }, { Skonis: "Pistaciniai", Kiekis: 200, OnOrder: 10 } )
  2. Peržiūrėkite programą, spustelėkite mygtuką ir tada spustelėkite „Esc”, kad grįžtumėte į numatytąją darbo sritį.
  3. PasirinkiteCollectionsFile meniu, kad rodytų jūsų ką tik sukurtą rinkinį, o tada paspauskite „Esc”, kad grįžtumėte į numatytąją darbo sritį.

Rikiuoti

  1. Įtraukite kitą mygtuką ir nustatykite joOnSelect ypatybę pagal šią formulę:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Ankstesnė formulė sukuria antrąją kolekciją, pavadintą SortByFlavor, kuriame yra tokie patys duomenys kaip ir Ice Cream. Tačiau naujame rinkinyje yra duomenys, surikiuoti abėcėlės tvarka pagal Flavorstulpelį didėjančia tvarka.

  2. Paspauskite F5, pasirinkite naują mygtuką, tada paspauskite „Esc”.

  3. PasirinkiteCollectionsFile meniu, kad rodytų abu rinkinius, o tada paspauskite „Esc”, kad grįžtumėte į numatytąją darbo sritį.

  4. Pakartokite paskutinius tris žingsnius, bet pakeiskite norimo kurti rinkinio pavadinimą ir pakeiskite Sortformulę kita, pateikta anksčiau šioje sekcijoje pateiktoje pavyzdžių lentelėje, naudojančioje Sort.

SortByColumns

  1. Įtraukite kitą mygtuką ir nustatykite joOnSelect ypatybę pagal šią formulę:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    Ankstesnė formulė sukuria trečiąją kolekciją, pavadintą SortByQuantity, kuriame yra tokie patys duomenys kaip ir Ice Cream. Tačiau į naują rinkinį įtraukti duomenys, surikiuoti pagal skaičių, pagal Quantitystulpelį didėjančia tvarka, o tada pagal Flavorstulpelį mažėjančia tvarka.

  2. Paspauskite F5, pasirinkite naują mygtuką, tada paspauskite „Esc”.

  3. PasirinkiteCollectionsFile meniu, kad rodytų visus tris rinkinius, o tada paspauskite „Esc”, kad grįžtumėte į numatytąją darbo sritį.

  4. Pakartokite paskutinius tris žingsnius, bet pakeiskite norimo kurti rinkinio pavadinimą ir pakeiskite SortByColumnsformulę kita, pateikta anksčiau šioje sekcijoje pateiktoje pavyzdžių lentelėje, naudojančioje SortByColumns.