Modificar as colunas da fonte de dados
Ao trabalhar com linhas de dados no Power Apps, funções como Filtro e Pesquisa ajudam a refinar as próprias linhas. No entanto, há cenários em que é necessário manipular as colunas dentro dessas linhas sem alterar a fonte de dados original.
Imagine criar um aplicativo de Shopping Cart em que você deseja acompanhar os itens selecionados. Nesses casos, ter uma coluna temporária apenas no Power Apps, sem afetar a fonte de dados original, torna-se crucial.
Felizmente, o Power Apps oferece um conjunto de funções personalizadas para essa finalidade. Essas funções permitem modificar colunas no ambiente do aplicativo, afetando a forma como os dados são tratados ou apresentados sem fazer alterações na fonte de dados subjacente. Isso garante que suas alterações, como o rastreamento de itens selecionados em um cenário de Shopping Cart, fiquem confinadas ao aplicativo e não afetem a fonte de dados real. Essas funções são:
AddColumns
DropColumns
RenameColumns
ShowColumns
AddColumns
A função AddColumns adiciona uma coluna a uma tabela e uma fórmula define os valores nessa coluna. As colunas existentes permanecem inalteradas.
No exemplo anterior de um aplicativo de Shopping Cart, você usaria a função AddColumns para adicionar uma coluna para acompanhar se o usuário selecionou a coluna. Isso seria feito definindo a seguinte fórmula para a propriedade OnSelect de um controle Botão.
ClearCollect(collectDigitalAssets, AddColumns(YourDataSource,"UserSelected", false))
Quando esse botão é selecionado, a fórmula cria uma coleção chamada collectDigitalAssets que tem todas as linhas de YourDataSource e adiciona a coluna "UserSelected". O valor da coluna é false para todas as linhas.
No controle Galeria, defina a propriedade items da maneira a seguir.
collectDigitalAssets
No controle Galeria, você tem acesso à coluna UserSelected, e o valor será false. Em seguida, você pode adicionar um botão na Galeria na qual OnSelect aplica o patch à coluna como true.
Patch(collectDigitalAssets, ThisItem, {UserSelected: true})
Na coleção collectDigitalAssets, você acompanha as linhas que o usuário selecionou em seu aplicativo sem modificar as colunas da fonte de dados.
DropColumns
A função DropColumns faz o oposto de AddColumns. A função é usada para remover colunas da tabela do Power Apps. Use a função quando você quiser criar uma coleção dentro do Power Apps que tenha várias colunas para a funcionalidade do aplicativo. Como essas colunas são adicionadas somente na coleção para a funcionalidade do aplicativo e não são enviadas para a fonte de dados, a função DropColumns é necessária para remover a coluna após o envio para a fonte de dados.
Por exemplo, você pode criar uma coleção com o nome collectTimeTracking para usar em um aplicativo de controle de tempo. A coleção tem cinco colunas: Name, HoursWorked, DateWorked, LastScreen e Status. As colunas Name, HoursWorked e DateWorked acompanham os dados a salvar em YourDataSource com base nas horas que um funcionário trabalhou. As colunas LastScreen e Status armazenam dados para fornecer funcionalidade do aplicativo enquanto o usuário está usando o aplicativo.
Quando o usuário terminar, uma maneira de salvar as informações de volta na fonte de dados será usar a função Collect. Se as colunas corresponderem com a fonte de dados, a função Collect gravará todas as linhas em sua coleção. Neste exemplo, Name, HoursWorked e DateWorked são as únicas colunas da fonte de dados. LastScreen e Status não existem na fonte de dados e não precisam ser salvas. Você pode usar DropColumns para enviar apenas as colunas apropriadas para a fonte de dados.
Collect(YourDataSource, DropColumns(collectTimeTracking, "LastScreen","Status"))
Essa função grava o conteúdo da coleção, collectTimeTracking, na fonte de dados YourDataSource depois de descartar as colunas LastScreen e Status. Observe que DropColumns não alterou sua coleção collectTimeTracking. As colunas LastScreen e Status ainda estão disponíveis dentro da coleção.
RenameColumns
Use a função RenameColumns quando for necessário manipular o nome da coluna dentro do seu aplicativo, mas não na sua fonte de dados. Um uso comum é quando a fonte de dados, que você não pode editar, tem dificuldade para fazer referência a um nome de coluna ou quando o nome da coluna usa palavras reservadas, como "Data".
Você pode usar a função ao armazenar dados em uma coleção. A função Collect pode armazenar o conteúdo de sua fonte de dados em uma coleção.
Collect(collectProjectData, ProjectDataSource)
Esta fórmula cria uma coleção denominada collectProjectData que armazena todas as linhas de dados da fonte de dados, ProjectDataSource. Se a fonte de dados tiver uma coluna denominada Data, talvez seja mais fácil trabalhar no Power Apps renomeando essa coluna como ProjectDate. Você pode fazer isso usando a fórmula a seguir, em vez de usar o exemplo anterior.
Collect(collectProjectData, RenameColumns(ProjectDataSource, "Date","ProjectDate"))
Você tem as mesmas linhas. Agora a coluna Date foi renomeada como ProjectDate na sua coleção. Isso dá a flexibilidade para nomear as colunas de forma menos confusa para trabalhar com o aplicativo.
ShowColumns
ShowColumns é usada para exibir uma ou mais colunas da fonte de dados. Use com controles quando você só quiser o retorno de uma única coluna. Um exemplo comum é o controle suspenso.
Com o controle suspenso, é comum usar uma fonte de dados, como uma tabela Microsoft Dataverse, para fornecer as opções. Depois que você definir a propriedade Items como uma fonte de dados, o Power Apps escolherá qual coluna (se houver várias) será exibida. Você pode usar a função ShowColumns para selecionar a coluna a exibir.
Se você quiser usar uma fonte de dados denominada Customers para exibir os nomes de cliente da coluna CustomerName. Você usaria a fórmula a seguir na propriedade Items do controle Lista Suspensa.
ShowColumns(Customers, "CustomerName")
Com esta fórmula, a coluna Lista Suspensa exibe os valores da coluna CustomerName.
ShowColumns também pode retornar mais de uma coluna. O controle Lista Suspensa exibe apenas a primeira coluna, mas você terá acesso a todas as colunas recuperadas. O exemplo a seguir mostra como adicionar a coluna ID no controle Lista Suspensa.
ShowColumns(Customers, "CustomerName", "ID")
A lista suspensa somente exibirá o valor da coluna CustomerName no controle Lista Suspensa, mas, com esta fórmula, agora você tem acesso ao valor da coluna de ID. Adicione um controle Rótulo à tela e defina o valor de Text da seguinte forma. Se a lista suspensa não tiver o nome Dropdown1, edite a fórmula de acordo.
Dropdown1.Selected.ID
A fórmula retorna o valor da coluna de ID do registro referente à linha selecionada no controle Lista Suspensa.