Funcions de filtre, cerca i cerca
S'aplica a: Aplicacions de llenç Fluxos d'escriptori CLI d'aplicacions Power Pages Power Platform basades en models
Troba un o diversos registres en una taula.
Mireu aquest vídeo per obtenir informació sobre com utilitzar les funcions de filtre, ** cerca i cerca:
Nota
Les ordres pac power-fx de la CLI PAC no admeten la funció de cerca .
Descripció
La funció Filter troba els registres d'una taula que satisfan la fórmula. Utilitzeu Filtre per cercar un conjunt de registres que coincideixin amb un o més criteris i descartar els registres que no coincideixin.
La funció LookUp troba el primer registre d'una taula que satisfà una fórmula. Utilitzeu LookUp per cercar un únic registre que coincideixi amb un o diversos criteris.
Per a tots dos, la fórmula s'avalua per a cada registre de la taula. Els registres que resulten en cert s'inclouen al resultat. A més dels operadors de fórmula normals, podeu utilitzar els operadors in i exactin per a les coincidències amb subcadenes.
Els camps del registre que s’està processant actualment estan disponibles dins de la fórmula. Utilitzeu l’operador ThisRecord o simplement els camps de referència per nom com si fos qualsevol altre valor. L’operador As també es pot utilitzar per nomenar el registre que s’està processant i que pot ajudar-vos a fer que la fórmula sigui més fàcil d’entendre i fer accessible els registres incrustats. Per obtenir més informació, vegeu els exemples següents i la secció Treballar amb l’àmbit de registre.
La funció Search troba registres en una taula que conté una cadena en una de les seves columnes. La cadena pot aparèixer en qualsevol lloc de la columna; per exemple, cercar "rob" o "bert" trobaria una coincidència en una columna que conté "Robert". La cerca no distingeix entre majúscules i minúscules. A diferència de Filter i LookUp, la funció Search utilitza una única cadena per coincidir en comptes d'una fórmula.
El filtre i la cerca retornen una taula que conté les mateixes columnes que la taula original i els registres que coincideixen amb els criteris. SearchUp retorna només el primer registre trobat, després d'aplicar una fórmula per reduir el registre a un sol valor. Si no s'ha trobat cap registre, Filter i Search retornen una taula buida i LookUp retorna en blanc.
Les taules són un valor en Power Apps, igual que una cadena o un número. Es poden passar a funcions i retornar-ne. El filtre, la cerca i la cerca no modifiquen una taula. En lloc d'això, agafen una taula com a argument i tornen una taula, un registre o un únic valor. Vegeu Treballar amb taules per obtenir més informació.
Delegació
Si és possible, el Power Apps delegarà a petició les operacions de filtratge i ordenació a la font de dades i pàgina a través dels resultats. Per exemple, quan inicieu una aplicació que mostra un control Galeria ple de dades, només el primer conjunt de registres es portarà inicialment-los al dispositiu. A mesura que l'usuari desplaça la pàgina, es mostraran dades addicionals de la font de dades. D'això en resulta un temps d'inici més ràpid per a l'aplicació i un accés a conjunts de dades molt grans.
Tanmateix, la delegació no sempre és possible. Les fonts de dades varien segons les funcions i operadors als quals donen suport amb la delegació. Si la delegació completa d'una fórmula no és possible, l'entorn de creació marcarà la part corresponent que no es pot delegar amb un advertiment. Si és possible, considereu la possibilitat de canviar la fórmula per evitar les funcions i els operadors que no es poden delegar. La llista de delegació indica les fonts de dades i les operacions que es poden delegar.
Si la delegació no és possible, el Power Apps extraurà només un petit conjunt de registres per treballar-hi localment. Les funcions de filtratge i ordenació funcionaran en un conjunt reduït de registres. És possible que el contingut de la Galeria no sigui exhaustiu, fet que podria confondre els usuaris.
Vegeu la informació general sobre la delegació per obtenir més informació.
Sintaxi
Filtre(Taula*, Fórmula1 [, *Fórmula2*, ... ] )
- Taula : obligatòria. Taula per cercar.
- Fórmules: obligatòries . La fórmula per la qual s'avalua cada registre de la taula. La funció retorna tots els registres que tenen un resultat cert. Podeu fer referència a columnes de la taula. Si sumeu més d'una fórmula, els resultats de totes les fórmules es combinen amb la funció And.
Cerca(Taula*, CercaCadena,Columna1 [, *Columna2*, ... ] )
- Taula : obligatòria. Taula per cercar.
- SearchString - Obligatori. La cadena de text per cercar. Si està en blanc o una cadena buida, es retornen tots els registres.
- Columnes : obligatòries. Els noms de les columnes de la Taula que voleu cercar. Si SearchString es troba dins de les dades d'alguna d'aquestes columnes com a coincidència parcial, es retornarà el registre complet.
Nota
Abans Power Apps de la versió 3.24042, els noms de columna per a la funció de cerca s'especificaven amb una cadena de text utilitzant cometes dobles, i si es connectaven a una font de dades també havien de ser noms lògics. Per exemple, es va utilitzar el nom lògic "cr43e_name" amb cometes dobles en lloc del nom de visualització Nom sense cometes. Per a SharePoint les fonts de dades de l'Excel que contenen noms de columna amb espais, cada espai s'ha especificat amb "_x0020_", per exemple "Nom de columna" Column_x0020_Name ". Després d'aquesta versió, totes les aplicacions s'actualitzaven automàticament a la nova sintaxi descrita en aquest article.
Cerca(Taula*, Fórmula [, ReduccióFórmula] )
- Taula : obligatòria. Taula per cercar. A la interfície d'usuari, la sintaxi es mostra com a origen al quadre de funció.
- Fórmula : obligatòria. La fórmula per la qual s'avalua cada registre de la taula. La funció retorna el primer registre que té el resultat cert. Podeu fer referència a columnes de la taula. A la interfície d'usuari, la sintaxi es mostra com a condició al quadre de funció.
- ReductionFormula : opcional. Aquesta fórmula s'avalua en el registre que s'ha trobat i després redueix el registre a un sol valor. Podeu fer referència a columnes de la taula. Si no utilitzeu aquest paràmetre, la funció retorna el registre complet de la taula. A la interfície d'usuari, la sintaxi es mostra com a resultat al quadre de funció.
Exemples
Els exemples següents utilitzen la font de dades IceCream:
Fórmula | Descripció | Resultat |
---|---|---|
Filtre(Gelat, OnOrder > 0) | Retorna els registres on OnOrder és major que zero. | |
Filtre(Gelats, quantitat + Encàrrec > 225) | Retorna els registres en què la suma de les columnes Quantitat i OnOrder és major que 225. | |
Filtre(Gelat, "xocolata" a Baix (Sabor)) | Retorna els registres en què la paraula "xocolata" apareix al nom de Gust, independentment de les lletres majúscules i minúscules. | |
Filtre (gelat, quantitat < 10 i en comanda < 20) | Retorna els registres en què la Quantitat és inferior a 10 i OnOrder és menor que 20. No hi ha cap registre que coincideixi amb aquests criteris, de manera que es torna una taula buida. | |
Cerca(Gelat, "xocolata", Sabor) | Retorna els registres en què la cadena "xoc" apareix al nom de Gust, independentment de les lletres majúscules i minúscules. | |
Cerca(Gelat, "", Sabor) | Com que el terme de cerca és buit, tots els registres es retornen. | |
LookUp(Gelat, Sabor = "Xocolata", Quantitat) | Cerca un disc amb sabor igual a "Xocolata", del qual n'hi ha un. Per al primer registre que s'ha trobat, el retorna la Quantitat d'aquest registre. | 100 |
LookUp(Gelat, Quantitat > 150, Quantitat + EnComanda) | Cerca un registre amb una Quantitat superior a 150, dels quals hi ha diversos. Per al primer registre que s'ha trobat, que és el Gust "Vainilla", retorna la suma de les columnes Quantitat i OnOrder. | 250 |
LookUp(Gelat, Sabor = "Pistatxo", OnOrder) | Cerca un registre amb un Gust igual a "Festuc", del qual no n'hi ha cap. Com que no se'n troba cap, Cerca torna en blanc. | Buit |
LookUp(Gelat, Sabor = "Vainilla") | Cerca un disc amb sabor igual a "Vainilla", del qual n'hi ha un. Com que no s'ha proporcionat cap fórmula de reducció, es torna tot el registre. | { Gust: "Vainilla", Quantitat: 200, OnOrder: 75 } |
Filtrar amb columnes d'opció
L'exemple següent utilitza la taula Comptes del Microsoft Dataverse com a font de dades. En aquest exemple es mostra la llista de filtres dels comptes segons els valors de control del quadre combinat seleccionats:
Pas a pas
Obrir una aplicació en blanc.
Per afegir una pantalla nova, seleccioneu l'opció Nova pantalla.
A la pestanya Insereix, seleccioneu Galeria i, a continuació, seleccioneu Vertical.
A la pestanya Propietats de la subfinestra de la dreta, obriu Font de dades i, a continuació, seleccioneu Comptes.
(Opcional) A la llista Disposició, seleccioneu diverses opcions.
A la pestanya Insereix, seleccioneu Entrada i, a continuació, seleccioneu Quadre combinat. Repetiu el pas per afegir dos controls de quadre combinat més.
Per a cada control de quadre combinat, a la pestanya Propietats de la subfinestra de la dreta, obriu Font de dades i, a continuació, seleccioneu Comptes. Seleccioneu Edita al costat de l'opció Camps i, a continuació, seleccioneu el text principal i els valors Camp de cerca. El text principal ha de ser la columna d'opcions que voleu afegir al quadre combinat. Repetiu el pas per als altres dos controls de quadre combinat.
Ara seleccioneu el control Galeria i definiu la propietat Elements a la fórmula següent:
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'))
Experiència de cerca de l'usuari
Els exemples següents utilitzen la font de dades IceCream:
En moltes aplicacions, podeu escriure un o més caràcters en un quadre de cerca per filtrar una llista de registres en un conjunt de dades gran. A mesura que teclegeu, la llista només mostra els registres que coincideixen amb els criteris de cerca.
Els exemples de la resta d'aquest article mostren els resultats de la cerca d'una llista, anomenada Clients, que conté aquestes dades:
Per crear aquesta font de dades com una col·lecció, creeu un control Botó i definiu-ne la propietat OnSelect en aquesta fórmula:
ClearCollect(Clients, Taula ({ Nom: "Fred Garcia", Empresa: "Northwind Traders" }, { Nom: "Cole Miller", Empresa: "Contoso" }, { Nom: "Glenda Johnson", Empresa: "Contoso" }, { Nom: "Mike Collins", Empresa: "Adventure Works" }, { Nom: "Colleen Jones", Empresa: "Adventure Works" }) )
Com en aquest exemple, podeu mostrar una llista de registres en un control Galeria a la part inferior d'una pantalla. A prop de la part superior de la pantalla, podeu afegir un control Entrada de text, anomenat SearchInput, de tal manera que els usuaris puguin especificar els registres que els interessen.
A mesura que l'usuari escriu caràcters a SearchInput, els resultats de la galeria es filtren automàticament. En aquest cas, la galeria es configura per mostrar els registres on el nom del client (no el nom de l'empresa) comença per la seqüència de caràcters de SearchInput. Si l'usuari escriu co al quadre de cerca, la galeria mostra aquests resultats:
Per filtrar segons la columna Nom, definiu la propietat Items del control de galeria en una d'aquestes fórmules:
Fórmula | Descripció | Resultat |
---|---|---|
Filter(Customers, StartsWith(Name, SearchInput.Text) ) | Filtra la font de dades Clients per als registres en els quals apareix la cadena de cerca a l'inici de la columna Nom. La prova no distingeix entre majúscules i minúscules. Si l'usuari escriu co al quadre de cerca, la galeria mostra Colleen Jones i Cole Miller. La galeria no mostra Mike Collins perquè la columna Nom d'aquest registre no comença per la cadena de cerca. | |
Filtre(Clients, SearchInput.Text al nom) | Filtra la font de dades Clients per als registres en els quals apareix la cadena de cerca a qualsevol part de la columna Nom. La prova no distingeix entre majúscules i minúscules. Si l'usuari escriu co al quadre de cerca, la galeria mostra Colleen Jones, Cole Miller, i Mike Collins perquè la cadena de cerca apareix a qualsevol part de la columna Nom de tots aquests registres. | |
Cerca(Clients, SearchInput.Text, Nom) | De la mateixa que l'operador in, la funció Search cercarà una coincidència a qualsevol part de la columna Nom de cada registre. Heu d'incloure el nom de la columna entre cometes dobles. |
Podeu expandir la cerca per incloure la columna Empresa i la columna Nom:
Fórmula | Descripció | Resultat |
---|---|---|
Filter(Customers, StartsWith(Name, SearchInput.Text) || BeginsWith(Company, SearchInput.Text) ) | Filtra la font de dades Clients per als registres en els quals la columna Nom o la columna Empresa comença amb la cadena de cerca (per exemple, co). L'operador || és true si alguna funció StartsWith és true. | |
Filtre(Clients, SearchInput.Text al nom || SearchInput. Text a l'empresa) | Filtra la font de dades Clients per als registres en els quals la columna Nom o la columna Empresa conté la cadena de cerca (per exemple, co) a qualsevol part. | |
Cerca(Clients, SearchInput.Text, Nom, Empresa) | Semblant a l'ús de l'operador in, la funció Search cerca a la font de dades Clients registres en els quals la columna Nom o la columna Empresa conté la cadena de cerca (per exemple, co) a qualsevol part. La funció Search és més fàcil de llegir i escriure que Filter si voleu especificar diverses columnes i diversos operadors in. |