Funcions de filtre, cerca i cerca

S'aplica a: Aplicacions de llenç Fluxos d'escriptori Aplicacions Power Platform basades en models CLI

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 CLI pac power-fx no admeten la funció Cerca .

Descripció

La funció Filter troba els registres d'una taula que satisfan la fórmula. Utilitzeu Filter per cercar un conjunt de registres que coincideixin amb un o més criteris i descartar els registres que no.

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 ocórrer en qualsevol lloc dins de la columna; per exemple, cercant "rob" o "bert" trobaríem una coincidència en una columna que contingui "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.

Filter i Search retornen una taula que conté les mateixes columnes que la taula original i els registres que coincideixen amb els criteris. LookUp només retorna el primer registre que es troba, després d'aplicar una fórmula per reduir el registre a un únic 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 del Power Apps, igual que una cadena o un número. Es poden passar a funcions i retornar-ne. Filter, Search i LookUp 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

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

  • Taula: obligatori. Taula per cercar.
  • Formula(s): obligatori. 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.

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

  • Taula: obligatori. Taula per cercar.
  • SearchString: obligatori. La cadena de text per cercar. Si està en blanc o una cadena buida, es retornen tots els registres.
  • Columna: obligatori. 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ó Search s'especificaven amb una cadena de text utilitzant cometes dobles i, si estaven connectats a un 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 i que contenen noms de columna amb espais, cada espai s'ha especificat amb "_x0020_", per exemple "Nom de la columna" com"Column_x0020_Name ". A partir d'aquesta versió, totes les aplicacions s'han actualitzat automàticament a la nova sintaxi descrita en aquest article.

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

  • Taula: obligatori. Taula per cercar. A la interfície d'usuari, la sintaxi es mostra com a origen al quadre de funció.
  • Fórmula: obligatori. 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 dadesIceCream:

Gelats font de dades.

Fórmula Descripció Resultat
Filter( Gelat, OnOrder > 0 ) Retorna els registres on OnOrder és major que zero. Filtrar Per encàrrec.
Filter( Gelat, Quantitat + OnOrder > 225 ) Retorna els registres en què la suma de les columnes Quantitat i OnOrder és major que 225. Filtrar quantitat i comanda.
Filter( Gelat, "xocolata" in Lower( Gust ) ) Retorna els registres en què la paraula "xocolata" apareix al nom de Gust, independentment de les lletres majúscules i minúscules. Filtrar a la part inferior.
Filtre(Gelat, quantitat < 10 & OnOrder < 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. Filtrar per quantitat.
Cercar(Gelat, "xoc", Sabor) Retorna els registres en què la cadena "xoc" apareix al nom de Gust, independentment de les lletres majúscules i minúscules. Elements de cerca.
Cercar(Gelat, "", Sabor) Com que el terme de cerca és buit, tots els registres es retornen. Cerqueu tots els elements.
LookUp( Gelat, Gust = "Xocolata", Quantitat ) Cerca un registre 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 + OnOrder ) 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, Gust = "Festuc", 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. blank
LookUp( Gelat, Gust = "Vainilla" ) Cerca un registre 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

  1. Obrir una aplicació en blanc.

  2. Per afegir una pantalla nova, seleccioneu l'opció Nova pantalla.

  3. A la pestanya Insereix, seleccioneu Galeria i, a continuació, seleccioneu Vertical.

  4. A la pestanya Propietats de la subfinestra de la dreta, obriu Font de dades i, a continuació, seleccioneu Comptes.

  5. (Opcional) A la llista Disposició, seleccioneu diverses opcions.

  6. A la pestanya Insereix, seleccioneu Entrada i, a continuació, seleccioneu Quadre combinat. Repetiu el pas per afegir dos controls de quadre combinat més.

  7. 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.

    Configuració dels valors del quadre combinat.

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

    Comptes font de dades.

Experiència de cerca de l'usuari

Els exemples següents utilitzen la font de dadesIceCream:

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 en una llista, anomenada Clients, que conté aquestes dades:

Cerca de clients.

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.

Cerqueu mitjançant l'entrada de cerca.

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:

La cerca amb comença per.

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(Clients, StartsWith(Nom, 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. Filtra amb començament.
Filter(Clients, StartsWith, SearchInput.Text in 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. Filtra amb entrada de cerca.
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. Cercar clients.

Podeu expandir la cerca per incloure la columna Empresa i la columna Nom:

Fórmula Descripció Resultat
Filter(Clients, StartsWith(Nom, SearchInput.Text) || StartsWith(Empresa, 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. Filtreu els clients per començar.
Filter(Clients, SearchInput.Text in Nom || SearchInput.Text in 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. Filtreu l'entrada de cerca dels clients.
Cercar(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.  Cerqueu clients amb entrada de cerca.