Filter, Search ja LookUp funktsioonid Power Appsis

Leiab ühe või mitu kirjet tabelist.

Kirjeldus

Funktsioon Filter leiab tabelist kirjeid, mis vastavad valemile. Kasutage funktsiooni Filter, et leida ühele või mitmele kriteeriumile vastavate kirjete kogum ja hüljata need, mis ei vasta.

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 ilmneda veeru sees, näiteks otsides "Rob" või "Bert" leiab vaste veerus, mis sisaldab "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 Search tü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

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

  • Table – nõutav. Tabel otsimiseks.
  • Formula(s) – 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.

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

  • Table – nõutav. Tabel otsimiseks.
  • SearchString - nõutav. String, mida otsida. Kui tühi või tühi string, tagastatakse kõik kirjed.
  • Column(s) - nõutav. Tabeli veergude nimed, mida otsida. Otsitavad veerud peavad sisaldama teksti. Veergude nimed peavad olema stringid ja need peava olema jutumärkides. Veergude nimed peavad aga olema staatilised ja neid ei saa valemiga arvutada. Kui SearchString leitakse mõne sellise veeru andmetest osalise vastena, siis tagastatakse kogu kirje.

Märkus

SharePoint ja Exceli andmeallikate puhul, mis sisaldavad tühikutega veerupäiseid, määrake iga ruum kui "_x0020_". Nt määrake "Column Name" kui "Column_x0020_Name".

LookUp(Table*, Formula [, ReductionFormula ] )

  • Table – 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 andmeallikat IceCream andmeallikas:

Jäätise andmeallikas.

Valem Kirjeldus Tulemus
Filter( IceCream, OnOrder > 0 ) Tagastab kirjed, kus OnOrder on nullist suurem. Filtreeri tellimuse alusel.
Filter( IceCream, Quantity + OnOrder > 225 ) Tagastab kirjed, kus veergude Quantity ja OnOrder summa on suurem kui 225. Filtreeri kogust ja tellimust.
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. Filtreeri alumises.
Filter( IceCream, Quantity < 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. Filtreeri koguse baasil.
Search( IceCream, "choc", "Flavor" ) Tagastab kirjed, kus sõna "šokolaad" kuvatakse Maitse nimes, mis ei sõltu suurtest ega väikestest tähtedest. Otsi üksuseid.
Search( IceCream, "", "Flavor" ) Kuna otsingusõna on tühi, tagastatakse kõik kirjed. Otsi kõiki üksuseid.
LookUp( IceCream, Flavor = "Chocolate", Quantity ) Otsib kirjet, kus Maitse võrdub "Šokolaad", mida on üks. 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. blank
LookUp( IceCream, Flavor = "Vanilla" ) Otsib kirjet, kus Flavor võrdub "Vanilla", mida on üks. 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 Atribuudid Andmeallikas 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 Atribuudid Andmeallikas 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||IsBlank(ComboBox3.Selected.Industry), 
     'Relationship Type' = ComboBox2.Selected.'Relationship Type'||
     IsBlank(ComboBox2.Selected.'Relationship Type'), 
     'Preferred Method of Contact' = ComboBox1.Selected.'Preferred Method of Contact'||
     IsBlank(ComboBox1.Selected.'Preferred Method of Contact'))
    

    Kontode andmeallikas.

Kasutaja otsingukogemus

Järgmistes näidetes on kasutatud andmeallikat IceCream andmeallikas:

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 teema ülejäänud näited näitavad Klientide nimekirja otsimise tulemusi, mis sisaldavad neid andmeid:

Otsi kliente.

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.

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. Filtreeri alustades.
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. Filtreeri otsingusisendiga.
Search( Customers, SearchInput.Text, "Name" ) Sarnaselt tehtemärgi in kasutamisega, funktsioon Search otsib vastet mistahes kohas kõikide kirjete hulgast veerus Nimi. Veeru nimi tuleb lisada jutumärkidesse. Otsi 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 veerus Nimi või Ettevõte algab otsingustringiga (nt co). || Tehtemärk on tõene, kui funktsioon StartsWith on tõene. Filtreeri kliente alustades.
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). Filtreeri kliente otsingusisendiga.
Search( Customers, SearchInput.Text, "Name", "Company" ) 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. Veergude nimed tuleb lisada jutumärkidesse. Otsi klientidest otsingusisendiga.