Funkcije filtriranja, pretraživanja i pretraživanja

Odnosi se na: Aplikacije od gotovih gradivnih elemenata Tokovi radne površine CLI aplikacije stvorene prema Power Platform modelu

Pronalazi jedan ili više zapisa u tablici.

Pogledajte ovaj videozapis da biste saznali kako koristiti funkcije filtriranja, ** pretraživanja i pretraživanja :

Napomena

PAC CLI pac power-fx naredbe ne podržavaju funkciju Search .

Opis

Funkcija Filter pronalazi zapise u tablici koji zadovoljavaju neku formulu. Pomoću filtra pronađite skup zapisa koji odgovaraju jednom ili više kriterija i odbacite one zapise koji to ne čine.

Funkcija LookUp pronalazi prvi zapis u tablici koji zadovoljava neku formulu. Upotrijebite funkciju LookUp kako biste pronašli jedan zapis koji odgovara jednom ili više kriterija.

Kod obje funkcije, formula se procjenjuje za svaki zapis tablice. Zapisi koji rezultiraju vrijednošću true uključeni su u rezultat. Osim normalnih operatora formule, možete koristiti i operatore in i exactin za podudaranje podnizova.

Polja zapisa koja se trenutno obrađuju dostupna su unutar formule. Upotrijebite ThisRecord operator ili jednostavno spomenite polja imenom na isti način kao i bilo koju drugu vrijednost. Za imenovanje zapisa koji se obrađuje možete upotrijebiti i As operator, a to vam može pomoći učiniti formulu razumljivijom, a ugniježđene zapise pristupačnijima. Više informacija potražite u primjerima u nastavku i radu u djelokrugu zapisa.

Funkcija Search pronalazi zapise u tablici koji sadrže neki niz u jednom od njihovih stupaca. Niz se može pojaviti bilo gdje unutar stupca; na primjer, traženje "rob" ili "bert" pronašlo bi podudaranje u stupcu koji sadrži "Robert". Pretraživanje ne razlikuje velika i mala slova. Za razliku od Filter i LookUp, funkcija Search za podudaranje koristi jedan niz umjesto formule.

Funkcije Filter i Search vraćaju tablicu koja sadrži iste stupce kao izvorna tablica i zapise koji odgovaraju kriterijima. Funkcija LookUp vraća samo prvi pronađeni zapis nakon primjene formule kojom se zapis smanjuje na jednu vrijednost. Ako nema zapisa, Filter i Search vraćaju praznu tablicu, a LookUp vraća prazno.

Tablice su vrijednost u aplikaciji Power Apps, baš poput nekog niza ili broja. Mogu se proslijeđivati funkcijama i iz njih vraćati. Filter, Search i LookUp ne modificiraju tablicu. Umjesto toga, uzimaju tablicu kao argument i iz nje vraćaju tablicu, zapis ili jednu vrijednost. Dodatne informacije potražite u odjeljku rad s tablicama.

Delegacija

Kadgod je moguće, Power Apps će delegirati filtar i sortirat radnje u izvor podataka i stranicu kroz rezultate na zahtjev. Na primjer, kad pokrenete aplikaciju koja prikazuje kontrolu Galerija ispunjenu podacima, uređaju će se donijeti samo prvi skup podataka. Dok se korisnik pomiče, dodatni se podaci preuzimaju iz izvora podataka. Rezultat je brže vrijeme pokretanja za aplikaciju i pristup vrlo velikim skupovima podataka.

Međutim, delegiranje nije uvijek moguće. Izvori podataka razlikuju se prema funkcijama i radnjama koje su podržane uz delegiranje. Ako potpuno delegiranje formule nije moguće, okruženje za stvaranje sadržaja označit će dio koji se ne može delegirati upozorenjem. Kadgod je to moguće, uzmite u obzir izmjenu formule za izbjegavanje funkcija i operatera koji se ne mogu delegirati. Popis delegacija detaljno iznosi koji se izvori podataka i radnje mogu delegirati.

Ako delegiranje nije moguće, Power Apps će preuzeti samo mali skup zapisa na kojima se može lokalno raditi. Filtriranje i sortiranje funkcija radit će na smanjenom skupu zapisa. Ono što je dostupno u Galeriji možda neće biti potpuna priča, što može biti zbunjujuće za korisnike.

Dodatne informacije potražite u odjeljku Pregled delegiranja.

Sintaksa

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

  • Table – obavezno. Tablica koja se pretražuje.
  • Formula(s) – obavezno. Formula kojom se procjenjuje svaki zapis tablice. Ova funkcija vraća sve zapise koji daju rezultat true. Možete referencirati stupce unutar tablice. Ako unesete više od jedne formule, rezultati svih formula kombiniraju se funkcijom And.

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

  • Table – obavezno. Tablica koja se pretražuje.
  • SearchString – obavezno. Niz koji se traži. Ako je prazno ili prazan niz, vraćaju se svi zapisi.
  • Column(s) – obavezno. Nazivi stupaca unutar tablice koja se pretražuje. Ako se traženi niz pronađe u podatcima bilo kojeg od tih stupaca kao djelomična podudarnost, vratit će se cjelovit zapis.

Napomena

Prije Power Apps verzije 3.24042 nazivi stupaca za funkciju Search navedeni su tekstnim nizom pomoću dvostrukih navodnika, a ako su povezani s izvor podataka trebali su biti i logički nazivi. Na primjer, umjesto zaslonsko ime Ime bez navodnika korišten je logički naziv "cr43e_name" s dvostrukim navodnicima. Za SharePoint i Excelove izvore podataka koji sadrže nazive stupaca s razmacima, svaki je razmak određen sa" _x0020_", na primjer "Naziv stupca" kao "Column_x0020_Name". Afer ovu verziju, sve su aplikacije automatski ažurirane na novu sintaksu opisanu u ovom članku.

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

  • Table – obavezno. Tablica koja se pretražuje. U korisničkom sučelju sintaksa je prikazana kao izvor iznad okvira s funkcijama.
  • Formula – obavezno. Formula kojom se procjenjuje svaki zapis tablice. Ova funkcija vraća prvi zapis koji daje rezultat true. Možete referencirati stupce unutar tablice. U korisničkom sučelju sintaksa je prikazana kao uvjet iznad okvira s funkcijama.
  • ReductionFormula – neobavezno. Ova se formula procjenjuje preko pronađenog zapisa, a zatim smanjuje zapis na jednu vrijednost. Možete referencirati stupce unutar tablice. Ako ne koristite ovaj parametar, funkcija vraća puni zapis iz tablice. U korisničkom sučelju sintaksa je prikazana kao rezultat iznad okvira s funkcijama.

Primjeri

Sljedeći primjeri koriste IceCreamizvor podataka:

Sladoled izvor podataka.

Formula Opis Rezultat
Filter( IceCream, OnOrder > 0 ) Vraća zapise gdje je OnOrder veće od nule. Filtriraj po narudžbi.
Filter( IceCream, Quantity + OnOrder > 225 ) Vraća zapise gdje je zbroj stupaca Quantity i OnOrder veći od 225. Filtrirajte količinu i nalog.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Vraća zapise gdje se riječ „chocolate” pojavljuje u nazivu Flavor, neovisno o velikim i malim slovima. Filtrirajte niže.
Filtar(Sladoled, Količina < 10 &&; OnOrder < 20) Vraća zapise gdje je Quantity manje od 10, a OnOrder manje od 20. Nijedan zapis ne odgovara ovim kriterijima, pa se vraća prazna tablica. Filtrirajte prema količini.
Pretraživanje(Sladoled, "choc", okus) Vraća zapise gdje se niz „choc” pojavljuje u nazivu Flavor, neovisno o velikim i malim slovima. Pretražite stavke.
Search(Sladoled, "", Okus) Budući da je termin za pretraživanje prazan, vraćaju se svi zapisi. Pretražite sve stavke.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Traži ploču s okusom jednakom "Čokoladi", od kojih postoji. Za prvi pronađeni zapis vraća se Quantity tog zapisa. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Search zapis za koji je Quantity veći od 150, a kojih ima nekoliko. Za prvi pronađeni zapis, gdje je „Vanilla” za Flavor, vraća zbroj stupaca Quantity i OnOrder. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Search zapis za koji je Flavor jednako "Pistachio", koji ne postoji nijedan. Jer ništa nije pronađeno, Traženje vraća prazno. prazno
LookUp( IceCream, Flavor = "Vanilla" ) Traži ploču s okusom jednakom "Vaniliji", od kojih postoji. Budući da nije dostavljena formula smanjenja, vraća se cijeli zapis. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Filtriranje sa stupcima odabira

Sljedeći primjer koristi tabvlicu Račun sa značajkom Microsoft Dataverse kao izvorom podataka. Ovaj primjer pokazuje kako filtrirati popis računa na temelju odabranih kontrolnih vrijednosti kombiniranih okvira:

Korak po korak

  1. Otvorite praznu aplikaciju.

  2. Dodajte novi zaslon odabirom opcije Novi zaslon.

  3. Na kartici Umetanje odaberite Galerija i zatim odaberite Okomito.

  4. Na kartici Svojstva na desnom oknu otvorite Izvor podataka i zatim odaberite Računi.

  5. (Izborno) Na popisu Izgled odaberite različite opcije.

  6. Na kartici Umetanje odaberite Unos i zatim odaberite Kombinirani okvir. Ponovite korak za dodavanje još dvije kontrole kombiniranog okvira.

  7. Za svaku kontrolu kombiniranog okvira na kartici Svojstva na desnom oknu otvorite Izvor podataka i zatim odaberite Računi. Odaberite Uredi pored opcije Polja i zatim odaberite vrijednosti Primarni tekst i SearchField. Primarni tekst trebao bi biti stupac izbora koji želite dodati kombiniranom okviru. Ponovite korak za dodavanje ostale dvije kontrole kombiniranog okvira.

    Postavljanje vrijednosti kombiniranog okvira.

  8. Sada odaberite kontrolu Galerija i postavite svojstvo Stavke na sljedeću formulu:

    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'))
    

    Računi izvor podataka.

Korisničko iskustvo pretraživanja

Sljedeći primjeri koriste IceCreamizvor podataka:

U mnogim aplikacijama možete upisati jedan ili više znakova u okvir za pretraživanje da biste filtrirali popis zapisa u nekom velikom skupu podataka. Dok tipkate, popis prikazuje samo one zapise koji odgovaraju kriterijima pretraživanja.

Primjeri u ostatku ovog članka prikazuju rezultate pretraživanja popisa pod nazivom Kupci koji sadrže ove podatke:

Pretražite kupce.

Da biste stvorili ovaj izvor podataka kao zbirku, stvorite kontrolu Button i postavite svojstvo OnSelect na ovu formulu:

ClearCollect( klijenti, tablica( { ime: "Fred Garcia", tvrtka: "Northwind Traders" }, { ime: "Cole Miller", tvrtka: "Contoso" }, { ime: "Glenda Johnson", tvrtka: "Contoso" }, { ime: "Mike Collins", tvrtka: "Adventure Works" }, { ime: "Colleen Jones", tvrtka: "Adventure Works" } ) )

Kao u ovom primjeru, možete prikazati popis zapisa u kontroli Gallery pri dnu zaslona. Pri vrhu zaslona možete dodati kontrolu Text input, nazvanu SearchInput, tako da korisnici mogu odrediti koje ih zapise zanima.

Pretražujte pomoću unosa pretraživanja.

Dok korisnik upisuje znakove u SearchInput, rezultati u galeriji automatski se filtriraju. U ovom slučaju, galerija je konfigurirana za prikaz zapisa u kojima ime kupca (a ne ime tvrtke) započinje redoslijedom znakova u SearchInput. Ako korisnik upiše co u okvir za pretraživanje, galerija prikazuje sljedeće rezultate:

Pretraživanje s počinje s.

Za filtriranje na temelju stupca Name, postavite svojstvo Items kontrole galerije na jednu od ovih formula:

Formula Opis Rezultat
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtrira izvor podataka Customers za zapise u kojima se traženi niz prikazuje na početku stupca Name. Test ne razlikuje velika i mala slova. Ako korisnik upiše co u okvir za pretraživanje, galerija prikazuje Colleen Jones i Cole Miller. Gallery ne prikazuje vrijednost Mike Collins jer stupac Name za taj zapis ne počinje traženim nizom. Filtrirajte s početnom s.
Filter( Customers, SearchInput.Text in Name ) Filtrira izvor podataka Customers za zapise u kojima se traženi niz prikazuje bilo gdje u stupcu Name. Test ne razlikuje velika i mala slova. Ako korisnik upiše co u okvir za pretraživanje, galerija prikazuje Colleen Jones,Cole Miller, i Mike Collins jer se traženi niz pojavljuje negdje u stupcu Name svih tih zapisa. Filtrirajte s unosom pretraživanja.
Search(kupci, SearchInput.Text, naziv) Slično kao kod korištenja operatora in, funkcija Search traži podudaranje bilo gdje unutar stupca Name svakog zapisa. Naziv stupca morate obuhvatiti dvostrukim navodnicima. Pretražite kupce.

Možete proširiti pretraživanje da uključi stupac Tvrtka i stupac Ime:

Formula Opis Rezultat
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Filtrira izvor podataka Customers za zapise u kojima stupac Name ili stupac Company počinje traženim nizom (na primjer, co). || operator je true ako bilo koja funkcija StartsWith ima rezultat true. Filtrirajte kupce počevši od.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Filtrira izvor podataka Customers za zapise u kojima stupac Name ili stupac Company sadrži traženi niz (na primjer, co) bilo gdje unutar njega. Filtriranje unosa pretraživanja kupaca.
Pretraživanje(kupci, SearchInput.Text, Ime, Tvrtka) Slično kao kod korištenja operatora in, funkcija Search traži izvor podataka Customers za zapise u kojima stupac Name ili stupac Company sadrži traženi niz (na primjer, co) bilo gdje unutar njega. Funkcija Search lakše se čita i piše nego funkcija Filter ako želite navesti više stupaca i više operatora in.  Pretražite korisnike pomoću unosa pretraživanja.