Mapear campos de entrada de um componente
Um componente pode receber valores de entrada para emitir ou processar dados usando propriedades de entrada personalizadas. Neste artigo, irá aprender a trabalhar com tais componentes esperando uma ou mais propriedades de entrada com um esquema específico para a tabela ou registo dado, e como mapear os campos de entrada de componentes para as colunas da origem de dados.
Dica
Para saber quais são as propriedades de entrada e saída personalizadas nos componentes, consulte Propriedades personalizadas nos componentes.
Mapear colunas
Utilize a função RenameColumns() para mudar o nome de uma ou mais colunas de uma tabela para combinar com o esquema de propriedade de entrada para a seleção da coluna de entrada.
Por exemplo, considere um componente que espera uma entrada de tabela com o seguinte formato:
Sabor | UnitPrice | QuantitySold |
---|---|---|
Morango | 1.99 | 20 |
Chocolate | 2.99 | 45 |
A propriedade de entrada espera o tipo de dados de tabela:
O esquema da propriedade de entrada parece a seguinte fórmula:
Table({Flavor: "Strawberry",UnitPrice: 1.99, QuantitySold:20})
A app que consome este componente tem a seguinte tabela IceCreams que não corresponde ao esquema de componentes:
FlavorName | Preço | SaleNumber |
---|---|---|
Morango | 1.99 | 20 |
Chocolate | 2.99 | 45 |
Para mapear os campos corretos, utilize a função RenameColumn() para mudar o nome das colunas esperadas.
RenameColumns(IceCreams,"cra56_flavorname","Flavor","cra56_price","UnitPrice","cra56_salenumber","QuantitySold")
Os campos de entrada que o componente espera estão agora mapeados com as colunas correspondentes da origem de dados.
Mapear registos
Utilizar a função With() para mapear um único registo.
Por exemplo, continuando a partir do exemplo anterior para as colunas de mapeamento, a propriedade de entrada personalizada de um componente dentro de uma aplicação espera um tipo de registo com o seguinte esquema:
{Flavor: "Strawberry",UnitPrice: 1.99, QuantitySold: 20}
Uma vez que a origem de dados IceCreams espera nomes de colunas como FlavorName, Preço e SaleNumber, teremos de alterar o mapeamento para o registo assim que o componente for adicionado à app.
Utilizar a função With() para selecionar as colunas da tabela IceCreams e mapeá-las para os campos de entrada do componente:
With(Gallery3.Selected,{Flavor:FlavorName,UnitPrice:Price,QuantitySold:SaleNumber})
A animação que se segue mostra o exemplo de um componente adicionado à aplicação que mostra o registo selecionado da galeria (acima do componente):
Mapear tabelas
Utilizar a função ForAll() para mapear uma tabela de registos com os registos esperados pelo componente adicionado à aplicação.
Por exemplo, no final do exemplo das colunas de mapas, pode utilizar a função ForAll() para mapear toda a tabela com as colunas específicas para apontar para os campos a partir do componente para cada linha:
ForAll(IceCreams,{Flavor:FlavorName,UnitPrice:Price,QuantitySold:SaleNumber})
Mapear usando o menu suspenso (preterido)
Pode utilizar o separador Avançado para um componente adicionado a uma aplicação que espera inserir propriedade de tabela ou tipo de registo, e selecione os mapeamentos de campo usando a opção menu suspenso. Este mapeamento é atribuído por padrão, e a menos que selecione manualmente os campos de mapeamento apropriados, o mapeamento pode não produzir resultados esperados.
Por exemplo, a seguinte animação mostra a fórmula a ser atualizada para mudar de nome para colunas. O componente no ecrã não altera o mapeamento de campo, uma vez que a seleção de campo padrão utilizando este menu suspenso precisa de ser atualizada manualmente.
Este método de seleção do mapeamento utilizando o menu suspenso foi preterido. Em vez disso, utilize os métodos de mapeamento coluna, registo ou tabela, conforme descrito anteriormente neste artigo.
Ainda pode usar a opção menu suspenso para escolher o mapeamento para aplicações existentes, embora não recomendado. Para as novas aplicações, esta opção não estará disponível por predefinição. Para ligar ou desligar esta capacidade preterida, vá a Definições > Próximas funcionalidades > Retirado e escolha Permitir a atribuição automática de campo para entradas de componentes.
Ao ligar a configuração, certifique-se de que guarda e reabre a aplicação em Power Apps Studio. Uma vez reaberta, atualize a fórmula de entrada de propriedade para desencadear a validação da fórmula de modo a que as opções de menu suspenso comecem a aparecer no painel de propriedades avançadas.
Consulte também
- Fórmulas de comportamento para componentes
- Preterido: Mapear campos de componentes usando opção menu suspenso
- Componentes de tela
- Biblioteca de componentes
- Gestão do ciclo de vida de aplicações de biblioteca de documentos (ALM)
- Adicionar multimédia a um componente
- Fórmulas de comportamento para componentes
- Power Apps component framework
- Adicionar componentes de tela a uma página personalizada numa aplicação condicionada por modelo