Partilhar via


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:

A propriedade de entrada personalizada 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})

Fórmula de propriedade de entrada personalizada definida como valores de tabela e amostra.

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

Esquema da tabela de Gelados.

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")

Aplicação que usa mapeamento de propriedade de entrada personalizada com as colunas corretas usando a função RenameColumns.

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}

Fórmula de propriedade de entrada personalizada definida como valores de registo e amostra.

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})

Registo de componentes em aplicação mapeada para o esquema origem de dados.

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):

Animação que mostra a seleção de um registo de uma galeria acima alterando o texto de instância de componente abaixo.

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})

Tabela de mapas utilizando a função ForAll() para todos os registos.

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.

Método preterido para selecionar mapeamento de campo usando menu suspenso na secção de propriedade avançada de um componente adicionado a uma aplicação.

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.

Permitir atribuição automática de campos para definição de 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