Compartilhar via


Sort e SortByColumns funções

Aplica-se a: Aplicativos de tela Copilot Studio Desktop flui aplicativos baseados em modelo CLI CLI Dataverse funções Power Pages

Classifica uma tabela.

Observação

Os comandos pac CLI pac power-fx não dão suporte à SortByColumns função.

Description

A Sort função classifica uma tabela com base em uma fórmula.

A fórmula é avaliada para cada registro da tabela, e os resultados são usados para classificá-la. A fórmula deve resultar em um número, uma cadeia de caracteres ou um valor booliano; não pode resultar em uma tabela ou registro.

Os campos do registro que está sendo processado no momento estão disponíveis na fórmula. Use o operador ThisRecord ou simplesmente referencie os campos por nome como faria com qualquer outro valor. O operador Astambém pode ser usado para nomear o registro que está sendo processado, o que pode ajudar a tornar sua fórmula mais fácil de entender e tornar os registros aninhados acessíveis. Para obter mais informações, veja os exemplos abaixo e consulte trabalhando com escopo de registros.

Para classificar primeiro por uma coluna e depois por outra, você insira uma Sort fórmula dentro de outra. Por exemplo, você pode usar essa fórmula para classificar uma tabela Contatos primeiro por uma coluna LastName e, em seguida, por uma coluna FirstName : Sort( SortContatos, LastName ), FirstName )

A SortByColumns função também pode ser usada para classificar uma tabela com base em uma ou mais colunas.

A lista de parâmetros para SortByColumns fornece os nomes das colunas a serem classificadas e a direção de classificação por coluna. A classificação é feita na ordem dos parâmetros (classificados primeiro pela primeira coluna, em seguida, a segunda, e assim por diante). Os nomes de coluna são especificados como cadeias de caracteres, que exigem aspas duplas se incluídos diretamente na lista de parâmetros. Por exemplo, SortByColumns( CustomerTable, "LastName" ).

Você pode combinar SortByColumns com um controle suspenso ou caixa de listagem para permitir que os usuários selecionem por qual coluna classificar.

Além de classificar em ordem crescente ou decrescente, SortByColumns pode classificar com base em uma única tabela de colunas de valores. Por exemplo, é possível classificar o registro com base no nome de um dia da semana, fornecendo ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"] como ordem de classificação. Todos os registros que têm segunda-feira" virão primeiro, seguidos por terça-feira, e assim por diante. Os registros encontrados que não aparecem na tabela classificada são colocados no final da lista.

Tabelas são um valor em Power Apps, assim como uma string ou um número. Elas podem ser passadas e retornadas para funções. Sort e SortByColumn não modificam uma tabela; em vez disso, eles tomam uma tabela como um argumento e retornam uma nova tabela que foi classificada. Consulte como trabalhar com tabelas para obter mais detalhes.

Delegação

Quando possível, o Power Apps delegará o filtro e as operações de classificação para a fonte de dados e navegará pelos resultados sob demanda. Por exemplo, quando você iniciar um aplicativo que mostra um controle de Galeria preenchido com dados, somente o primeiro conjunto de registros será trazido para o dispositivo inicialmente. Conforme o usuário rola, dados adicionais são trazidos a partir da fonte de dados. O resultado de um tempo de início mais rápido para o aplicativo e o acesso a conjuntos muito grandes de dados.

No entanto, a delegação pode não ser sempre possível. As fontes de dados variam sobre quais funções e operadores oferecem suporte à delegação. Se a delegação completa de uma de fórmula não for possível, a criação do ambiente indicará a parte que não pode ser delegada com um aviso. Quando possível, considere alterar a fórmula para evitar as funções e os operadores que não podem ser delegados. A lista de delegação detalha quais fontes de dados e operações podem ser delegadas.

Se a delegação não for possível, o Power Apps exibirá somente um pequeno conjunto de registros para trabalhar localmente. As funções de filtragem e de classificação operarão em um conjunto reduzido de registros. O que estiver disponível na Galeria poderá não ser a história completa, o que pode ser confuso para os usuários.

Consulte visão geral de delegação para obter mais informações.

Sintaxe

Sort( Table, Formula [, SortOrder ] )

  • Tabela - Obrigatório. Tabela para classificar.
  • Fórmula - Obrigatório. Essa fórmula é avaliada para cada registro da tabela, e os resultados são usados para classificá-la. É possível referenciar colunas dentro da tabela.
  • SortOrder - Opcional. Especifique SortOrder.Descending para classificar a tabela em ordem decrescente. SortOrder.Ascending é o valor padrão.

SortByColumns( Table, ColumnName1 [, SortOrder1, ColumnName2, SortOrder2, ... ] )

  • Tabela - Obrigatório. Tabela para classificar.

  • ColumnNames - Obrigatório. Os nomes da coluna para se classificar, como cadeias de caracteres.

  • SortOrders - Opcional. SortOrder.Ascending ou SortOrder.Descending. SortOrder.Ascending é o padrão. Se vários ColumnNames forem fornecidos, todos, exceto a última coluna, devem incluir um SortOrder.

    Observação

    Nas fontes de dados do Excel e do SharePoint que contêm nomes de colunas com espaços, especifique cada espaço como "_x0020_". Por exemplo, especifique "Nome da Coluna" como "Nome_x0020_da_x0020_Coluna".

SortByColumns( Table, ColumnName, SortOrderTable )

  • Tabela - Obrigatório. Tabela para classificar.

  • ColumnName - Obrigatório. O nome da coluna para se classificar, como cadeias de caracteres.

  • SortOrderTable - Obrigatório. Tabela de valores de coluna única para se classificar.

    Observação

    Nas fontes de dados do Excel e do SharePoint que contêm nomes de colunas com espaços, especifique cada espaço como "_x0020_". Por exemplo, especifique "Nome da Coluna" como "Nome_x0020_da_x0020_Coluna".

Exemplos

Para os exemplos a seguir, usaremos a fonte de dadosIceCream, que contém os dados nesta tabela:

Exemplo IceCream.

Fórmula Description Resultado
Sort( IceCream, Flavor )

SortByColumns( IceCream, "Flavor" )
Classifica o IceCream pela coluna Flavor. A coluna Flavor contém cadeias de caracteres para que a tabela seja classificada em ordem alfabética. Por padrão, a ordem de classificação é crescente. Classificado alfabeticamente.
Sort( IceCream, Quantity )

SortByColumns( IceCream, "Quantity" )
Classifica o IceCream pela coluna Quantity. A coluna Quantity contém números para que a tabela seja classificada numericamente. Por padrão, a ordem de classificação é crescente. Classificado numericamente.
Sort( IceCream, Quantity, SortOrder.Descending )

SortByColumns( IceCream, "Quantity", SortOrder.Descending )
Classifica o IceCream pela coluna Quantity. A coluna Quantity contém números para que a classificação seja feita numericamente. A ordem de classificação foi especificada como decrescente. Classificado numericamente e em ordem decrescente.
Sort( IceCream, Quantity + OnOrder ) Classifica IceCream pela soma de sua Quantity e colunas OnOrder para cada registro individual. A soma é um número, assim, a tabela será classificada numericamente. Por padrão, a ordem de classificação é crescente. Como estamos classificando por uma fórmula e não por valores brutos de coluna, não há equivalente usando SortByColumns. Classificado numericamente e em ordem crescente.
Sort( SortIceCream, OnOrder ), Quantity )

SortByColumns( IceCream, "OnOrder", SortOrder.Ascending, "Quantity", SortOrder.Ascending )
Classifica IceCream primeiro pela coluna OnOrder e, em seguida, pela coluna Quantity. Observe que "Pistachio" superou "Vanilla" na primeira classificação baseada em OnOrder, e juntos eles se moveram para o local apropriado com base em Quantity. Classificado com Pistachio acima de Vanilla.
SortByColumns( IceCream, "Flavor", [ "Pistache", "Strawberry" ] ) Classifica IceCream pela coluna Flavor com base na tabela de coluna única que contém "Pistachio" e "Strawberry". Os registros que têm o Flavor "Pistachio" aparecerão primeiro no resultado, seguidos pelos registros que contêm "Strawberry". Os valores da coluna Flavor que não tiverem correspondentes, como "Vanilla", aparecerão após os itens combinados. Classificado com Pistachio acima de Strawberry.

Passo a passo

Para executar esses exemplos, crie a fonte de dados IceCream como uma coleção:

  1. Adicione um botão e defina a propriedade OnSelect para esta fórmula:
    ClearCollect( IceCream, { Sabor: "Chocolate", Quantidade: 100, OnOrder: 150 }, { Sabor: "Baunilha", Quantidade: 200, OnOrder: 20 }, { Sabor: "Morango", Quantidade: 300, OnOrder: 0 }, { Sabor: "Chocolate com menta", Quantidade: 60, OnOrder: 100 }, { Sabor: "Pistache", Quantidade: 200, OnOrder: 10 } )
  2. Visualize o aplicativo, selecione o botão e pressione Esc para retornar ao workspace padrão.
  3. Selecione Coleções no menu Arquivo para exibir a coleção que você acabou de criar e pressione Esc para retornar ao workspace padrão.

Sort

  1. Adicione outro botão e defina a propriedade OnSelect para esta fórmula:
    ClearCollect( SortByFlavor, Sort( IceCream, Flavor )

    A fórmula anterior cria uma segunda coleção, denominada SortByFlavor, que contém os mesmos dados de IceCream. No entanto, a nova coleção contém os dados classificados em ordem alfabética pela coluna Flavor, em ordem crescente.

  2. Pressione F5, selecione o novo botão e pressione Esc.

  3. Selecione Coleções no menu Arquivo para exibir as duas coleções e pressione Esc para retornar ao workspace padrão.

  4. Repita as três últimas etapas, mas altere o nome da coleção que você deseja criar e substitua a Sort fórmula por uma fórmula diferente da tabela de exemplos anteriores nesta seção que usa Sort.

SortByColumns

  1. Adicione outro botão e defina a propriedade OnSelect para esta fórmula:
    ClearCollect( SortByQuantity, SortByColumns( IceCream, "Quantity", SortOrder.Ascending, "Flavor", SortOrder.Descending ) )

    A fórmula anterior cria uma terceira coleção, denominada SortByQuantity, que contém os mesmos dados de IceCream. No entanto, a nova coleção contém os dados classificados numericamente pela coluna Quantity em ordem crescente e, em seguida, pela coluna Flavor em ordem decrescente.

  2. Pressione F5, selecione o novo botão e pressione Esc.

  3. Selecione Coleções no menu Arquivo para exibir as três coleções e pressione Esc para retornar ao workspace padrão.

  4. Repita as três últimas etapas, mas altere o nome da coleção que você deseja criar e substitua a SortByColumns fórmula por uma fórmula diferente da tabela de exemplos anteriores nesta seção que usa SortByColumns.