Funkcijos Filtruoti, Ieškoti ir Peržvalga
Taikoma: Drobės programos Darbalaukio srautai Modeliu pagrįstos programos Power Pages Power Platform CLI
Randa vieną arba daugiau lentelės įrašų.
Peržiūrėkite šį vaizdo įrašą ir sužinokite, kaip naudoti filtro, ** paieškos ir peržvalgos funkcijas:
Pastaba.
PAC CLI pac power-fx komandos nepalaiko paieškos funkcijos.
Aprašą
Funkcija Filter randa formulę tenkinančius lentelės įrašus. Naudokite filtrą , kad rastumėte įrašų rinkinį, kuris atitinka vieną ar daugiau kriterijų, ir atmestumėte tuos įrašus, kurie neatitinka filtro.
Funkcija LookUp randa pirmąjį formulę tenkinantį lentelės įrašą. Naudokite LookUp, jei norite rasti vieną įrašą, atitinkantį vieną arba daugiau kriterijų.
Abi formulės įvertina kiekvieną lentelės įrašą. Į rezultatą įtraukiami tie įrašai, kurie yra true. Be įprastų formulės operatorių, antrinių eilučių atitikmenims galite naudoti operatorius in ir exactin.
Formulėje pasiekiami šiuo metu apdorojamo įrašo laukai. Naudokite operatorių ThisRecord arba tiesiog laukus, kaip ir bet kurią kitą reikšmę, nurodykite pagal pavadinimus. Operatorių As taip pat galima naudoti norint pavadinti apdorojamą įrašą. Tai gali padėti lengviau suprasti formulę ir įdėtuosius įrašus pritaikyti neįgaliesiems. Norėdami gauti daugiau informacijos, žr. tolesnius pavyzdžius ir įrašą apie darbą su įrašų aprėptimi.
Funkcija Search randa lentelės, kurios viename iš stulpelių yra eilutė, įrašus. Eilutė gali atsirasti bet kurioje stulpelio vietoje; pavyzdžiui, ieškant "rob" arba "bert", stulpelyje, kuriame yra "Robertas", būtų rastas atitikmuo. Ieškant svarbus raidžių dydis. Skirtingai nei Filter ir LookUp, funkcija Search ieškodama atitikmenų naudoja vieną eilutę, o ne formulę.
Filtras ir ieška pateikia lentelę, kurioje yra tie patys stulpeliai kaip ir pradinėje lentelėje, ir įrašus, atitinkančius kriterijus. Peržvalga grąžina tik pirmą rastą įrašą, pritaikius formulę, skirtą sumažinti įrašą iki vienos reikšmės. Jei įrašų nerandama, Filter ir Search pateikia tuščią lentelę, o LookUp pateikia tuščią reikšmę.
Lentelės yra reikšmė Power Apps, kaip ir eilutė ar skaičius. Jie gali būti perduodami ir grąžinami iš funkcijų. Filtras, ieška ir peržvalga nemodifikuoja lentelės. Vietoj to jos kaip argumentą paima lentelę ir iš jos pateikia lentelę, įrašą arba vieną reikšmę. Norėdami sužinoti daugiau informacijos, peržiūrėkite Darbas su lentelėmis.
Perdavimas
Kai bus įmanoma, „Power Apps“ filtravimo ir rikiavimo operacijas, naudodama rezultatų pareikalavus funkciją, perduos duomenų šaltiniui ir puslapiui. Pavyzdžiui, kai paleidžiate programą, kurioje rodomas duomenimis užpildytas valdiklis Galerija, įrenginyje iš pradžių bus pateikiami tik pirmieji keletas įrašų. Vartotojui slenkant, iš duomenų šaltinio pateikiama papildomų duomenų. Rezultatas – greičiau paleidžiama programa ir prieiga prie labai didelių duomenų rinkinių.
Tačiau perduoti ne visada gali būti įmanoma. Duomenų šaltiniai skiriasi tuo, kokias funkcijas ir kokius operatorius jie palaiko, kai naudojama perdavimo funkcija. Jei visiškai perduoti formulės neįmanoma, kūrimo aplinka negalimą perduoti dalį pažymės įspėjimu. Kai įmanoma, apsvarstykite galimybę formulę pakeisti, kad išvengtumėte tokių funkcijų ir operatorių, kurių negalima perduoti. Perdavimo sąraše išsamiai nurodyta, kuriuos duomenų šaltinius ir kurias operacijas galima perduoti.
Jei perduoti neįmanoma, „Power Apps“ gaus tik keletą įrašų, su kuriais bus galima dirbti vietoje. Filtravimo ir rikiavimo funkcijos veiks mažesniame įrašų rinkinyje. Gali būti pateikiama ne visa informacija apie tai, ko yra galerijoje, ir tai gali būti painu vartotojams.
Norėdami gauti daugiau informacijos, žr. perdavimo apžvalgą.
Sintaksė
Filtras(lentelė*, Formulė1 [, *Formulė2*, ... ] )
- Lentelė - būtina. Lentelė, kurioje ieškoma.
- Formulės - Būtina. Formulė, pagal kurią įvertinamas kiekvienas lentelės įrašas. Funkcija pateikia visus įrašus, kurie yra true. Stulpelius galite nurodyti lentelėje. Jei pateikiate daugiau nei vieną formulę, visų formulių rezultatai sujungiami naudojant funkciją And.
Search(Lentelė*, SearchString,Column1 [, *Column2*, ... ] )
- Lentelė - būtina. Lentelė, kurioje ieškoma.
- SearchString - būtina. Eilutė, kurios reikia ieškoti. Jei eilutė tuščia, pateikiami visi įrašai.
- Stulpeliai - būtina. Ieškotini lentelės stulpelių pavadinimai. Jei bet kurio iš šių stulpelių duomenyse kaip dalinis atitikmuo randama SearchString, bus pateiktas visas įrašas.
Pastaba.
Iki Power Apps 3.24042 versijos paieškos funkcijos stulpelių pavadinimai buvo nurodyti teksto eilute, naudojant dvigubas kabutes, o jei jie buvo prijungti prie duomenų šaltinis jie taip pat turėjo būti loginiai pavadinimai. Pavyzdžiui, vietoj rodomo pavadinimo Vardas be kabučių buvo naudojamas loginis pavadinimas "cr43e_name" su dvigubomis kabutėmis. " SharePoint Excel" duomenų šaltiniuose, kuriuose yra stulpelių pavadinimai su tarpais, kiekvienas tarpas buvo nurodytas su "_x0020_", pvz., "Stulpelio pavadinimas" kaip"Column_x0020_Name". Po šios versijos visos programos buvo automatiškai atnaujintos į naują sintaksę, aprašytą šiame straipsnyje.
LookUp(Lentelė*, Formulė [, ReductionFormula ] )
- Lentelė - būtina. Lentelė, kurioje ieškoma. Vartotojo sąsajoje sintaksė rodoma kaip šaltinis virš funkcijos laukelio.
- Formulė - būtina. Formulė, pagal kurią įvertinamas kiekvienas lentelės įrašas. Funkcija pateikia pirmąjį įrašą, kuris yra true. Stulpelius galite nurodyti lentelėje. Vartotojo sąsajoje sintaksė rodoma kaip sąlyga virš funkcijos laukelio.
- ReductionFormula - Neprivaloma. Ši formulė įvertinama pagal rastą įrašą, tada įrašas sumažinamas iki vienos reikšmės. Stulpelius galite nurodyti lentelėje. Jei šio parametro nenaudojate, funkcija pateikia visą įrašą iš lentelės. Vartotojo sąsajoje sintaksė rodoma kaip rezultatas virš funkcijos laukelio.
Pavyzdžiai
Toliau pateiktuose pavyzdžiuose naudojamas IceCreamduomenų šaltinis:
Formulė | Aprašą | Rezultatas |
---|---|---|
Filtras ("IceCream", "OnOrder > 0") | Pateikiami įrašai, kurių OnOrder reikšmė yra didesnė nei nulis. | |
Filtras ("IceCream", kiekis + "OnOrder > 225") | Pateikia įrašus, kurių stulpelių Quantity ir OnOrder stulpelių suma yra didesnė nei 225. | |
Filtras ("IceCream", "šokoladas" žemesnis(skonis )) | Pateikia įrašus, kurių ypatybės Flavor pavadinime rodomas žodis „šokoladiniai“, neatsižvelgiant į didžiąsias arba mažąsias raides. | |
Filtras ("IceCream", kiekis < 10 ir "OnOrder < 20") | Pateikia įrašus, kurių Quantity reikšmė yra mažesnė nei 10, o OnOrder – mažesnė nei 20. Šių kriterijų neatitinka joks įrašas, todėl pateikiama tuščia lentelė. | |
Paieška ("IceCream", "choc", skonis) | Pateikia įrašus, kurių ypatybės Flavor pavadinime rodoma eilutė „šok“, neatsižvelgiant į didžiąsias arba mažąsias raides. | |
Paieška(IceCream, "", Skonis) | Kadangi ieškos frazė yra tuščia, pateikiami visi įrašai. | |
LookUp(ledai, skonis = "šokoladas", kiekis) | Ieško įrašo, kurio skonis lygus "Šokoladui", kurio yra vienas. Pateikia pirmojo rasto įrašo ypatybę Quantity. | 100 |
LookUp(IceCream, Kiekis > 150, Kiekis + OnOrder) | Ieško įrašo, kurio Quantity reikšmė yra didesnė nei 150, o tokių įrašų yra keli. Pateikia pirmojo rasto įrašo, kurio Flavor reikšmė yra „Vaniliniai“, stulpelių Quantity ir OnOrder sumą. | 250 |
LookUp(IceCream, Flavor = "Pistachio", OnOrder) | Ieško įrašo, kurio ypatybė Flavor yra „Pistaciniai“, tačiau tokio įrašo nėra. Kadangi jis nerandamas, Peržvalga grąžina reikšmę tuščia. | Tuščią |
LookUp (ledas, skonis = "vanilė") | Ieško įrašo, kurio skonis lygus "Vanilei", iš kurių yra vienas. Kadangi nebuvo pateikta jokia sumažinimo formulė, pateikiamas visas įrašas. | { Flavor: "Vaniliniai", Quantity: 200, OnOrder: 75 } |
Filtravimas su pasirinkimo stulpeliais
Toliau pateiktas pavyzdys naudoja „Microsoft Dataverse” Kliento lentelę kaip duomenų šaltinį. Šiame pavyzdyje parodyta, kaip Filtruoti klientų sąrašą pagal pasirinktas Pasirinktinio įvedimo lauko valdiklio reikšmes:
Nuoseklūs veiksmai
Atidarykite tuščią programą.
Įtraukite naują ekraną pasirinkdami Naujo ekrano parinktį.
Skirtuke Įterpimas pasirinkite Galerija, o tada – Vertikali.
Dešiniosios srities skirtuke Ypatybės atidarykite Duomenų šaltinį ir tada pasirinkite Paskyros.
(Pasirinktinis) Išdėstymų sąraše pažymėkite skirtingas parinktis.
Skirtuke Įterpimas pasirinkite Įvestis, o tada – Pasirinktinio įvedimo laukas. Pakartokite šį veiksmą, kad įtrauktumėte dar pasirinktinio įvedimo lauko valdiklius.
Kiekvienam pasirinktinio įvedimo lauko valdikliui dešiniosios srities skirtuke Ypatybės atidarykite Duomenų šaltinį ir tada pasirinkite Paskyros. Pasirinkite Redaguoti, esantį šalia Laukų parinkties, o tada pasirinkite Pirminio teksto ir Ieškos lauko reikšmes. Pirminis tekstas turi būti pasirinkimo stulpelis, kurį norite įtraukti į pasirinktinio įvedimo lauką. Pakartokite šį veiksmą kitiems dviems pasirinktinio įvedimo lauko valdikliams.
Dabar pasirinkite Galerijos valdiklį ir nustatykite Elementų ypatybę pagal šią formulę:
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'))
Ieškoti vartotojo patirties
Toliau pateiktuose pavyzdžiuose naudojamas IceCreamduomenų šaltinis:
Daugelyje programų į ieškos lauką galite įvesti vieną ar daugiau simbolių, jei norite filtruoti didelių duomenų rinkinio įrašus. Kai rašote, sąraše rodomi tik atitinkantys ieškos kriterijus.
Likusioje šio straipsnio dalyje pateiktuose pavyzdžiuose pateikiami ieškos sąraše, pavadintame Klientai, kuriame yra šie duomenys, rezultatai:
Norėdami sukurti šį duomenų šaltinį kaip rinkinį, sukurkite Buttonvaldiklį ir nustatykite jo OnSelectypatybę pagal šią formulę:
ClearCollect(Klientai, lentelė{ (Pavadinimas: "Fred Garcia", Įmonė: "Northwind Traders" }, { Pavadinimas: "Cole Miller", Įmonė: "Contoso", }Pavadinimas: "Glenda Johnson", { Įmonė: "Contoso" }, { Pavadinimas: "Mike Collins", Įmonė: "Nuotykių darbai" }, { Pavadinimas: "Colleen Jones", Įmonė: "Nuotykių darbai" }) )
Kaip šiame pavyzdyje, Gallery control ekrano pabaigoje galite parodyti įrašų sąrašą. Prie ekrano viršaus galite įtraukti Text inputvaldiklį, pavadintą SearchInput, kad vartotojai galėtų nurodyti, kurie įrašai juos domina.
Vartotojui įvedinėjant simbolius į SearchInput, galerijos rezultatai automatiškai filtruojami. Tokiu atveju galerijoje yra sukonfigūruota rodyti įrašus, kuriuose kliento vardas ir pavardė (ne bendrovės pavadinimas) prasideda simbolių seka elemente SearchInput. Jei ieškos lauke vartotojas įveda co, galerijoje rodomi šie rezultatai:
Jei norite filtruoti pagal Name stulpelį, nustatykite Itemsgalerijos valdiklio ypatybę pagal vieną iš šių formulių:
Formulė | Aprašas | Rezultatas |
---|---|---|
Filter(Klientai, StartsWith(pavadinimas, SearchInput.Text) ) | Filtruoja Customers įrašų duomenų šaltinį, kuriuose rodoma ieškos eilutė prasideda Name stulpeliu. Teste svarbus raidžių dydis. Jei vartotojas parašo co ieškos lauke, galerijoje rodomi Colleen Jonesir Cole Miller. Galerijoje nerodoma Mike Collins, nes Name įrašo stulpelio pavadinimas neprasideda ieškos eilute. | |
Filtras(klientai, SearchInput.Text pavadinime) | Filtruoja Customers įrašų duomenų šaltinį, kuriuose rodoma ieškos eilutė prasidedanti bet kur Name stulpelyje Teste svarbus raidžių dydis. Jei vartotojas įrašo co ieškos lauke, galerijoje rodoma Colleen Jones,Cole Miller ir Mike Collins, nes ieškos eilutė rodoma kažkur visų šių įrašų stulpelyje Vardas. | |
Search(Klientai, SearchInput.Text, Vardas) | Panašiai kaip ir naudojant in operatorių, funkcija Search ieško atitikmens bet kur Name kiekvieno įrašo stulpelyje. Stulpelio pavadinimas turi būti įdėtas į dvigubas kabutes. |
Galite išplėsti savo iešką, kad įtrauktumėte Įmonės ir Pavadinimo stulpelius:
Formulė | Aprašymas | Rezultatas |
---|---|---|
Filter(Klientai, StartsWith(Vardas, SearchInput.Text) || StartsWith(Įmonė, SearchInput.Text) ) | Filtruoja duomenų šaltinį Klientai, ieškodamas įrašų, kurių stulpelis Vardas arba stulpelis Įmonė prasideda ieškos eilute (pvz., co). ||operatorvertė yra true, jei StartsWith funkcijos vertė yra true. | |
Filtras(klientai, SearchInput.text pavadinime || SearchInput. Tekstas įmonėje) | Filtruoja Customersįrašų duomenų šaltinį, kurių Namestulpelyje arba Company stulpelyje bet kur yra ieškos eilutė (pvz., co). | |
Search(klientai, SearchInput.Text, pavadinimas, įmonė) | Panašiai kaip ir naudojant in operatorių, Search funkcija ieško Customers įrašų duomenų šaltinio, kuriuose yra arba Name stulpelis, arba Company stulpelyje bet kur yra ieškos eilutė (pavyzdžiui, co). Search funkciją lengviau perskaityti ir rašyti nei Filter, jei norite nurodyti kelis stulpelius ir kelis inoperatorius. |