Share via


Filtreerimis-, otsingu- ja otsingufunktsioonid

Kehtib: Lõuendirakendused Töölauavood Mudelipõhised rakendused Power Platform CLI

Leiab ühe või mitu kirjettabelist.

Sellest videost saate teada, kuidas kasutada funktsioone Filter, ** Otsing ja LookUp :

Märkus.

PAC CLI pac power-fx käsud ei toeta otsingufunktsiooni .

Kirjeldus

Funktsioon Filter leiab tabelist kirjeid, mis vastavad valemile. Kasutage filtrit , et leida ühele või mitmele kriteeriumile vastav kirjekogum ja hüljata kirjed, mis seda ei tee.

Funktsioon LookUp leiab tabelist esimese kirje, mis vastab valemile. Kasutage funktsiooni LookUp või mitme kriteeriumiga sobiva kirje leidmiseks.

Mõlema puhul hinnatakse valem iga tabeli kirje puhul eraldi. Tulemisse kaasatakse kirjed, mis on tõesed. Peale tavaliste valemite tehtemärkide saate kasutada tehtemärke in ja exactin alamstringi sobivuse jaoks.

Praegu töödeldavad kirje väljad on valemis saadaval. Kasutage tehtemärki ThisRecord või lihtsalt viidake väljadele nime järgi, nagu iga muu väärtuse korral. Tehtemärki As saab kasutada ka töödeldava kirje nimetamiseks, mis aitab teil valemit paremini mõista ja muuta pesastatud kirjed juurdepääsetavaks. Lisateabe saamiseks vaadake alltoodud näiteid ja jaotist kirje ulatusega töötamine.

Funktsioon Search leiab kirjeid tabelist, mis sisaldab stringi ühes nende veergudes. String võib esineda kõikjal veerus; näiteks kui otsite sõnu "rob" või "bert", leiate vaste veerust, mis sisaldab sõna "Robert". Otsimine on tõstutundlik. Erinevalt funktsioonidest Filter ja LookUp kasutab funktsioon Search vastendamiseks ühte stringi valemi asemel.

Filter ja Search tagastavad tabel, mis sisaldab algse tabeli samu veerge ja kriteeriumidele vastavaid kirjeid. Funktsioon LookUp tagastab ainult esimesena leitud kirje pärast valemi rakendamist, et vähendada kirjet ühe väärtuseni. Kui kirjeid ei leita, tagastavad Filter ja Searchtühja tabeli ja funktsioon LookUp tagastab väärtuse tühi.

Tabelid on väärtus Power Appsis, just nagu string või arv. Neid saab edastada ja tagastada funktsioonidest. Filter, Search ja LookUp ei muuda tabelit. Selle asemel võtavad nad tabelit argumendina ja tagastavad tabeli, kirje või ühe väärtuse sellest. Lisateavet leiate teemast tabelitega töötamine.

Delegeerimine

Võimaluse korral delegeerib Power Apps filtrimis- ja sortimistoimingud andmeallikale ning sirvib tulemeid nõudmisel. Nt kui käivitate rakenduse, mis kuvab andmetega täidetud Galerii juhtelemendi, tuuakse algselt seadmesse ainult esimene kirjete kogum. Kui kasutaja edasi kerib, laaditakse andmeallikast täiendavad andmed alla. Tulemuseks on rakenduse kiirem käivitamine ja juurdepääs ülisuurtele andmekomplektidele.

Kuid delegeerimine ei pruugi alati võimalik olla. See, milliseid funktsioone ja tehtemärke andmeallikad delegeerimisega toetavad, on eri andmeallikatel erinev. Kui valemi täielik delegeerimine pole võimalik, tähistab koostav keskkond osa, mida ei saa delegeerida, hoiatusega. Kui võimalik, mõelge valemi muutmisele, et vältida mittedelegeeritavaid funktsioone ja tehtemärke. Delegeerimisloendi üksikasjad delegeeritavate andmeallikate ja toimingutega.

Kui delegeerimine pole võimalik, tõmbab Power Apps kohalikuks töötamiseks alla ainult väikese kirjete kogumi. Filtri- ja sortimisfunktsioonid töötavad vähendatud kirjetekogumiga. Galeriis saadaolev ei pruugi olla täielik lugu ja see võib olla kasutajate jaoks segadusttekitav.

Lisateabe saamiseks vt delegeerimise ülevaadet.

Süntaks

Filtreeri(Tabel*, Formula1 [, *Formula2*, ... ] )

  • Tabel – nõutav. Tabel otsimiseks.
  • Valem(id) – nõutav. Valem, millega hinnatakse iga tabeli kirjet. Funktsioon tagastab kõik kirjed, mis on tõesed. Tabelis võite viidata veergudele. Kui esitate rohkem kui ühe valemi, kombineeritakse kõigi valemite tulemused funktsiooniga And.

Otsi(Tabel*, SearchString, Column1 [, *Column2*, ... ] )

  • Tabel – nõutav. Tabel otsimiseks.
  • SearchString – nõutav. String, mida otsida. Kui tühi või tühi string, tagastatakse kõik kirjed.
  • Veer/veerud – nõutav. Tabeli veergude nimed, mida otsida. Kui SearchString leitakse mõne sellise veeru andmetest osalise vastena, siis tagastatakse kogu kirje.

Märkus.

Enne Power Apps versiooni 3.24042 määrati otsingufunktsiooni veerunimed tekstistringiga, kasutades jutumärke, ja kui need olid ühendatud andmeallikas-ga, pidid need olema ka loogilised nimed. Näiteks kasutati kuvatava nime asemel loogilist nime "cr43e_name" topeltjutumärkidega Nimi ilma jutumärkideta. Tühikutega veerunimesid sisaldavate ja Exceli andmeallikate puhul SharePoint määrati igale tühikule "_x0020_" , näiteks "Veeru nimi" kui"Column_x0020_Name" . Selle versiooni järel värskendati kõik rakendused automaatselt selles artiklis kirjeldatud uuele süntaksile.

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

  • Tabel – nõutav. Tabel otsimiseks. Kasutajaliidese puhul kuvatakse süntaks allikana funktsioonivälja kohal.
  • Valem – nõutav. Valem, millega hinnatakse iga tabeli kirjet. Funktsioon tagastab esimese kirjed, mis on tõene. Tabelis võite viidata veergudele. Kasutajaliidese puhul kuvatakse süntaks tingimusena funktsioonivälja kohal.
  • ReductionFormula – valikuline. Seda valemit hinnatakse leitud kirje taustal ja seejärel vähendatakse kirjet üheks väärtuseks. Tabelis võite viidata veergudele. Kui te seda parameetrit ei kasuta, tagastab funktsioon tabelist täieliku kirje. Kasutajaliidese puhul kuvatakse süntaks tulemina funktsioonivälja kohal.

Näited

Järgmistes näidetes on kasutatud rakenduse IceCreamandmeallikat:

Jäätis andmeallikas.

Valem Kirjeldus Tulemus
Filter( IceCream, OnOrder > 0 ) Tagastab kirjed, kus OnOrder on nullist suurem. Filtreerige tellimisel.
Filter( IceCream, Quantity + OnOrder > 225 ) Tagastab kirjed, kus veergude Quantity ja OnOrder summa on suurem kui 225. Filtreerige kogus ja järjekord.
Filter( IceCream, "chocolate" in Lower( Flavor ) ) Tagastab kirjed, kus sõna "šokolaad" kuvatakse Maitse nimes, mis ei sõltu suurtest ega väikestest tähtedest. Filtreerige madalamale.
Filter(IceCream, kogus < 10 && OnOrder < 20) Tagastab kirjed, mille Kogus on väiksem kui 10 ja OnOrder on väiksem kui 20. Neile kriteeriumidele kirjeid ei vasta, seega tagastatakse tühi tabel. Filtreeritakse kogust.
Otsing(jäätis, "choc", maitse) Tagastab kirjed, kus sõna "šokolaad" kuvatakse Maitse nimes, mis ei sõltu suurtest ega väikestest tähtedest. Üksuste otsimine.
Otsing(Jäätis, "", Maitse) Kuna otsingusõna on tühi, tagastatakse kõik kirjed. Otsige kõigist üksustest.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Otsib kirjet, mille maitse on võrdne "šokolaadiga", millest üks on olemas. Esimese leitud kirje puhul tagastab kirje Koguse. 100
LookUp( IceCream, Quantity > 150, Quantity + OnOrder ) Otsib kirjet, mille Kogus on suurem kui 150, mida on mitu. Esimsese leitud kirje jaoks, mis on "Vanilla" Flavor, tagastab Quantity summa ja OnOrder veerud. 250
LookUp( IceCream, Flavor = "Pistachio", OnOrder ) Otsib kirjet, kus Maitse võrdub "Pistaatsia", mida pole ühtegi. Kuna ühtegi ei leitud, muutub Otsin tagasi tühjaks. tühi
LookUp( IceCream, Flavor = "Vanilla" ) Otsib plaati, mille maitse on võrdne "Vanilliga", millest üks on olemas. Kuna vähendamise valemit ei esitatud, tagastatakse kogu kirje. { Flavor: "Vanilla", Quantity: 200, OnOrder: 75 }

Valikuveergudega filtreerimine

Järgmine näide kasutab tabelit Konto järgmises Microsoft Dataverse andmeallikas. See näide näitab, kuidas Filtreeri kontode loend valitud kombineeritud kastikontrolli väärtuste põhjal:

Samm-sammult

  1. Avage tühi rakendus.

  2. Lisage uus ekraan, valides suvandi Uus kuva.

  3. Valige vahekaardil Lisa suvand Galerii ja valige seejärel suvand Vertikaalne.

  4. Avage parempoolse paani vahekaardil AtribuudidAndmeallikas ja seejärel valige Kontod.

  5. (valikuline) Valige loendis Paigutus erinevad suvandid.

  6. Valige vahekaardil Lisa suvand Sisend ja valige seejärel suvand Liitkast. Korrake toimingut, et lisada veel kaks liitkasti juhtelementi.

  7. Iga liitkasti juhtelemendi jaoks avage parempoolse paani vahekaardil AtribuudidAndmeallikas ja seejärel valige Kontod. Valige suvand Redigeeri suvandi Väljad kõrval ning seejärel valige esmase teksti ja Otsinguvälja väärtused. Esmane tekst peaks olema valikute veerg mille soovite liitkasti lisada. Korrake toimingut kahe teise liitkasti juhtelemendi jaoks.

    Liitboksi väärtuste seadmine.

  8. Nüüd valige Galerii juhtelement ja määrake atribuudi Üksused väärtuseks järgmine valem:

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

    Kontod andmeallikas.

Kasutaja otsingukogemus

Järgmistes näidetes on kasutatud rakenduse IceCreamandmeallikat:

Paljudes rakendustes saate otsinguväljale ühe või mitu märki tippida suure andmekogumiku kirjeteloendi filtreerimiseks. Tippimisel kuvatakse loendis ainult need kirjed, mis vastavad otsingukriteeriumidele.

Selle artikli järgmises osas toodud näited näitavad järgmisi andmeid sisaldavast loendist "Kliendid" otsimise tulemusi.

Otsige klientidelt.

Selle andmeallika loomiseks kogumikuna looge juhtelement Button ja määrake selle atribuut 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" }) )

Nagu käesolevas näites, saate kuvada kirjeteloendi juhtelemenis Galerii ekraani allservas. Ekraani ülaosa lähedal saate lisada juhtelemendi Text input nimega SearchInput, et kasutajad saaksid määrata, millised kirjed neid huvitavad.

Otsing otsingusisendi abil.

Kui kasutaja tipib märke väljale SearchInput, filtreeritakse galerii tulemused automaatselt. Sel juhul on galerii konfigureeritud kuvama kirjeid, mille jaoks kliendi nimi (mitte ettevõtte nimi) algab väljal SearchInput olevate märkide jadaga. Kui kasutaja tipib otsinguväljale co, kuvab galerii järgmised tulemused.

Otsing algab numbriga.

Veeru Nimi põhjal filtreerimiseks seadke galerii juhtelemendi atribuudi Üksused väärtuseks üks järgmistest valemitest.

Valem Kirjeldus Tulem
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtreerib andmeallikast Kliendid kirjed, milles otsitav string kuvatakse veeru Nimi alguses. Test on tõstutundlik. Kui kasutaja tipib otsinguväljale co, näitab galerii Colleen Jones ja Cole Miller. Galerii ei näita Mike Collins, sest selle kirje veerg Nimi ei alga otsingustringiga. Filtreerige algusega olekuga.
Filter( Customers, SearchInput.Text in Name ) Filtreerib andmeallikast Kliendid kirjed, milles otsitav string kuvatakse veeru Nimi mistahes kohas. Test on tõstutundlik. Kui kasutaja tipib otsinguväljale co, näitab galerii Colleen Jones,Cole Miller ja Mike Collins, sest otsingustring kuvatakse kusagil nende kirjete veerus Nimi. Filtreerimine otsingusisendiga.
Search(kliendid, SearchInput.Text, nimi) Sarnaselt tehtemärgi in kasutamisega, funktsioon Search otsib vastet mistahes kohas kõikide kirjete hulgast veerus Nimi. Veeru nimi tuleb lisada jutumärkidesse. Otsige kliente.

Otsingut saate laiendada, et kaasata veerg Ettevõte ja veerg Nimi.

Valem Kirjeldus Tulemus
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) Filtreerib andmeallika Kliendid kirjed, milles kas veerud Nimi või Ettevõte algavad otsingustringiga (nt co). ||Tehtemärk on tõene, kui funktsioon StartsWith on tõene. Filtreerige kliente alustuseks.
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) Filtreerib andmeallika Kliendid kirjed, milles kas veerg Nimi või Ettevõte sisaldab mistahes kohas otsingustringi (nt co). Filtreerige klientide otsingusisendit.
Search(kliendid, SearchInput.Text, nimi, ettevõte) Sarnaselt tehtemärgi in kasutamisele funktsioon Search andmeallika Kliendid kirjetest, kus veerg Nimi või Ettevõte sisaldab mistahes kohas otsingustringi (nt co). Funktsiooni Search on lihtsam lugeda ja kirjutada kui funktsiooni Filter, kui soovite määrata mitut veergu ja mitut in tehtemärki.  Otsige kliente otsingusisendiga.