Em Power Apps, no desenvolvimento de aplicações utilizamos a linguagem PowerFx com funções predefinidas para realizar a maioria das operações. Contudo podemos também criar as nossas próprias funções, com cálculos personalizados e armazená-las, da mesma forma que em qualquer linguagem de programação.
Desta forma, ganhamos a vantagem e benefício de reutilizar o código sem a necessidade de repetir a mesma expressão vezes sem conta no desenvolvimento da nossa aplicação, tornando o código também mais eficiente.
Neste artigo vamos ver então alguns exemplos de funções personalizadas que podemos definir.
Aceder às Funções Personalizadas
Antes de obtermos as funções personalizadas, devemos ativar a funcionalidade, uma vez que à data do artigo ainda se encontra em pré-visualização.
Iniciando a nova aplicação devemos aceder às definições da aplicação.

Nas definições acedemos à opção Funções Definidas pelo Utilizador…

Devemos salvar a aplicação e voltar a iniciar a mesma para que as funcionalidades fiquem ativas.
Definir Variáveis na aplicação
No artigo vamos só rever o conceito das variáveis, que se assemelha com o conceito das funções personalizadas, assim podemos criar 3 botões (um para cada tipo de variável: Global, de Ecrã e Coleção).

No primeiro botão definimos uma variável Global, acedendo à propriedade OnSelect do Botão. A Variável vai armazenar um valor aleatório com a função RandBetteen, semelhante à função do Excel.
Set(varGlobal; RandBetween(10;100))
No Segundo botão vamos armazenar uma variável de contexto de ecrã.
UpdateContext({varLocal: varGlobal*2})
Esta variável acede ao valor armazenado na variável anterior, e multiplica o seu valor por 2.
No 3º botão, definimos uma variável que coleciona vários itens, registados numa caixa de texto de inserção de dados: txtNome
Collect(colDados; {Nome: txtNome.Text})

Criar uma função Personalizada
Um dos métodos para criar uma função personalizada, é apenas guardar uma expressão, que pode conter funções pré-definidas do Power Apps.
Acedemos às propriedades da aplicação, mais especificamente à propriedade fórmulas. Todo o conteúdo colocado nesta propriedade armazena as funções personalizadas que podemos reutilizar ao longo da aplicação.
Neste caso vamos criar 2 funções personalizadas:
- A primeira função é uma função existente, a função IF, pré-definida do PowerFx, mas que pretendemos reutilizar várias vezes, e assim, ao darmos um “nome” à expressão, torna-se mais fácil reutilizá-la. Para passarmos para outra função devemos sempre terminar com “;;” (PT) ou “;” (EN) para a próxima instrução em Power Apps.
fxFormula = If(varGlobal >= 50; varGlobal/2; varGlobal* 2);;
- A segunda função já será uma função personalizada. Sendo uma função personalizada, tem uma sintaxe diferente, mas se conheces outras linguagens de programação é semelhante.
- A função tem um nome, e argumentos, e cada argumento tem um tipo de dados.
- Por fim, o resultado da função também devolve um tipo de dados específico.
fxCalculoTotal(Quantidade:Number;PUnitario:Number):Number = Quantidade * PUnitario;;
Explicando melhor a expressão:
- fxCalculoTotal: Nome da expressão
- (Quantidade:Number;PUnitario:Number): Os 2 argumentos que a função necessita, separados por “;” e com o respetivo tipo de dados de cada argumento.
- :Number: Tipo de dados retornado no resultado da função
- = Quantidade * PUnitario: Cálculo realizado pela função
Uma função personalizada é então construída desta forma.
Usar a função Personalizada
Voltando ao ecrã da aplicação, vamos criar mais alguns controlos para visualizar o resultado da função:
- Inserimos uma etiqueta de texto que irá conter o resultado da fórmula:
- 2 etiquetas, uma para Quantidade e outra para Preço Unitário
- 2 caixas de texto para colocar os valores da Quantidade e Preço Unitário
- Uma Etiqueta de Texto para o resultado da função.

Na primeira etiqueta de texto, colocamos na propriedade Text o seguinte valor, onde a primeira função personalizada fxFormula é a primeira expressão criada com a função IF e as variáveis:

Nas propriedades de cada uma das caixas de texto, asseguramos que o valor colocado é número, pois os argumentos da função requerem um número…

A Etiqueta de texto, final, tem a fórmula personalizada, onde já necessitamos de introduzir os argumentos da nossa função.

Como podes verificar, criar funções personalizadas permitem efetuar cálculos personalizados, mas também reutilizá-las em vários locais e cenários dentro da tua aplicação!

Leave a Reply