Nota
O acceso a esta páxina require autorización. Pode tentar iniciar sesión ou modificar os directorios.
O acceso a esta páxina require autorización. Pode tentar modificar os directorios.
Aplícase a: Aplicacións
de lenzo Copilot Studio
Fluxos
de escritorio Aplicacións
baseadas en modelos Power Platform CLI
Dataverse funcións
Power Pages
Busca un ou máis rexistros dunha táboa.
Mira este vídeo para aprender a usar Filter, Searche LookUp as funcións:
Nota
Os comandos de PAC CLI pac power-fx non soportan a Search función.
Descripción
A Filter función atopa rexistros nunha táboa que satisfagan unha fórmula. Utilízase Filter para atopar un conxunto de rexistros que coincidan cun ou máis criterios e descartar aqueles rexistros que non o fixeron.
A LookUp función atopa o primeiro rexistro nunha táboa que satisfai unha fórmula. Utilízase LookUp para atopar un único rexistro que coincida cun ou máis criterios.
Para os dous, a fórmula avalíase para cada rexistro da táboa. Os rexistros que fornecen true inclúense no resultado. Ademais dos operadores de fórmula normais, pode usar os operadores en e exactin para coincidencias de cadeas secundarias.
Os campos do rexistro que se están a procesar actualmente están dispoñibles na fórmula. Use o operador ThisRecord ou simplemente faga referencia aos campos por nome como faría con calquera outro valor. O operador As tamén se pode usar para nomear o rexistro que se está a procesar, o que pode axudar a que a fórmula sexa máis fácil de comprender e facer que os rexistros anidados sexan accesibles. Para obter máis información, consulte os seguintes exemplos e traballar co ámbito do rexistro.
A Search función atopa rexistros nunha táboa que conteñen unha cadea nunha das súas columnas. A cadea pode aparecer en calquera lugar da columna; por exemplo, buscar "rob" ou "bert" atoparía unha coincidencia nunha columna que conteña "Robert". A busca diferenza entre maiúsculas e minúsculas. A diferenza Filter de e LookUp, a Search función usa unha única cadea para coincidir en lugar dunha fórmula.
Filter e Search devolve unha táboa que conteña as mesmas columnas que a táboa orixinal e os rexistros que coinciden cos criterios. LookUp Devolve só o primeiro rexistro atopado, despois de aplicar unha fórmula para reducir o rexistro a un único valor. Se non se atopan rexistros, Filter devolve Search unha táboa baleira e LookUp devolve en branco.
As táboas son un valor en Power Apps, igual que unha cadea ou un número. Pódense pasar a e devolver de funcións. Filter Search, e LookUp non modificar unha táboa. En lugar diso, toman unha táboa como argumento e devolven unha táboa, un rexistro ou un único valor. Para obter máis detalles, consulte Traballar con táboas.
Delegación
Se é posible, Power Apps delegará as operacións de filtraxe e ordenación á orixe de datos e páxina a través dos resultados a pedido. Por exemplo, cando abre unha aplicación que mostra un control de Galeríacheo de datos, só aparecerá inicialmente o primeiro conxunto de rexistros no dispositivo. Cando o usuario se desprace, extraeranse máis datos da orixe de datos. Deste xeito acelérase a hora de inicio da aplicación e pódese acceder a conxuntos de datos moi grandes.
Non obstante, non sempre se pode delegar. As orixes de datos varían segundo as funcións e operadores que admiten coa delegación. Se non é posible facer unha delegación completa dunha fórmula, o ambiente de creación marcará cun aviso a parte que non se pode delegar. Sempre que sexa posible, pense en cambiar a fórmula para evitar as funcións e operadores que non se poden delegar. A lista de delegación enumera as orixes de datos e operacións que se poden delegar.
Se a delegación non é posible, Power Apps só extraerá un pequeno conxunto de rexistros para traballar a nivel local. Filter As funcións de ordenación funcionarán cun conxunto reducido de rexistros. Pode que os elementos dispoñibles na Galería non sexan o historial completo, o que podería confundir os usuarios.
Consulte a visión xeral da delegación para obter máis información.
Sintaxe
Filter(Táboa *, Formula1 [, *Formula2*, ... ] )
- Táboa - Obrigatorio. Táboa para buscar.
- Fórmulas - Obrigatorio. A fórmula pola que se avalía cada rexistro da táboa. A función devolve todos os rexistros que fornecen true. Pode facer referencia ás columnas dentro da táboa. Se fornece máis dunha fórmula, os resultados de todas as fórmulas combínanse coa función And.
Search(Táboa*, SearchString, Column1 [, *Column2*, ... ] )
- Táboa - Obrigatorio. Táboa para buscar.
- SearchString : é necesario. Cadea que buscar. Se aparece en branco ou unha cadea baleira, devolveranse todos os rexistros.
- Columnas - Obrigatorio. Os nomes das columnas dentro da Táboa para buscar. Se se atopa SearchString dentro dos datos dalgunha destas columnas como unha coincidencia parcial, devolverase o rexistro completo.
Nota
En Power Apps antes da versión 3.24042, os nomes das columnas para a función especificábanse Search cunha cadea de texto usando comiñas dobres e, se se conectaban a unha fonte de datos, tamén tiñan que ser nomes lóxicos. Por exemplo, usouse o nome "cr43e_name" lóxico con comiñas dobres en lugar do nome de visualización Nome sen comiñas. Para fontes de datos de SharePoint e Excel que conteñen nomes de columnas con espazos, cada espazo especificábase con "_x0020_", por exemplo "Column Name" como "Column_x0020_Name". Despois desta versión, todas as aplicacións actualizáronse automaticamente á nova sintaxe descrita neste artigo.
LookUp(Táboa *, Fórmula [, *ReduciónFórmula* ] )
- Táboa - Obrigatorio. Táboa para buscar. Na interface de usuario, a sintaxe móstrase como orixe enriba da caixa de funcións.
- Fórmula - Obrigatorio. A fórmula pola que se avalía cada rexistro da táboa. A función devolve o primeiro rexistro que fornece true. Pode facer referencia ás columnas dentro da táboa. Na interface de usuario, a sintaxe móstrase como condición enriba da caixa de funcións.
- ReductionFormula - Opcional. Esta fórmula avalíase sobre o rexistro que se atopou e logo reduce o rexistro a un único valor. Pode facer referencia ás columnas dentro da táboa. Se non emprega este parámetro, a función devolve o rexistro completo da táboa. Na interface de usuario, a sintaxe móstrase como resultado enriba da caixa de funcións.
Exemplos
Os exemplos seguintes usan a orixe de datosXeado:
| Fórmula | Descripción | Resultado |
|---|---|---|
Filter(IceCream, OnOrder > 0) |
Devolve rexistros onde OnOrder é maior que cero. |
|
Filter(IceCream, Quantity + OnOrder > 225) |
Devolve rexistros onde a suma das columnas Cantidade e OnOrder é maior que 225. |
|
Filter(IceCream, "chocolate" in Lower(Flavor )) |
Devolve rexistra onde a palabra "chocolate" aparece no nome do Flavor , independentemente das letras maiúsculas ou minúsculas. |
|
Filter(IceCream, Quantity < 10 && OnOrder < 20) |
Devolve rexistros onde Cantidade é inferior a 10 e OnOrder é inferior a 20. Ningún rexistro coincide con estes criterios, polo que se devolve unha táboa baleira. |
|
Search(IceCream, "choc", Flavor) |
Devolve rexistros onde a cadea "choc" aparece no nome Flavor , independentemente das letras maiúsculas ou minúsculas. |
|
Search(IceCream, "", Flavor) |
Debido a que o termo de busca está baleiro, devólvense todos os rexistros. |
|
LookUp(IceCream, Flavor = "Chocolate", Quantity) |
Busca un rexistro con Sabor igual a "Chocolate", do que hai un. No primeiro rexistro atopado, devolve a Cantidade dese rexistro. | 100 |
LookUp(IceCream, Quantity > 150, Quantity + OnOrder) |
Buscas un disco cunha Cantidade maior que 150, dos que hai múltiples. Para o primeiro rexistro que se atopa, que é "Vanilla" Flavor, devolve a suma das columnas Quantity e OnOrder. | 250 |
LookUp(IceCream, Flavor = "Pistachio", OnOrder) |
Busca un rexistro con Sabor igual a "Pistachio", dos cales non hai ningún. Porque non se atopa ningún, Buscar devolve en branco. | en branco |
LookUp(IceCream, Flavor = "Vanilla") |
Busca un rexistro con Sabor igual a "Vanilla", do que hai un. Como non se proporcionou ningunha fórmula de redución, devólvese o rexistro completo. | { Sabor: "Vanilla", Cantidade: 200, Pedido: 75 } |
Filtraxe con columnas de elección
O seguinte exemplo usa a táboa Conta en Microsoft Dataverse como orixe de datos. Este exemplo móstrase como listar Filter as contas baseándose nos valores de control da caixa combinada seleccionados:
Paso a paso
Abra unha aplicación en branco.
Engada unha nova pantalla seleccionando a opción Nova pantalla.
No separador Inserir, seleccione Galería e, a seguir, seleccione Vertical.
No separador Propiedades do panel da dereita, abra orixe de datos e logo seleccione Contas.
(Opcional) Na lista Deseño, seleccione diferentes opcións.
No separador Inserir, seleccione Entrada e, a seguir, seleccione Caixa de combinación. Repita o paso para engadir outros dous controis da caixa de combinación.
Para cada control de caixa de combinación, no separador Propiedades do panel da dereita, abra orixe de datos e logo seleccione Contas. Seleccione Editar preto da opción Campos e seleccione os valores Texto primario e Campo de busca. O Texto primario debería ser a columna de opcións que desexe engadir ao cadro combinado. Repita o paso para outros dous controis da caixa de combinación.
Agora seleccione o control Galería e configure a propiedade Elementos da seguinte fórmula:
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'))
Search Experiencia de usuario
Os exemplos seguintes usan a orixe de datosXeado:
En moitas aplicacións, pode escribir un ou varios caracteres nunha caixa de busca para filtrar unha lista de rexistros nun gran conxunto de datos. Ao escribir, a lista só mostra os rexistros que coinciden cos criterios de busca.
Os exemplos do resto deste artigo mostran os resultados da busca nunha lista, denominada Clientes, que conteñen estes datos:
Para crear esta orixe de datos como unha colección, cree un control de Botón e configure a súa propiedade OnSelect nesta fórmula:
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" }) )
Como neste exemplo, pode mostrar unha lista de rexistros nun control de galería na parte inferior dunha pantalla. Cerca da parte superior da pantalla, pode engadir un control de Entrada de texto, nomeado SearchInput, para que os usuarios poidan especificar que rexistros lles interesan.
A medida que o usuario escribe caracteres en SearchInput, os resultados da galería fíltranse automaticamente. Neste caso, a galería está configurada para mostrar rexistros para os que o nome do cliente (non o nome da empresa) comeza coa secuencia de caracteres en SearchInput. Se o usuario escribe co na caixa de busca, a galería amosa estes resultados:
Para filtrar pola columna Name, estableza a propiedade Elementos do control de galería nunha destas fórmulas:
| Fórmula | Descripción | Resultado |
|---|---|---|
| Filter(Clientes, ComezaPor(Nome, SearchInput.Text) ) | Filtra a orixe de datos Customers polos rexistros nos que aparece a cadea de busca ao comezo da columna Name. A proba non diferenza entre maiúsculas e minúsculas. Se o usuario escribe co na caixa de busca, a galería mostra Colleen Jones e Cole Miller. A galería non mostra Mike Collins porque a columna Name para ese rexistro non comeza coa cadea de busca. |
|
| Filter(Clientes, SearchInput.Text no nome) | Filtra a orixe de datos Customers polos rexistros nos que aparece a cadea de busca en calquera lugar da columna Name. A proba non diferenza entre maiúsculas e minúsculas. Se o usuario escribe co na caixa de busca, a galería mostra Colleen JonesCole Miller, e Mike Collins porque a cadea de busca aparece nalgún lugar da columna Name de todos eses rexistros. |
|
| Search(Clientes, SearchInput.Text, Nome) | Do mesmo xeito que usar o operador in , a Search función busca unha coincidencia en calquera lugar dentro da columna Nome de cada rexistro. Debe incluír o nome da columna entre comiñas dobres. |
|
Pode ampliar a súa busca para incluír a columna Compañía e a columna Nome:
| Fórmula | Descripción | Resultado |
|---|---|---|
Filter(Customers, StartsWith(Name, SearchInput.Text) || StartsWith(Company, SearchInput.Text) ) |
Filtra a orixe de datos Customers polos rexistros nos cales a columnaName ou a columna Company comeza coa cadea de busca (por exemplo, co). O || operador é true se a función StartsWith é true. |
|
Filter(Customers, SearchInput.Text in Name || SearchInput. Text in Company) |
Filtra a orixe de datos Customers polos rexistros nos cales a columnaName ou a columna Company contén a cadea de busca (por exemplo, co) en calquera parte. |
|
Search(Customers, SearchInput.Text, Name, Company) |
De xeito similar ao uso do operador in , a Search función busca na fonte de datos Clientes rexistros nos que a columna Nome ou a columna Empresa contén a cadea de busca (por exemplo, co) en calquera lugar dentro dela. A Search función é máis fácil de ler e escribir que Filter se se quere especificar varias columnas e múltiples operadores in . |
|