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