Делите путем


Функције сортирања и сортирањаБyЦолумнс

Важи за: Цанвас апликације Десктоп флоwс Модел-дривен аппс Power Pages Power Platform ЦЛИ

Сортира табелу.

Белешка

ПАЦ ЦЛИ пац поwер-фx команде не подржавају функцију СортБyЦолумнс .

Опис

Функција Sort сортира табелу на основу формуле.

Формула се процењује за сваки запис у табели, а резултати се користе за сортирање табеле. Формула мора да има број, низ или логичку вредност као резултат; она не може да има табелу или запис као резултат.

Поља записа који се тренутно обрађује су доступна у формули. Користите оператор ThisRecord или једноставно референцирајте поља по називу као и било коју другу вредност. Оператор As такође може да се користи за именовање записа који се обрађује што може да помогне вашој формули да лакше разуме и учини угнежђене записе доступнима. Више информација потражите у примерима у наставку и чланку о раду са опсегом записа.

Да бисте прво сортирали по једној колони, а затим по другој, у другу колону сте уметнули формулу Sort. На пример, можете користити ову формулу да бисте прво сортирали табелу Contacts према колони LastName, а затим према колони FirstName: Sort( Sort( Contacts, LastName ), FirstName )

Функција SortByColumns се такође може користити за сортирање табеле на основу једне или више колона.

Листа параметара за SortByColumns даје називе колона за поређење и смер сортирања по колони. Сортирање се врши редоследом параметара (сортирано прво према првој колони, затим према другој и тако редом). Називи колона су наведени као ниске за које су потребни двоструки наводници ако су директно укључене у листу параметара. На пример, SortByColumns( CustomerTable, "LastName" ).

Можете да комбинујете SortByColumns са котролом Падајућа листа или Поље листе како би се омогућило корисницима да одаберу у коју ће колону сортирати.

Поред растућег или опадајућег сортирања, SortByColumns може сортирати према табели вредности са једним колоном. На пример, можете сортирати запис на основу имена дана у недељи уношењем података [„понедељак“, „уторак“, „среда“, „четвртак“, „петак“, „субота“, „недеља“] као редослед сортирања. Сви записи који имају понедељак" биће на првом месту, а за њима следи уторак и тако редом. Пронађени записи који се не појављују у табели сортирања стављају се на крај листе.

Табеле су вредност у Power Apps, баш као ниска или број. Могу се проследити у функције и функције их могу вратити. Sort и SortByColumn не мењају табелу; уместо тога узимају табелу као аргумент и враћају нову табелу која је сортирана. За више детаља погледајте рад са табелама

Делегирање

Када је могуће, Power Apps ће делегирати операције за филтрирање и сортирање извору података и страници помоћу резултата на захтев. На пример, када покренете апликацију у којој је приказанa контрола Галерија попуњена подацима, само први скуп записа ће првобитно бити пренет у уређај. Док корисник помера садржај, додатни подаци се преузимају из извора података. Резултат је брже време покретања апликације и приступ веома великим скуповима података.

Међутим, делегирања није увек могуће. Извори података се разликују према функцијама и операторима које подржавају помоћу делегирања. Ако комплетно делегирање формуле није могуће, окружење за креирање користи упозорење да означи део који не може да се делегира. Када је могуће, размислите о промени формуле да бисте избегли функције и операторе који не могу да се делегирају. Листа делегирања наводи који извори података и операције могу да се делегирају.

Ако делегирање није могуће, Power Apps преузима само мали скуп записа са којима може локално да се ради. Функције филтрирања и сортирања функционишу на ограниченом скупу записа. Оно што је доступно у Галерији можда није комплетна слика, што може да збуни кориснике.

Више информација потражите у прегледу делегирања.

Синтакса

Sort( Table, Formula [, SortOrder ] )

  • Table – Обавезно. Табела за сортирање.
  • Formula – Обавезно. Ова формула се процењује за сваки запис у табели, а резултати се користе за сортирање табеле. Можете да референцирате колоне унутар табеле.
  • SortOrder – Опционално. Наведите SortOrder.Descending за сортирање табеле у опадајућем редоследу. SortOrder.Ascending је подразумевана вредност.

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

  • Table – Обавезно. Табела за сортирање.

  • ColumnName(s) – Обавезно. Називи колона за сортирање, као низови.

  • SortOrder(s) – Опционално. SortOrder.Ascending или SortOrder.Descending. SortOrder.Ascending је подразумевана вредност. Ако има више ColumnNames, све колоне осим последње морају да садрже SortOrder.

    Белешка

    За SharePoint и Excel изворе података који садрже називе колона са размацима, наведите сваки размак као "_x0020_". На пример, наведите "Column Name" као "Column_x0020_Name".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Table – Обавезно. Табела за сортирање.

  • ColumnName – Обавезно. Назив колоне за сортирање, као низови.

  • SortOrderTable – Обавезно. Табела вредности са једном колоном према којој се сортира.

    Белешка

    За SharePoint и Excel изворе података који садрже називе колона са размацима, наведите сваки размак као "_x0020_". На пример, наведите "Column Name" као "Column_x0020_Name".

Примери

За следеће примере ћемо користити IceCream извор података, који садржи податке у овој табели:

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 )

СортБyЦолумнс (ИцеЦреам, "ОнОрдер", СортОрдер.Асцендинг, "Qуантитy", СортОрдер.Асцендинг )
Сортира прво IceCream према колони OnOrder, а затим према колони Quantity. Имајте на уму да се „Пистаћи“ подигао изнад „Ванила“ у првом сортирању заснованом на OnOrder, а затим су се заједно преместили на одговарајуће место на основу Quantity. Сортирано са пистаћима изнад ванилије.
SortByColumns( IceCream, "Flavor", [ "Pistachio", "Strawberry" ] ) Сортира IceCream према колони Flavor на основу колоне са једном табелом која садржи "Pistachio" и "Strawberry". Записи који имају Flavor "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. Изаберите Колекције у менију Датотека за приказ колекције коју сте управо креирали, а затим притисните тастер Esc да бисте се вратили на подразумевани радни простор.

Сортирај

  1. Додајте друго дугме и подесите његово својство OnSelect према овој формули:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )

    Претходна формула креира другу колекцију, која је названа SortByFlavor, која садржи исте податке као Ice Cream. Међутим, нова колекција садржи податке поређане абецедним редом према колони Flavor у растућем редоследу.

  2. Притисните F5 и изаберите ново дугме, а затим притисните тастер Esc.

  3. Изаберите Колекције у менију Датотека за приказ обе колекције, а затим притисните тастер Esc да бисте се вратили на подразумевани радни простор.

  4. Поновите последња три корака, али промените име колекције коју желите да креирате и замените формулу Sort другачијом формулом него што је у табели са примерима из овог одељка која користи Sort.

SortByColumns

  1. Додајте друго дугме и подесите његово својство OnSelect према овој формули:
    ЦлеарЦоллецт (СортБyQуантитy, СортБyЦолумнс(ИцеЦреам, "Qуантитy", СортОрдер.Асцендинг, "Флавор", СортОрдер.Десцендинг ) )

    Претходна формула креира трећу колекцију, која је названа SortByQuantity, која садржи исте податке као Ice Cream. Међутим, нова колекција садржи податкесортиране нумерички према колони Quantity у растућем редоследу, а затим према колони Flavor у опадајућем редоследу.

  2. Притисните F5 и изаберите ново дугме, а затим притисните тастер Esc.

  3. Изаберите Колекције у менију Датотека за приказ све три колекције, а затим притисните тастер Esc да бисте се вратили на подразумевани радни простор.

  4. Поновите последња три корака, али промените име колекције коју желите да креирате и замените формулу SortByColumns другачијом формулом него што је у табели са примерима из овог одељка која користи SortByColumns.