Делите путем


Функције филтрирања, претраге и проналажења

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

Проналази један или више записа у табели.

Погледајте овај видео запис да бисте сазнали како да користите функције Филтер,Сеарцх ** и ЛоокУп :

Белешка

Пац ЦЛИ пац поwер-фx команде не подржавају функцију Сеарцх .

Опис

Функција Filter проналази записе у табели који задовољавају формулу. Користите опцију "Филтер " да бисте пронашли скуп записа који се подударају са једним или више критеријума и одбацили оне записе који то не одговарају.

Функција LookUp проналази први запис у табели који задовољава формулу. Користите LookUp да бисте пронашли један запис који одговара једном или више критеријума.

За оба се формула процењује за сваки запис табеле. Записи који резултирају у true су укључени у резултат. Поред нормалне формуле оператера, можете да користите операције in и exactin за оператере подударања подниски.

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

Функција Search проналази записе у табели који садрже ниску у једној од колона. Ниска се може појавити било где унутар колоне; на пример, тражење "роб" или "берт"би пронашло подударање у колони која садржи "Роберт". Претраживање не разликује велика и мала слова. За разлику од Filter и LookUp, функција Search користи једну ниску за подударање уместо формуле.

Filter и Search враћају табелу која садржи исте колоне као и оригинална табела, а и записе који одговарају критеријумима. LookUp враћа само први пронађени запис, након примене формуле за смањење записа на једну вредност. Ако није пронађена ниједна евиденција, Filter и Search враћају табелу празно, а LookUp враћа празно.

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

Делегирање

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

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

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

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

Синтакса

Filter(Table*, Formula1 [, *Formula2*, ... ] )

  • Table – Обавезно. Унесите табелу за претрагу.
  • Formula(s) – Обавезно. Формула по којој се процењује сваки запис табеле. Функција враћа све записе који резултирају у true. Можете да референцирате колоне унутар табеле. Ако наведете више од једне формуле, резултати свих формула се комбинују са функцијом And.

Search(Table*, SearchString, Column1 [, *Column2*, ... ] )

  • Table – Обавезно. Унесите табелу за претрагу.
  • SearchString – Обавезно. Ниска коју треба претражити. Ако је празно или празна ниска, сви се записи враћају.
  • Column(s) – Обавезно. Називи колона унутар Табеле који треба претражити. Ако је SearchString пронађена у подацима било које од тих колона као делимично подударање, вратиће се целокупни запис.

Белешка

Пре Power Apps верзије #пии_ајхфххгјз, имена колона за функцију "Претрага " наведена су са текстуалном ниском помоћу двоструких наводника, а ако су повезана са < ДИЦТ__извор података > дата соурце потребно је да буду и логичка имена. На пример, коришћено је логичко име"cr43e_наме" са двоструким наводницима уместо < ДИЦТ__име за приказ > дисплаy наме Име без наводника. За SharePoint и Еxцел изворе података који садрже имена колона са размацима, сваки размак је наведен са "_x0020_", на пример "Име колоне" као "Цолумн_x0020_Наме". Након ове верзије, све апликације су аутоматски ажуриране на нову синтаксу описану у овом чланку.

LookUp(Table*, Formula [, *ReductionFormula* ] )

  • Table – Обавезно. Унесите табелу за претрагу. У корисничком интерфејсу, синтакса се приказује као извор изнад оквира са функцијама.
  • Formula – Обавезно. Формула по којој се процењује сваки запис табеле. Функција враћа први запис који је резултирао у true. Можете да референцирате колоне унутар табеле. У корисничком интерфејсу синтакса је приказана као услов изнад оквира са функцијама.
  • ReductionFormula – Опционално. Ова формула се процењује преко пронађеног записа, а затим смањује запис на једну вредност. Можете да референцирате колоне унутар табеле. Ако не користите овај параметар, функција враћа цео запис из табеле. У корисничком интерфејсу синтакса је приказана као резултат изнад оквира са функцијама.

Примери

Следећи примери користе IceCream извор података:

Сладолед < ДИЦТ__извор података > дата соурце </ДИЦТ__извор података >.

Формула Опис Резултат
Filter( IceCream, OnOrder > 0 ) Враћа записе где је OnOrder већа од нуле. Филтрирај по поруџбини.
Filter( IceCream, Quantity + OnOrder > 225 ) Враћа записе где је сума колона Количине и OnOrder већа од 225. Филтрирајте количину и поруџбину.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Враћа записе где се реч „чоколада“ појављује у називу Flavor, независно од великих или малих слова. Филтрирање ниже.
Филтер (ИцеЦреам, Количина < 10 && ОнОрдер < 20) Враћа записе где је Количина мање од 10 и OnOrder мање од 20. Ниједан запис не одговара овим критеријумима, па се враћа празна табела. Филтрирајте количину.
Претрага (ИцеЦреам, "цхоц", Укус) Враћа записе где се ниска „choc“ појављује у називу Flavor, независно од великих или малих слова. Ставке претраге.
Претрага (ИцеЦреам, "", Укус) Пошто је термин за претрагу празан, сви се записи враћају. Претражите све ставке.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Тражи плочу са Укусом једнаку "Чоколади", од којих постоји. За први пронађени запис враћа се Количина тог записа. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Претражује запис са Количином већом од 150, од којих има више. За први пронађени запис, а то је „Ванила“ Flavor, враћа износ колона Количина и OnOrder. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Претражује снимак где је Flavor једнако „пистација“, од којих не постоји ниједна. Пошто ниједна није пронађена, Проналажење враћа празно. blank
LookUp( IceCream, Flavor = "Vanilla" ) Тражи плочу са Укусом једнаку "Ванили", од којих постоји. Пошто није наведена формула смањења, враћа се целокупни запис. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Филтрирање са колонама избора

Следећи пример користи табелу Пословни контакт на платформи Microsoft Dataverse као извор података. Овај пример показује како да филтрирате листу пословних контаката засновану на вредностима контроле комбинованог оквира:

Корак по корак

  1. Отворите празну апликацију.

  2. Додајте нови екран избором опције Нови екран.

  3. На картици Уметање изаберите Галерија, а затим изаберите Усправна.

  4. На картици Својства у десном окну, отворите Извор података, а затим изаберите Пословни контакти.

  5. (Опционално) У листи Распоред, изаберите различите опције.

  6. На картици Уметање изаберите Унос, а затим изаберите Комбиновани оквир. Поновите корак да бисте додали још две контроле комбинованог оквира.

  7. За сваку контролу комбинованог оквира, на картици Својства у десном окну отворите Извор података, а затим изаберите Пословни контакти. Изаберите Уреди поред опције Поља, а затим изаберите вредности Примарни текст и Поље за претрагу. Примарни текст треба да буде колона избора коју желите да додате у комбиновано поље. Поновите корак друге две контроле комбинованог оквира.

    Постављање вредности комбинованог оквира.

  8. Сада изаберите контролу Галерија и подесите својство Ставке на следећу формулу:

    Filter(Accounts,
     'Industry' = ComboBox3.Selected.Industry Or IsBlank(ComboBox3.Selected.Industry),
     'Relationship Type' = ComboBox2.Selected.'Relationship Type' Or
       IsBlank(ComboBox2.Selected.'Relationship Type'),
     'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact' Or
       IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
    

    Налози < ДИЦТ__извор података > дата соурце </ДИЦТ__извор података >.

Кориснички доживљај претраге

Следећи примери користе IceCream извор података:

У многим апликацијама можете да унесете један или више знакова у оквир за претрагу да бисте филтрирали листу записа у великом скупу података. Док куцате, листа приказује само оне записе који одговарају критеријумима претраге.

Примери у остатку овог чланка приказују резултате претраживања листе под именом "Купци " који садрже ове податке:

Претражите купце.

Да бисте креирали извор података као колекцију, креирајте контролу Дугме и подесите својства OnSelect према овој формули:

ClearCollect(Customers, Table({ Name: "Fred Garcia", Company: "Northwind Traders" }, { Name: "Cole Miller", Company: "Contoso" }, { Name: "Glenda Johnson", Company: "Contoso" }, { Name: "Mike Collins", Company: "Adventure Works" }, { Name: "Colleen Jones", Company: "Adventure Works" }) )

Као у овом примеру, можете приказати листу записа у Контроли галерије при дну екрана. У врху врха екрана можете да додате контролу Унос текста под именом SearchInput, тако да корисници могу одредити који их записи занимају.

Претражите помоћу уноса претраге.

Док корисник уписује знакове у SearchInput, резултати у галерији се аутоматски филтрирају. У овом случају, галерија је конфигурисана за приказивање записа за које име клијента (а не име компаније) почиње редоследом знакова у SearchInput. Ако корисник откуца co у пољу за претрагу, галерија приказује ове резултате:

Претрага са поииње са.

За филтрирање на основу колоне Назив, поставите својство Предмети за галерију да контролише једну од ових формула:

Формула Опис Резултат
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Филтрира извор података Клијенти за записе у којима се низ за претрагу појављује на почетку колоне Назив. Тест не разликује велика и мала слова Ако корисник откуца co у пољу за претрагу, приказује се галерија Colleen Jones и Cole Miller. Галерија не приказује Mike Collins зато што колона Name за тај запис не почиње ниском за претрагу. Филтрирајте од почетка.
Filter( Customers, SearchInput.Text in Name ) Филтрира извор података Клијенти за записе у којима се низ за претрагу појављује било где у колони Назив. Тест не разликује велика и мала слова Ако корисник унесе co у поље за претрагу, галерија приказује Colleen Jones,Cole Miller, и Mike Collins јер се низ за претрагу појављује негде у колони Name за све ове записе. Филтрирајте са уносом претраге.
Претрага (Купци, СеарцхИнпут.Теxт, Име) Слично коришћењу оператора in, функција Search тражи подударање било где у оквиру колоне Name сваког записа. Назив колоне морате приложити у двоструким наводницима. Претражите купце.

Можете проширити претрагу тако да укључује колону Компанија и колону Име:

Формула Опис Резултат
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Филтрира извор података Customers за записе у којима колона Name или колона Name почиње ниском за претрагу (на пример, co). ||Оператор је true ако је било која функција StartsWith true. Филтрирајте купце од којих почињете.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Филтрира извор података Customers за записе у којима било колона Name или колона Name садржи ниску за претрагу (на пример, co) било где у себи. Филтрирајте купце претражите унос.
Претрага (Купци, СеарцхИнпут.Теxт, Име, Предузеће) Слично коришћењу оператора in функција Search тражи извор података Customers за записе у којима било колона Name или колона Company садржи ниску за претрагу (на пример, co) било где у себи. Функција Search се лакше чита и пише од функције Filter ако желите да одредите више колона и више оператера in.  Претражите купце помоћу уноса претраге.