Szűrési, keresési és keresési függvények
A következőkre vonatkozik: Vászonalapú alkalmazások Asztali folyamatok Modellvezérelt alkalmazások Power Platform CLI
Egy tábla egy vagy több rekordjának megkeresésére szolgál.
Tekintse meg a Szűrés , a Keresés és **a Keresés függvény használatát bemutató videót:
Feljegyzés
A PAC CLI PAC POWER-FX parancsok nem támogatják a Keresés funkciót.
Description
A Filter függvény megkeresi egy adott tábla azon rekordjait, amelyek megfelelnek egy bizonyos képletnek. A Szűrő segítségével megkeresheti az egy vagy több feltételnek megfelelő rekordkészletet, és elvetheti azokat, amelyek nem.
A LookUp függvény megkeresi egy adott tábla első olyan rekordját, amely megfelel egy bizonyos képletnek. A LookUp használatával megkereshet egyetlen olyan rekordot, amely megfelel egy vagy több feltételnek.
Mindkét esetben a rendszer a tábla minden rekordjánál kiértékeli a feltételt. Az eredmények közé azok a rekordok kerülnek be, amelyek true eredményt adnak. A képletek normál operátorai mellett az in és az exactin operátor is használható a sztringrészletek egyezéseihez.
Az aktuálisan feldolgozás alatt álló rekordmezők elérhetők a képletben. Használja a ThisRecord operátort, vagy egyszerűen hivatkozzon név szerint a mezőkre, ahogy más értéket is hivatkozna. Az As operátor a feldolgozás alatt álló rekord elnevezésére használatos, amellyel könnyebben érthető a képlet, és hozzáférhetőbbek a beágyazott rekordok. További információkért lásd az alábbi példákat és a rekord hatókörével való munkát.
A Search függvény megkeresi egy adott tábla azon rekordjait, amelyeknek az egyik oszlopában megtalálható egy bizonyos sztring. A karakterlánc bárhol előfordulhat az oszlopon belül; Ha például a "rob" vagy a "bert" kifejezésre keres, egyezést talál egy olyan oszlopban, amely tartalmazza a "Robert" szót. A keresés nem különbözteti meg a kis- és nagybetűket. A Filter és a LookUp függvénnyel ellentétben a Search nem képlet, hanem egyetlen sztring alapján keresi a találatokat.
A Filter és a Search olyan táblát ad vissza, amely az eredeti táblával egyező oszlopokat és a feltételeknek megfelelő rekordokat tartalmaz. A LookUp csak az első megtalált rekordot adja vissza, miután egy képlet alkalmazásával a rekordot egyetlen értékre csökkenti le. Ha nincsenek megfelelő rekordok, a Filter és a Searchüres táblát ad vissza, a LookUp pedig üres eredményt.
A táblák éppúgy értékek a Power Apps rendszerben, mint a sztringek vagy a számok. így függvények alapjául és eredményeként is szolgálhatnak. A Filter, a Search és a LookUp nem módosítja a táblákat. Ehelyett argumentumként kezelik a táblákat, amely alapján egy másik táblát, rekordot vagy egyetlen értéket adnak vissza. További részleteket a táblákkal való munkával foglalkozó témakörben talál.
Meghatalmazás
Amikor lehetséges, a Power Apps az adatforrásnak delegálja a szűrési és rendezési műveleteket, és igény szerint lapozza át az eredményeket. Ha például elindít egy alkalmazást, amely megjelenít egy adatokkal feltöltött gyűjtemény vezérlőt, először csak a bejegyzések első csoportja kerül az eszközre. Miközben a felhasználó görget, további adatok lekérése történik az adatforrásból. Az eredmény az alkalmazás gyorsabb indulása, és a hozzáférés a nagyon nagy adathalmazokhoz.
Azonban előfordulhat, hogy a delegálás nem mindig lehetséges. Az adatforrások eltérőek abból a szempontból, hogy milyen függvények és operátorok esetében támogatják a delegálást. Ha egy képlet teljes delegálása nem lehetséges, a fejlesztői környezet figyelmeztetéssel jelöli meg a nem delegálható részt. Amikor csak lehetséges, érdemes módosítani a képletet, hogy le legyenek nem delegálható függvények és operátorok. A delegálási lista részletesen tartalmazza, hogy mely adatforrások és milyen műveletek delegálhatók.
Ha a delegálás nem lehetséges, a Power Apps a bejegyzéseknek csak egy kis részét hívja le helyben történő használata. A szűrés és rendezés funkciók korlátozott bejegyzéshalmazon fognak működni. Előfordulhat, hogy az, ami a gyűjteményben rendelkezésre áll, nem fedi le a teljes képet, ami zavaros lehet a felhasználók számára.
További információkért lásd: a delegálás áttekintése.
Szintaxis
Szűrő(Tábla*, Képlet1 [, *Képlet2*, ... ] )
- Tábla – Kötelező megadni. A kereséshez használni kívánt tábla.
- Képlet(ek) – Kötelező. A képlet, amelyek alapján a rendszer kiértékeli a tábla egyes rekordjait. A függvény visszaadja az összes olyan rekordot, amely true eredményt ad. A hivatkozás alapjául a táblában szereplő oszlopok használhatók. Ha több képletet ad meg, akkor a képletek eredményeit az And függvénnyel lehet kombinálni.
Keresés(Tábla*, SearchString, Oszlop1 [, *Oszlop2*, ... ] )
- Tábla – Kötelező megadni. A kereséshez használni kívánt tábla.
- SearchString – Kötelező. A keresendő sztring. Ha üres sztring, akkor a rendszer az összes rekordot visszaadja.
- Oszlop(ok) – Kötelező. A kereséshez használni kívánt oszlopok nevei a Táblában. Ha a rendszer bármelyik oszlop adataiban megtalálja a Keresési sztringet részleges egyezésként, akkor a teljes rekordot visszaadja.
Feljegyzés
A Power Apps 3.24042-es verzió előtt a Search függvény oszlopneveit idézőjelbe tett szöveges karakterlánccal adtuk meg, és ha adatforrás-hez kapcsolódtak, logikai neveknek is kellett lenniük. Például a "cr43e_name" logikai nevet idézőjelek nélkül használtuk a megjelenítendő név Név idézőjelek nélkül. A szóközöket tartalmazó oszlopneveket tartalmazó Excel-adatforrások esetében SharePoint minden szóköz a "_x0020_" szóval lett megadva, például "Oszlopnév" mint "Column_x0020_Name". Ezt a verziót követően az összes alkalmazás automatikusan frissült a cikkben ismertetett új szintaxisra.
LookUp(Tábla*, Képlet [, *ReductionFormula* ] )
- Tábla – Kötelező megadni. A kereséshez használni kívánt tábla. A felhasználói felületen a szintaxis forrásként jelenik meg a függvénymező felett.
- Formula – Kötelező. A képlet, amelyek alapján a rendszer kiértékeli a tábla egyes rekordjait. A függvény visszaadja az első olyan rekordot, amely true eredményt ad. A hivatkozás alapjául a táblában szereplő oszlopok használhatók. A felhasználói felületen a szintaxis feltételként jelenik meg a függvénymező felett.
- Csökkentési képlet – Nem kötelező. A rendszer e képlet alapján értékeli ki a megtalált rekordot, majd egyetlen értékre csökkenti a rekordot. A hivatkozás alapjául a táblában szereplő oszlopok használhatók. Ha nem használja ezt a paramétert, akkor a függvény a teljes rekordot adja vissza a táblából. A felhasználói felületen a szintaxis eredményként jelenik meg a függvénymező felett.
Példák
A következő példák a Jégkrémadatforrást használják:
Képlet | Description | Result |
---|---|---|
Filter( Jégkrém, Rendelés > 0 ) | Visszaadja azokat a rekordokat, ahol a Rendelés nagyobb, mint nulla. | |
Filter( Jégkrém, Mennyiség + Rendelés > 225 ) | Visszaadja azokat a rekordokat, ahol a Mennyiség és a Rendelés oszlop összege nagyobb, mint 225. | |
Filter( Jégkrém, "csokoládé" in Lower( Íz ) ) | Visszaadja azokat a rekordokat, ahol a „csokoládé” szó megjelenik a Íz névben, függetlenül a kis- és nagybetűktől. | |
Szűrő(fagylalt, mennyiség < 10 && rendelésre < 20) | Visszaadja azokat a rekordokat, ahol a Mennyiség kisebb, mint 10 és a Rendelés kisebb, mint 20. Ezeknek a feltételeknek egy rekord sem felel meg, így a függvény üres táblát ad vissza. | |
Keresés (Fagylalt, "choc", íz) | Visszaadja azokat a rekordokat, ahol a „csok” sztring megjelenik az Íz névben, függetlenül a kis- és nagybetűktől. | |
Keresés (Fagylalt, "", íz) | Mivel a keresési kifejezés üres, ez a függvény minden rekordot visszaad. | |
LookUp( Jégkrém, Íz = "Csokoládé", Mennyiség ) | Olyan rekordot keres, amelynek Flavor értéke megegyezik a "Chocolate" értékkel, amelyből van egy. Az első megtalált rekordnak visszaadja a Mennyiség értékét. | 100 |
LookUp( Jégkrém, Mennyiség > 150, Mennyiség + Rendelés ) | Olyan rekordot keres, ahol a Mennyiség nagyobb, mint 150; több ilyen is található. Az első megtalált rekordnál, ahol egyébként az Íz értéke „Vanília”, visszaadja a Mennyiség és az Rendelés oszlop értékeinek összegét. | 250 |
LookUp( Jégkrém, Íz = "Pisztácia", Rendelés ) | Olyan rekordot keres, ahol az Íz értéke „Pisztácia”; egy ilyen sem található. Mivel nem található ilyen, a LookUp egy üres eredményt ad vissza. | üres |
LookUp( Jégkrém, Íz = "Vanília" ) | Olyan rekordot keres, amelynek Flavor értéke megegyezik a "Vanília" értékkel, amelyből van egy. Mivel nem lett megadva csökkentési képlet, a függvény az egész rekordot visszaadja. | { Íz: "Vanília", Mennyiség: 200, Rendelés: 75 } |
Szűrés választási oszlopokkal
Az alábbi példa a Microsoft Dataverse Partner tábláját használja adatforrásként. Ez a példa bemutatja, hogyan Szűrheti a partnerek listáját a kijelölt kombinált lista vezérlőértékek alapján:
Lépésről lépésre
Üres alkalmazás megnyitása.
Vegyen fel egy új képernyőt az Új képernyő lehetőség kiválasztásával.
A Beszúrás lapon válassza a Katalógus, majd a Vízszintes lehetőséget.
A jobb oldali ablaktábla Tulajdonságok lapján nyissa meg az Adatforrás elemet majd válassza a Partnerek lehetőséget.
(Nem kötelező) Az Elrendezés listában válasszon különböző beállításokat.
A Beszúrás lapon válassza a Bemenet, majd a Kombinált lista lehetőséget. Ismételje meg a lépést két további kombináltlista-vezérlő hozzáadásához.
Minden egyes kombináltlista-vezérlőhöz a jobb oldali ablaktábla Tulajdonságok lapján nyissa meg az Adatforrás elemet majd válassza a Partnerek lehetőséget. Válassza a Szerkesztés lehetőséget a Mezők mellett, majd jelölje ki az Elsődleges szöveg és a SearchField értékeket. Az Elsődleges szövegnek a kombinált listához hozzáadni kívánt választási lehetőségek oszlopának kell lennie. Ismételje meg a lépést a további kombináltlista-vezérlőkhöz.
A Katalógus vezérlőelemben állítsa a Cikkek tulajdonságot a következő képletre:
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'))
Keresési felhasználói élmény
A következő példák a Jégkrémadatforrást használják:
Sok alkalmazásban ha karaktereket ír be a keresőmezőbe, azzal szűrni tudja a nagy adatkészletek rekordjainak listáját. A karakterek begépelésével a lista egyre rövidebb lesz, és csak azok a rekordok jelennek meg, amelyek megfelelnek a keresési feltételnek.
A cikk további részében található példák a következő adatokat tartalmazó Ügyfelek nevűlistában való keresés eredményeit mutatják be:
Ha ezt az adatforrást szeretné létrehozni gyűjteményként, akkor hozzon létre egy Gomb vezérlőelemet, és az OnSelect tulajdonság értékeként adja meg a következő képletet:
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" }) )
Ahogy a példában is látható, megjeleníthet egy rekordlistát egy Katalógus vezérlőelemben a képernyő alján. A képernyő tetején felvehet egy Szövegbevitel vezérlőelemet, SearchInput (Keresés bemenete) névvel, így a felhasználók megadhatják, hogy milyen rekordok érdeklik őket.
Ahogy a felhasználó karaktereket gépel a SearchInput mezőbe, a rendszer automatikusan szűri a katalógus eredményeit. Ebben az esetben a katalógus úgy lett konfigurálva, hogy megjelenítse azon rekordokat, ahol a felhasználó neve (nem a vállalat neve) a SearchInput mezőben megadott karakterlánccal kezdődik. Ha a felhasználó begépeli a co karaktereket a keresőmezőbe, a katalógus a következő eredményeket jeleníti meg:
A Name (Név) oszlop alapján történő szűréshez a katalógus vezérlőelem Elemek tulajdonságának értékeként adja meg a következő képletek valamelyikét:
Képlet | Ismertetés | Eredmény |
---|---|---|
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) | Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési sztring szerepel a Name (Név) oszlop elején. A teszt nem különbözteti meg a kis- és nagybetűket. Ha a felhasználó begépeli a co karaktereket a keresőmezőbe, a katalógusban megjelenik Colleen Jones és Cole Miller. Mike Collins nem jelenik meg a katalógusban, mivel a rekord Name (Név) oszlopának nem az elején szerepel a keresési sztring. | |
Filter( Customers, SearchInput.Text in Name ) | Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési sztring a Name (Név) oszlopban bárhol szerepel. A teszt nem különbözteti meg a kis- és nagybetűket. Ha a felhasználó begépeli a co karaktereket a keresőmezőbe, a katalógusban megjelenik Colleen Jones,Cole Miller és Mike Collins is, mivel a keresési sztring mindegyik rekord esetében szerepel valahol a Name (Név) oszlopban. | |
Keresés(Ügyfelek, SearchInput.Text, Név) | Az in operátor működéséhez hasonlóan a Search függvény az egyes rekordok Name (Név) mezőin belül bárhol keresi az egyezéseket. Vegye figyelembe, hogy az oszlop nevét dupla idézőjelbe kell tenni. |
Kiterjesztheti a keresést úgy, hogy a Vállalat és a Név oszlopban is keressen:
Képlet | Ismertetés | Eredmény |
---|---|---|
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) | Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési sztring (például co) szerepel akár a Name (Név), akár a Company (Vállalat) oszlop elején. Az || operátor akkor true, ha bármelyik StartsWith függvény true. | |
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) | Kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési sztring (például co) bárhol szerepel akár a Name (Név), akár a Company (Vállalat) oszlopban. | |
Keresés(Ügyfelek, SearchInput.Text, név, vállalat) | Az in operátor működéséhez hasonlóan a Search függvény kiszűri a Customers (Ügyfelek) adatforrásból azon rekordokat, ahol a keresési sztring (például co) bárhol szerepel akár a Name (Név), akár a Company (Vállalat) oszlopban. A Search függvényt könnyebb olvasni és megírni, mint a Filter függvényt, ha több oszlopot és több in operátort szeretnénk megadni. |