Funções EndsWith e StartsWith
Aplica-se a: Aplicativos de tela Fluxos da área de trabalho Colunas de fórmula do Dataverse Aplicativos baseados em modelo Power Pages Power Platform CLI
Testa se uma cadeia de texto começa ou termina outra cadeia de texto.
Descrição
A função EndsWith testa se uma cadeia de texto começa com outra.
A função StartsWith testa se uma cadeia de texto começa com outra cadeia de texto.
Para ambas as funções, os testes não diferenciam maiúsculas de minúsculas se a fonte de dados de back-end oferecer suporte a ela por padrão. Por exemplo, coleções, Dataverse, SharePoint e SQL Server oferecem suporte à diferenciação de maiúsculas e minúsculas, por padrão. A Oracle não. O valor retornado é um booliano true ou false.
Use EndsWith e StartsWith com a função Filter para pesquisar os dados no aplicativo. Use também o operador in ou a função Search para pesquisar em qualquer lugar das cadeias de texto, não apenas no início ou no final. Sua escolha de funções dependerá das necessidades de seu aplicativo e de qual função pode ser delegada para sua fonte de dados específica. Se uma dessas funções não puder ser delegada, um aviso sobre a delegação será exibido no momento da criação para avisá-lo dessa limitação.
Sintaxe
EndsWith( Text, EndText )
- Text – Obrigatório. O texto a ser testado.
- EndText – obrigatório. O texto a ser pesquisado no início de Text. Se EndText for uma cadeia de caracteres vazia, EndsWith retornará true.
StartsWith( Texto, TextoInicial )
- Text – Obrigatório. O texto a ser testado.
- StartText – obrigatório. O texto a ser pesquisado no início do Texto. Se TextoInicial for uma cadeia de caracteres vazia, StartsWith retornará true.
Exemplos
Fórmula | Descrição | Resultado |
---|---|---|
EndsWith( "Hello World", "world" ) | Testa se "Hello World" termina com "world". O teste diferencia maiúsculas de minúsculas. | true |
EndsWith( "Good bye", "good" ) | Testa se "Good bye" termina com "good". O argumento EndText ("good") aparece no texto, mas não no final. | false |
EndsWith( "Always say hello", "hello" ) | Testa se "Always say hello" termina com "hello". | true |
EndsWith( "Bye bye", "" ) | Testa se "Bye bye" termina com uma cadeia de texto vazia (Len retorna 0). Facilitando seu uso em expressões Filter, EndsWith é definido para retornar true nesse caso. | true |
Fórmula | Descrição | Resultado |
---|---|---|
StartsWith( "Olá Mundo", "olá" ) | Testa se "Olá Mundo" começa com "olá". O teste diferencia maiúsculas de minúsculas. | true |
StartsWith( "Até logo", "logo" ) | Testa se "Até logo" começa com "logo". | false |
StartsWith( "Sempre diga olá", "olá" ) | Testa se "Sempre diga olá" começa com "olá". Embora "olá" apareça no texto, ele não aparece no início. | false |
StartsWith( "Bye bye", "" ) | Testa se "Bye bye" começa com uma cadeia de texto vazia (Len retorna 0). Facilitando seu uso em expressões Filter, StartsWith é definido para retornar true nesse caso. | true |
Experiência do usuário de pesquisa
Em muitos aplicativos, você pode digitar um ou mais caracteres em uma caixa de pesquisa para filtrar uma lista de registros de um grande conjunto de dados. Conforme você digita, a lista mostra apenas os registros que correspondem aos critérios da pesquisa.
Os exemplos no restante deste tópico mostram os resultados da pesquisa em uma lista Clientes que contém esses dados:
Para criar essa fonte de dados como uma coleção, crie um controle Button e defina sua propriedade OnSelect como 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" }) )
Assim como neste exemplo, você pode mostrar uma lista de registros em um controle Gallery na parte inferior da tela. Próximo à parte superior da tela, adicione um controle Text input, chamado SearchInput, para que os usuários possam especificar quais registros os interessam.
Conforme o usuário digita os caracteres em SearchInput, os resultados da galeria são filtrados automaticamente. Nesse caso, a galeria está configurada para mostrar os registros dos quais o nome do cliente (não o nome da empresa) começa com a sequência de caracteres em SearchInput. Se o usuário digita co na caixa de pesquisa, a galeria mostra estes resultados:
Para filtrar com base na coluna Nome, defina a propriedade Items do controle Gallery como uma destas fórmulas:
Fórmula | Descrição | Resultado |
---|---|---|
Filter( Customers, StartsWith( Name, SearchInput.Text ) ) | Filtra a fonte de dados Customers em busca de registros nos quais a cadeia de caracteres de pesquisa apareça no início da coluna Name. O teste diferencia maiúsculas de minúsculas. Se o usuário digitar co na caixa de pesquisa, a galeria mostrará Colleen Jones e Cole Miller. A Galeria não mostra Mike Collins, porque a coluna Name desse registro não começa com a cadeia de caracteres de pesquisa. | |
Filter( Customers, SearchInput.Text in Name ) | Filtra a fonte de dados Customers em busca de registros nos quais a cadeia de caracteres de pesquisa apareça em qualquer lugar da coluna Name. O teste diferencia maiúsculas de minúsculas. Se o usuário digitar co na caixa de pesquisa, a galeria mostrará Colleen Jones,Cole Miller e Mike Collins, pois a cadeia de caracteres de pesquisa aparecerá em algum lugar da coluna Name de todos os registros. | |
Search( Customers, SearchInput.Text, "Name" ) | Assim como o operador in, a função Search procura uma correspondência em qualquer lugar da coluna Name de cada registro. Observe que você deve colocar o nome da coluna entre aspas duplas. |
Você pode expandir sua pesquisa para incluir a coluna Company, bem como a coluna Name:
Fórmula | Descrição | Resultado |
---|---|---|
Filter( Customers, StartsWith( Name, SearchInput.Text ) || StartsWith( Company, SearchInput.Text ) ) | Filtra a fonte de dados Customers em busca de registros nos quais a coluna Name ou a coluna Company comece com a cadeia de caracteres de pesquisa (por exemplo, co). O || operador será true se a função StartsWith for true. | |
Filter( Customers, SearchInput.Text in Name || SearchInput.Text in Company ) | Filtra a fonte de dados Customers em busca de registros nos quais a coluna Name ou a coluna Company contenham a cadeia de caracteres de pesquisa (por exemplo, co em qualquer lugar). | |
Search( Customers, SearchInput.Text, "Name", "Company" ) | Assim como o operador in, a função Search pesquisa na fonte de dados Customers por registros nos quais a coluna Name ou a coluna Company contém a cadeia de caracteres de pesquisa (por exemplo, co) em qualquer lugar. A função Search é mais fácil de ler e gravar do que Filter se quiser especificar várias colunas e vários operadores in. Observe que você deve colocar os nomes de coluna entre aspas duplas. |