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 os usuários selecionam esse botão, 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, sua coluna UserSelected teria um valor inicial de false. Você poderia então adicionar um controle de botão à Galeria em que OnSelectcorrigiria a coluna para true.
Patch(collectDigitalAssets, ThisItem, {UserSelected: true})
Essa fórmula permite que você rastreie linhas que o usuário seleciona na coleção collectDigitalAssets, sem modificar as colunas na 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. Essa função é usada quando você deseja criar uma coleção no Power Apps que tenha várias colunas adicionadas para a funcionalidade do aplicativo. Como essas colunas são adicionadas à coleção somente para a funcionalidade do aplicativo e não são enviadas à fonte de dados, a função DropColumns é necessária para remover as colunas adicionadas antes do envio à fonte de dados.
Por exemplo, você cria uma coleção chamada 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 é usando a função Collect. Se as colunas corresponderem à fonte de dados, a função Collect gravará todas as linhas na coleção em sua fonte de dados. 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. Na verdade, se houver uma tentativa de corrigir seus dados com essas colunas, você receberá um erro. Com DropColumns, você pode remover essas colunas de sua coleção e 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 essa 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 Date, talvez seja mais fácil trabalhar no Power Apps renomeando essa coluna como ProjectDate. Você pode fazer isso atualizando a fórmula, da seguinte maneira:
Collect(collectProjectData, RenameColumns(ProjectDataSource, Date, ProjectDate))
Você tem as mesmas linhas de dados. Agora a coluna Date foi renomeada como ProjectDate na sua coleção. Essa função proporciona flexibilidade para nomear as colunas de forma menos confusa para trabalhar dentro do aplicativo.
ShowColumns
ShowColumns é usada para exibir uma ou mais colunas da fonte de dados. Use-a com controles onde você desejar o retorno de apenas uma única coluna. Um exemplo comum é com o controle Lista suspensa.
Com o controle Lista suspensa, é comum usar uma fonte de dados, como uma tabela do Microsoft Dataverse, para fornecer as opções. Depois que você define a propriedade items para uma fonte de dados, o Power Apps escolhe a coluna (se houver várias) para exibição. Você pode usar a função ShowColumns a fim de direcionar esse controle para mostrar a coluna que deseja exibir.
Se desejar, use 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 ao controle Lista Suspensa.
ShowColumns(Customers, CustomerName, ID)
A lista suspensa exibirá o valor da coluna CustomerName somente no controle Lista Suspensa, mas, com esta fórmula, agora você tem acesso ao valor da coluna de ID. É possível adicionar um controle Rótulo à tela e definir o valor de Text como se segue. Se a lista suspensa não tiver o nome Dropdown1, edite a fórmula adequadamente.
Dropdown1.Selected.ID
A fórmula retornará o valor da coluna de ID da linha selecionada no controle Lista Suspensa.