Deli putem


Funkcije filtriranja, pretrage i pronalaženja

Važi za: Canvas aplikacije Desktop flows Model-driven apps Power Pages Power Platform CLI

Pronalazi jedan ili više zapisa u tabeli.

Pogledajte ovaj video zapis da biste saznali kako da koristite funkcije Filter,Search ** i LookUp :

Belešku

Pac CLI pac power-fx komande ne podržavaju funkciju Search .

Opis

Funkcija Filter pronalazi zapise u tabeli koji zadovoljavaju formulu. Koristite opciju "Filter" da biste pronašli skup zapisa koji se podudaraju sa jednim ili više kriterijuma i odbacili one zapise koji to ne odgovaraju.

Funkcija LookUp pronalazi prvi zapis u tabeli koji zadovoljava formulu. Koristite LookUp da biste pronašli jedan zapis koji odgovara jednom ili više kriterijuma.

Za oba se formula izračunava za svaki zapis tabele. Zapisi koji rezultiraju u tačno su uključeni u rezultat. Pored normalne formule operatora, možete da koristite operacije in i exactin za operatore podudaranja podniski.

Polja zapisa koji se trenutno obrađuje su dostupna u formuli. Koristite operator ThisRecord ili jednostavno stavite referencu na polja po nazivu kao i bilo koju drugu vrednost. Možete i da koristite operator As za imenovanje zapisa koji se obrađuje što može da pomogne da vaša formula bude lakša za razumevanje i učini ugnežđene zapise dostupnima. Više informacija potražite u primerima u nastavku i članku o radu sa opsegom zapisa.

Funkcija Search pronalazi zapise u tabeli koji sadrže nisku u jednoj od kolona. Niska se može pojaviti bilo gde unutar kolone; na primer, traženje "rob" ili "bert" bi pronašlo podudaranje u koloni koja sadrži "Robert". Pretraživanje ne razlikuje velika i mala slova. Za razliku od Filter i LookUp, funkcija Search koristi jednu nisku za podudaranje umesto formule.

Filter i Search vraćaju tabelu koja sadrži iste kolone kao i originalna tabela, a i zapise koji odgovaraju kriterijumima. LookUp vraća samo prvi pronađeni zapis, nakon primene formule za smanjenje zapisa na jednu vrednost. Ako nije pronađena nijedna evidencija, Filter i Search vraćaju tabelu prazno, a LookUp vraća prazno.

Tabele su vrednost u Power Apps, baš kao niska ili broj. Mogu se proslediti u funkcije i funkcije ih mogu vratiti. Filter, Search i LookUp ne menjaju tabelu. Umesto toga, oni uzimaju tabelu kao argument i iz nje vraćaju tabelu, zapis ili jednu vrednost. Za više detalja pogledajte rad sa tabelama.

Delegiranje

Kada je moguće, Power Apps će delegirati operacije za filtriranje i sortiranje izvoru podataka i stranici pomoću rezultata na zahtev. Na primer, kada pokrenete aplikaciju u kojoj je prikazana kontrola Galerija popunjena podacima, samo prvi skup zapisa će prvobitno biti prenet u uređaj. Dok korisnik pomera sadržaj, dodatni podaci se preuzimaju iz izvora podataka. Rezultat je brže vreme pokretanja aplikacije i pristup veoma velikim skupovima podataka.

Međutim, delegiranje nije uvek moguće. Izvori podataka se razlikuju prema funkcijama i operatorima koje podržavaju pomoću delegiranja. Ako kompletno delegiranje formule nije moguće, okruženje za kreiranje koristi upozorenje da označi deo koji ne može da se delegira. Kada je moguće, razmislite o promeni formule da biste izbegli funkcije i operatore koji ne mogu da se delegiraju. Lista delegiranja navodi koji izvori podataka i operacije mogu da se delegiraju.

Ako delegiranje nije moguće, Power Apps preuzima samo mali skup zapisa sa kojima može lokalno da se radi. Funkcije filtriranja i sortiranja funkcionišu na ograničenom skupu zapisa. Ono što je dostupno u Galeriji možda nije kompletna slika, što može da zbuni korisnike.

Više informacija potražite u pregledu delegiranja.

Sintaksa

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

  • Table – Obavezno. Unesite tabelu za pretragu.
  • Formula(s) – Obavezno. Formula po kojoj se izračunava svaki zapis tabele. Funkcija vraća sve zapise koji rezultiraju u tačno. Možete da referencirate kolone unutar tabele. Ako navedete više od jedne formule, rezultati svih formula se kombinuju sa funkcijom And.

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

  • Table – Obavezno. Unesite tabelu za pretragu.
  • SearchString – Obavezno. Niska koju treba pretražiti. Ako je prazno ili prazna niska, svi se zapisi vraćaju.
  • Column(s) – Obavezno. Nazivi kolona unutar Tabele koji treba pretražiti. Ako je SearchString pronađena u podacima bilo koje od tih kolona kao delimično podudaranje, vratiće se celokupni zapis.

Belešku

Pre Power Apps verzije 3.24042, imena kolona za funkciju "Pretraga " navedena su sa tekstualnom niskom pomoću dvostrukih navodnika, a ako su povezana sa izvor podataka potrebno je da budu i logička imena. Na primer, umesto ime za prikaz Ime bez navodnika korišćeno je cr43e_name "ime ". Za SharePoint i Excel izvore podataka koji sadrže imena kolona sa razmacima, svaki razmak je naveden sa "_x0020_", na primer "Ime kolone" kao "Column_x0020_Name". Nakon ove verzije, sve aplikacije su automatski ažurirane na novu sintaksu opisanu u ovom članku.

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

  • Table – Obavezno. Unesite tabelu za pretragu. U korisničkom interfejsu, sintaksa se prikazuje kao izvor iznad okvira sa funkcijama.
  • Formula – Obavezno. Formula po kojoj se izračunava svaki zapis tabele. Funkcija vraća prvi zapis koji je rezultirao u tačno. Možete da referencirate kolone unutar tabele. U korisničkom interfejsu sintaksa je prikazana kao uslov iznad okvira sa funkcijama.
  • ReductionFormula – Opcionalno. Ova formula se izračunava preko pronađenog zapisa, a zatim smanjuje zapis na jednu vrednost. Možete da referencirate kolone unutar tabele. Ako ne koristite ovaj parametar, funkcija vraća ceo zapis iz tabele. U korisničkom interfejsu sintaksa je prikazana kao rezultat iznad okvira sa funkcijama.

Primeri

Sledeći primeri koriste IceCream izvor podataka:

Sladoled izvor podataka.

Formula Opis rezultat
Filter( IceCream, OnOrder > 0 ) Vraća zapise gde je OnOrder veća od nule. Filtriraj po porudžbini.
Filter( IceCream, Quantity + OnOrder > 225 ) Vraća zapise gde je suma kolona Quantity i OnOrder veća od 225. Filtrirajte količinu i porudžbinu.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Vraća zapise gde se reč „čokolada“ pojavljuje u nazivu Flavor, nezavisno od velikih ili malih slova. Filtriranje niže.
Filter(IceCream, Količina < 10 && OnOrder < 20) Vraća zapise gde je Quantity manje od 10 i OnOrder manje od 20. Nijedan zapis ne odgovara ovim kriterijumima, pa se vraća prazna tabela. Filtrirajte količinu.
Pretraga(IceCream, "choc", Ukus) Vraća zapise gde se niska „choc“ pojavljuje u nazivu Flavor, nezavisno od velikih ili malih slova. Stavke pretrage.
Pretraga(IceCream, "", Ukus) Pošto je termin za pretragu prazan, svi se zapisi vraćaju. Pretražite sve stavke.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Traži ploču sa Ukusom jednaku "Čokoladi", od kojih postoji. Za prvi pronađeni zapis vraća se svojstvo Quantity tog zapisa. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Pretražuje zapis sa vrednošću Quantity većom od 150, kojih ima više. Za prvi pronađeni zapis, a to je „Vanilla“ Flavor, vraća iznos kolona Quantity i OnOrder. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Pretražuje snimak gde je Flavor jednako „Pistachio“, od kojih ne postoji nijedna. Pošto nijedna nije pronađena, Pronalaženje vraća prazno. prazno
LookUp( IceCream, Flavor = "Vanilla" ) Traži ploču sa Ukusom jednaku "Vanili", od kojih postoji. Pošto nije navedena formula smanjenja, vraća se celokupni zapis. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Filtriranje sa kolonama izbora

Sledeći primer koristi tabelu Poslovni kontakt na platformi Microsoft Dataverse kao izvor podataka. Ovaj primer pokazuje kako da filtrirate listu poslovnih kontakata zasnovanu na vrednostima kontrole kombinovanog okvira:

Korak po korak

  1. Otvorite praznu aplikaciju.

  2. Dodajte novi ekran izborom opcije Novi ekran.

  3. Na kartici Umetanje izaberite Galerija, a zatim izaberite Uspravna.

  4. Na kartici Svojstva u desnom oknu, otvorite Izvor podataka, a zatim izaberite Poslovni kontakti.

  5. (Opcionalno) U listi Raspored, izaberite različite opcije.

  6. Na kartici Umetanje izaberite Unos, a zatim izaberite Kombinovani okvir. Ponovite korak da biste dodali još dve kontrole kombinovanog okvira.

  7. Za svaku kontrolu kombinovanog okvira, na kartici Svojstva u desnom oknu otvorite Izvor podataka, a zatim izaberite Poslovni kontakti. Izaberite Uredi pored opcije Polja, a zatim izaberite vrednosti Primarni tekst i Polje za pretragu. Primarni tekst treba da bude kolona izbora koju želite da dodate u kombinovano polje. Ponovite korak druge dve kontrole kombinovanog okvira.

    Postavljanje vrednosti kombinovanog okvira.

  8. Sada izaberite kontrolu Galerija i podesite svojstvo Stavke na sledeć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'))
    

    Nalozi izvor podataka.

Pretraga utiska pri pretraživanju

Sledeći primeri koriste IceCream izvor podataka:

U mnogim aplikacijama možete da unesete jedan ili više znakova u okvir za pretragu da biste filtrirali listu zapisa u velikom skupu podataka. Dok kucate, lista prikazuje samo one zapise koji odgovaraju kriterijumima pretrage.

Primeri u ostatku ovog članka prikazuju rezultate pretraživanja liste pod imenom "Kupci " koji sadrže ove podatke:

Pretražite kupce.

Da biste kreirali izvor podataka kao kolekciju, kreirajte kontrolu Dugme i podesite svojstva OnSelect prema ovoj formuli:

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" }) )

Kao u ovom primeru, možete prikazati listu zapisa u Kontroli galerije pri dnu ekrana. U vrhu vrha ekrana možete da dodate kontrolu Unos teksta pod imenom SearchInput, tako da korisnici mogu odrediti koji ih zapisi zanimaju.

Pretražite pomoću unosa pretrage.

Dok korisnik upisuje znakove u SearchInput, rezultati u galeriji se automatski filtriraju. U ovom slučaju, galerija je konfigurisana za prikazivanje zapisa za koje ime klijenta (a ne ime kompanije) počinje redosledom znakova u SearchInput. Ako korisnik unese co u polju za pretragu, galerija prikazuje ove rezultate:

Pretraga sa poиinje sa.

Za filtriranje na osnovu kolone Naziv, postavite svojstvo Items za galeriju da kontroliše jednu od ovih formula:

Formula Opis Rezultat
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtrira izvor podataka Klijenti za zapise u kojima se niska za pretragu pojavljuje na početku kolone Naziv. Test ne razlikuje velika i mala slova. Ako korisnik unese co u polju za pretragu, prikazuje se galerija Colleen Jones i Cole Miller. Galerija ne prikazuje Mike Collins zato što kolona Name za taj zapis ne počinje niskom za pretragu. Filtrirajte od početka.
Filter( Customers, SearchInput.Text in Name ) Filtrira izvor podataka Klijenti za zapise u kojima se niska za pretragu pojavljuje bilo gde u koloni Naziv. Test ne razlikuje velika i mala slova. Ako korisnik unese co u polje za pretragu, galerija prikazuje Colleen Jones,Cole Miller, i Mike Collins jer se niz za pretragu pojavljuje negde u koloni Name za sve ove zapise. Filtrirajte sa unosom pretrage.
Pretraga(Kupci, SearchInput.Text, Ime) Slično korišćenju operatora in, funkcija Search traži podudaranje bilo gde u okviru kolone Name svakog zapisa. Naziv kolone morate priložiti u dvostrukim navodnicima. Pretražite kupce.

Možete proširiti pretragu tako da uključuje kolonu Kompanija i kolonu Ime:

Formula Opis rezultat
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Filtrira izvor podataka Customers za zapise u kojima kolona Name ili kolona Name počinje niskom za pretragu (na primer, co). ||Operator je tačno ako je bilo koja funkcija StartsWith tačno. Filtrirajte kupce od kojih počinjete.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Filtrira izvor podataka Customers za zapise u kojima bilo kolona Name ili kolona Name sadrži nisku za pretragu (na primer, co) bilo gde u sebi. Filtrirajte kupce pretražite unos.
Pretraga(Kupci, SearchInput.Text, Ime, Preduzeće) Slično korišćenju operatora in funkcija Search traži izvor podataka Customers za zapise u kojima bilo kolona Name ili kolona Company sadrži nisku za pretragu (na primer, co) bilo gde u sebi. Funkcija Search se lakše čita i piše od funkcije Filter ako želite da odredite više kolona i više operatora in.  Pretražite kupce pomoću unosa pretrage.