Partilhar via


Funções EndsWith e StartsWith

Aplica-se a: Aplicações de tela Fluxos de ambiente de trabalho Colunas de fórmula do Dataverse Aplicações condicionadas por modelo Power Pages Power Platform CLI

Testa se uma cadeia de texto inicia ou termina outra cadeia de texto.

Descrição

A função EndsWith testa se uma cadeia de texto termina com outra.

A função StartsWith testa se uma cadeia de texto começa com outra.

Para ambas as funções, os testes não diferenciam maiúsculas de minúsculas se a fonte de dados back-end oferecer suporte por predefinição. Por exemplo, coleções, Dataverse, SharePoint, e SQL Server suportam a insensibilidade a maiúsculas e minúsculas por predefinição. A Oracle não. O valor de retorno de ambos é um Booleano true ou false.

Utilize EndsWith e StartsWith com a função Filter para procurar os dados na sua aplicação. Também pode utilizar o operador in ou a função Search para procurar em qualquer lugar nas cadeias de texto, não só no início ou no fim. A sua escolha de funções irá depender das necessidades da sua aplicação e que funções podem ser delegadas para a origem de dados específica. Se uma destas funções não puder ser delegada, será apresentado um aviso de delegação no momento de criação para o avisar sobre esta limitação.

Sintaxe

EndsWith( Texto, EndText )

  • Text – Obrigatório. O texto a testar.
  • EndText – Obrigatório. O texto a pesquisar no fim do Texto. Se EndText for uma cadeia vazia, EndsWith devolve true.

StartsWith( Texto, StartText )

  • Text – Obrigatório. O texto a testar.
  • StartText – Obrigatório. O texto a pesquisar no início do Texto. Se StartText for uma cadeia vazia, StartsWith devolve true.

Exemplos

Fórmula Descrição Resultado
EndsWith( "Hello World", "world" ) Testa se "Hello World" termina com "world". O teste é sensível a maiúsculas e minúsculas. true
EndsWith( "Até breve", "até" ) Testa se "Até breve" termina com "até". O argumento EndText ("até") aparece no texto, mas não no final. false
EndsWith( "Dizer sempre olá", "olá" ) Testa se "Dizer sempre olá" termina com "olá". true
EndsWith( "Xau xau", "" ) Testa se "Xau xau" termina com uma cadeia de texto vazia (Len devolve 0). Facilitando o seu uso em expressões de Filter, EndsWith está definido para devolver true neste caso. true
Fórmula Descrição Resultado
StartsWith( "Hello World", "hello" ) Testa se "Hello World" começa com "hello". O teste é sensível a maiúsculas e minúsculas. true
StartsWith( "Até breve", "olá" ) Testa se "Até breve" começa com "olá". false
StartsWith( "Dizer sempre olá", "olá" ) Testa se "Dizer sempre olá" começa com "olá". Embora "olá" apareça no texto, não aparece no início. false
StartsWith( "Xau xau", "" ) Testa se "Xau xau" começa com uma cadeia de texto vazia (Len devolve 0). Facilitando o seu uso em expressões de Filter, StartsWith está definido para devolver true neste caso. true

Experiência de utilizador de pesquisa

Em muitas aplicações, pode escrever um ou mais carateres numa caixa de pesquisa para filtrar uma lista de registos num conjunto de dados grande. À medida que escreve, a lista mostra apenas esses registos correspondentes aos critérios da pesquisa.

Os exemplos no resto deste tópico mostram os resultados da pesquisa de uma lista de Clientes que contém estes dados:

Exemplo da lista de Clientes.

Para criar esta origem de dados como uma coleção, crie um controlo de Button e defina a respetiva propriedade OnSelect com esta 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" }) )

Tal como neste exemplo, pode apresentar uma lista de registos num controlo de Gallery na parte inferior de um ecrã. Junto à parte superior do ecrã, pode adicionar um controlo de Text input, denominado SearchInput, para que os utilizadores possam especificar os registos que lhe interessam.

Galeria de clientes.

À medida que o utilizador escreve carateres no SearchInput, os resultados na galeria são filtrados automaticamente. Neste caso, a galeria é configurada para mostrar registos nos quais o nome do cliente (não o nome da empresa) começa com a sequência de carateres no SearchInput. Se o utilizador escrever co na caixa de pesquisa, a galeria mostra estes resultados:

Galeria de clientes com pesquisa.

Para filtrar com base na coluna Nome, defina a propriedade Items do controlo da galeria para uma destas fórmulas:

Fórmula Descrição Resultado
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) Filtra as origens de dados dos Clientes nos registos em que a cadeia de pesquisa aparece no início da coluna Nome. O teste é sensível a maiúsculas e minúsculas. Se o utilizador escrever co na caixa de pesquisa, a galeria mostra Carlos João e Cláudia Mendes. A galeria não mostra Miguel Costa porque a coluna Nome desse registo não começa com a cadeia de pesquisa. Exemplo de StartWith.
Filter( Customers, SearchInput.Text in Name ) Filtra as origens de dados dos Clientes nos registos em que a cadeia de pesquisa aparece em qualquer parte da coluna Nome. O teste é sensível a maiúsculas e minúsculas. Se o utilizador escrever co na caixa de pesquisa, a galeria mostra Colleen Jones,Cole Miller, e Mike Collins porque a cadeia de pesquisa aparece algures na coluna Nome de todos esses registos. Exemplo de PesquisaInput.Text em Nome.
Search( Clientes, SearchInput.Text, "Nome" ) Semelhante à utilização do operador in, a função Search procura uma correspondência em qualquer parte da coluna Name de cada registo. Tenha em atenção que tem de incluir o nome da coluna entre aspas. Exemplo de PesquisaInput.Text com Nome.

Pode expandir a pesquisa para incluir a coluna Empresa, bem como a coluna Nome:

Fórmula Descrição Resultado
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) Filtra as origens de dados de Clientes nos registos em que a coluna Nome ou a coluna Empresa começa com a cadeia de pesquisa (por exemplo, co). O || operador é true se a função StartsWith for true. Filtrar com StartsWith.
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) Filtra as origens de dados de Clientes nos registos em que a coluna Nome ou a coluna Empresa contém a cadeia de pesquisa (por exemplo, co) em qualquer parte na mesma. Filtrar com texto de pesquisa no nome.
Search( Clientes, SearchInput.Text, "Nome", "Empresa") Semelhante à utilização do operador in, a função Search procura a origem de dados Customers para registos em que a coluna Name ou a coluna Company contém a cadeia de pesquisa (por exemplo, co) em qualquer parte na mesma. A função Search é mais fácil de ler e escrever do que Filter se quiser especificar várias colunas e vários operadores in. Tenha em atenção que tem de incluir os nomes das colunas entre aspas. Filtrar com texto de pesquisa no nome, empresa.