Функције сортирања и сортирањаБ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 извор података, који садржи податке у овој табели:
Формула | Опис | Резултат |
---|---|---|
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 као а колекцију:
- Додајте дугме и подесите његово својство 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 } ) - Прегледајте апликацију, изаберите дугме, притисните Esc да бисте се вратили на подразумевани радни простор.
- Изаберите Колекције у менију Датотека за приказ колекције коју сте управо креирали, а затим притисните тастер Esc да бисте се вратили на подразумевани радни простор.
Сортирај
Додајте друго дугме и подесите његово својство OnSelect према овој формули:
ClearCollect( SortByFlavor, Sort( IceCream, Flavor ) )Претходна формула креира другу колекцију, која је названа SortByFlavor, која садржи исте податке као Ice Cream. Међутим, нова колекција садржи податке поређане абецедним редом према колони Flavor у растућем редоследу.
Притисните F5 и изаберите ново дугме, а затим притисните тастер Esc.
Изаберите Колекције у менију Датотека за приказ обе колекције, а затим притисните тастер Esc да бисте се вратили на подразумевани радни простор.
Поновите последња три корака, али промените име колекције коју желите да креирате и замените формулу Sort другачијом формулом него што је у табели са примерима из овог одељка која користи Sort.
SortByColumns
Додајте друго дугме и подесите његово својство OnSelect према овој формули:
ЦлеарЦоллецт (СортБyQуантитy, СортБyЦолумнс(ИцеЦреам, "Qуантитy", СортОрдер.Асцендинг, "Флавор", СортОрдер.Десцендинг ) )Претходна формула креира трећу колекцију, која је названа SortByQuantity, која садржи исте податке као Ice Cream. Међутим, нова колекција садржи податкесортиране нумерички према колони Quantity у растућем редоследу, а затим према колони Flavor у опадајућем редоследу.
Притисните F5 и изаберите ново дугме, а затим притисните тастер Esc.
Изаберите Колекције у менију Датотека за приказ све три колекције, а затим притисните тастер Esc да бисте се вратили на подразумевани радни простор.
Поновите последња три корака, али промените име колекције коју желите да креирате и замените формулу SortByColumns другачијом формулом него што је у табели са примерима из овог одељка која користи SortByColumns.