Utilizando SharePoint List Lookup column no Formulário Powerapps
Visão Geral
Para essa app tenho duas listas do SharePoint Online como fonte de dados. A estrutura do relacionamento das listas esta demostrado abaixo.
Uma lista Person com o campo ID padrão, e os FirstName e LastName campo tipo texto.
Na lista PersonalInformation tenho uma coluna do tipo Lookup que faz referencia à lista Person a coluna padrão ID*,* o objetivo é toda adição de registro pela aplicação o campo que configura este valor esteja preenchido com o valor criado na primeira tela do cadastro.
A aplicação possui quatro telas
- User Lista Screen: galeria para listar os usuários e botão de adicionar novos;
- Add Person Screen: formulário de adição na lista Person;
- Add Personal Information Screen: formulário de adição na lista PersonalInformation;
- User Details Screen: formulário de exibição das informações adicionadas;
Telas da Apps
A tela da lista de usuários possui uma galeria galUserList e o sinal de adição que inicia o formulário de adição de pessoas.
Na tela de adição de pessoas temos os campos estão mapeados as duas colunas da lista.
E a tela de adição das informações pessoal as três colunas da lista e o dropdown PersonID que é a coluna lookup para a lista Person
**Coluna Lookup ID **
No primeiro cenário utilizamos a coluna ID da lista Person como referencia para a lista PersonalInformation.
A função do botão adicionar navega para a tela de adição de pessoas e inicia o formulário frmAddPerson.
Navigate([@'Add Person Screen']);NewForm(frmAddPerson)
Na tela de adição de pessoas todos os campos estão na configuração padrão do formulário e o botão prosseguir com a função de navegar para a próxima tela e iniciar o formulário de criação das informações pessoais.
SubmitForm(frmAddPerson);Navigate([@'Add Person Screen']);NewForm(frmAddPersonalInformation)
O campo PersonID quando adicionado no formulário é criado na forma de escolha, com todos os valores do campo ID da lista Person.
Para alterar o comportamento, desbloqueie o datacard do formulário.
Para desabilitar a edição do campo, acesse a propriedade DisplayMode e altere o valor.
View
A campo tipo escolha espera a adição de um registro no formato id e value. Para popular este campo precisamos do id e valor do id criado no formulário anterior frmAddPerson, estes valores podem ser acessados utilizando a função LastSubmit, e alterando a propriedade *DefaultSelectedItems. *
{
Id: frmAddPerson.LastSubmit.ID,
Value: frmAddPerson.LastSubmit.ID
}
Para salvar a adição na lista basta realizar a submissão do formulário.
SubmitForm(frmAddPersonalInformation);Navigate([@'User List Screen'])
Verificando na lista é possivel acessar o registro clicando sobre o valor PersonID.
![]() |
![]() |
**Criando Coluna Identificação Personalizada **
É possível criar uma coluno na lista Person que serva de identificador para os usuários criados, altere a lista e adicione duas colunas, uma chamada Departament e outra chamada PersonID. O objetivo é usar uma valor calculado utilizando a coluna ID fornecida pela lista, com o formato departamento-ano-id
Foi adiciona uma nova coluna na lista Person do tipo escolha.
Adicionado os nomes que serão exibidos aos usuários.
No formulário frmAddPerson clique em editar.
E adicione a nova coluna Departament no formulário.
Em seguida modifique a função do botão de salvar da tela, foi criado com a função Set duas variáveis, uma chamada varDepartament para armazenar o valor selecionado, a segunda varPersonID onde será calculado o novo identificado do usuário, e em seguida com a função Patch será escrito no registro criado o valor da variável varPersonID na lista Person. O processo de Patch é necessário porque o valor da coluna ID só é definido depois da criação do registro na lista.
Set(
varDepartament,
DataCardValue3.Selected.Value
);
SubmitForm(frmAddPerson);
Navigate([@'Add Personal Information']);
NewForm(frmAddPersonalInformation);
Set(
varPersonID,
varDepartament & "-" & Year(Now()) & "-" & frmAddPerson.LastSubmit.ID
);
Patch(
Person,
frmAddPerson.LastSubmit,
{PersonID: varPersonID}
)
Na lista PersonalInformation altere a coluna lookup para a nova identificação criada. Acesse *List settings. *
Na configuração da coluna PersonID
Altere a coluna de pesquisa para a nova coluna criada.
Em seguida altere o valor do id na tela, o id da operação será o mesmo de antes que é o id do registro criado pelo submit do último formulário, mas o valor agora será diferente, o valor deve ser o da variável criada varPersonID
{
Id: frmAddPerson.LastSubmit.ID,
Value: varPersonID
}
O processo deve criar o novo id e salvar nas listas.
![]() |
![]() |
Artigos Relacionados
Power Platform: Guia de Sobrevivencia
Referências
Introducing support for lookups and a new sample app
Edit form and Display form controls in Power Apps