Como Personalizar Formulários no Power Apps

Neste artigo vou mostrar-te como podes modificar um formulário em Power Apps. O Controlo de Formulário é uma forma simples e rápida de inserir ou editar informação numa base de dados, com uma serie de cartões pré-definidos que representam os campos da base de dados, sem necessidade de construir a interface de raiz. Contudo podemos por vezes ter a necessidade de modificar as propriedades dos controlos para termos mais opções de personalização! É isso que vamos ver neste artigo.

Ambiente da aplicação

Este artigo continua o artigo anterior onde explico como criar um formulário de raiz, em que já temos a aplicação pronta.

Modificar o primeiro controlo de formulário

No formulário temos um campo que representa o ID do colaborador. Este ID representa o Identificador único do colaborador. Neste caso, optando por criar um registo, será útil que este ID seja um valor automático e sequencial. Para que esta lógica funcione, temos em primeiro lugar que obter o valor do último registo disponível, e desta forma acrescentar sempre mais 1 ao valor existente.

Uma das soluções é armazenar numa variável o registo do último valor disponível na base de dados, mas também devemos ter em conta, onde é que esse valor será armazenado.

Criando uma variável é simples de armazenar o valor, mas identificar o ponto onde a variável será executada é de extrema importância.

Vamos começar por detetar o último valor disponível da base de dados. A variável pode chamar-se var_ValorTotal e a sua expressão é a função Last que identifica o último registo da base de dados, neste caso o campo ID.

Set(var_ValorTotal; Last(Departamentos).ID)

Agora, esta variável, será executada sempre que entramos no ecrã do formulário, para realizar a contagem do último registo. Utilizamos a propriedade OnVisible do ecrã do Formulário.

Sempre que entramos no ecrã do formulário, a variável irá detetar o valor do ID do último registo da base de dados.

Utilizar o ID da variável, para modificar o controlo do formulário

Agora que temos o último registo, devemos utilizá-lo no cartão do ID do colaborador. Contudo, também devemos perceber onde será utilizado este valor armazenado pela variável. Este valor deve ser aplicado, apenas quando pretendemos adicionar um novo registo, e não quando editamos ou visualizamos um colaborador.

Todos os controlos de formulário estão bloqueados por predefinição, o que significa que, sempre que pretendemos alterar alguma propriedade, devemos começar por desbloquear o controlo.

Depois do controlo estar desbloqueado, temos acesso às propriedades de cada um dos objetos que compõem o cartão (ID_DataCard1).

A propriedade que pretendo alterar, neste caso em específico, é a propriedade Value que representa o valor do ID. Por defeito a propriedade tem a expressão Parent.Default que obtém o valor Default do seu parente, que é o Formulário.

A lógica a implementar será a seguinte: Caso o estado do formulário seja diferente de um Novo Registo, mantemos o ID Default (Parent.Default), caso contrário iremos obter um novo ID. Este é um exemplo ótimo para usarmos a expressão If.

If( frm_dados.Mode <> FormMode.New; Parent.Default; var_ValorTotal + 1)

Modificar outros controlos do Formulário

De seguida vamos modificar mais um controlo do formulário, neste caso o cartão com o Departamento. Este exemplo pode ser utilizado também para alterarmos por exemplo o Género do colaborador, uma vez que o objetivo é ter uma lista com os departamentos. Para tal vamos utilizar o controlo da Caixa de Combinação (ComboBox).

Dentro do cartão do departamento, começamos por introduzir uma caixa de combinação.

Caso o cartão esteja bloqueado, surge a mensagem para desbloquear e inserir o controlo.

Após desbloquearmos podemos prosseguir com o controlo. O controlo é adicionado dentro do cartão, e podemos alterar o seu nome.

Definir os Itens da Caixa de Combinação

Agora que temos a caixa de combinação, podemos começar por definir os seus itens, que podem ser colocados manualmente, mas que neste caso vamos usar a função Distinct para obtermos uma lista única dos valores da base de dados.

Se testarmos a aplicação [F5] conseguimos visualizar os Departamentos na Caixa de Combinação.

Alterar o valor pré-definido da Caixa de Combinação

Podemos ainda fazer mais uma alteração à caixa de combinação. O valor pré-definido da Caixa de Combinação é “Encontrar Itens” que faz sentido quando pretendemos criar um registo, mas se estivermos a editar, ou visualizar um registo existente deverá aparecer o Departamento do Colaborador que estamos a consultar. Desta forma podemos usar a expressão If na propriedade InputTextPlaceholder.

If( frm_Dados.Mode <> FormMode.New; LookUp(Departamentos; ID = Dados.Selected.ID).Departamento;”Escolher Departamento”)

A expressão If avalia a condição, neste caso, se o formulário se encontra num modo que não seja New. Se esta condição for verdadeira, utilizamos a função LookUp para procurar na tabela dos Departamentos o ID do colaborador.

Podemos logo verificar, uma vez que o formulário está em modo de visualização, que a Caixa de Combinação tem o mesmo valor que o cartão inicial.

Substituir o Cartão Original pela Caixa de Combinação

Agora só nos falta substituir o Cartão Original pela Caixa de Combinação. Assim que removermos o cartão original, vão surgir alguns erros de fórmulas. Para corrigirmos os erros, basta alterar as fórmulas para acederem à caixa de combinação, em vez do cartão original.

Corrigimos a fórmula conforme o erro indicado.

A correção da propriedade Update…

Desta forma, podemos personalizar um formulário alterando os controlos pré-definidos, modificando as suas propriedades para que a aplicação possa ser mais individualizada e adaptada às necessidades específicas.


Comments

Leave a Reply

Discover more from Exceldriven

Subscribe now to keep reading and get access to the full archive.

Continue reading