Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se você tiver usado outra ferramenta de programação, como Visual Basic ou JavaScript, poderá perguntar: Onde estão as variáveis? O Power Apps funciona de forma diferente e precisa de uma abordagem diferente. Em vez de buscar uma variável ao criar um aplicativo de tela, pergunte-se: o que eu faria no Excel?
Em outras ferramentas, você pode executar explicitamente um cálculo e armazenar o resultado em uma variável. Mas o Power Apps e o Excel recalculam automaticamente fórmulas à medida que os dados de entrada são alterados, portanto, você geralmente não precisa criar ou atualizar variáveis. Usando essa abordagem, você cria, entende e mantém seu aplicativo com mais facilidade.
Às vezes, você precisa usar variáveis no Power Apps, que estende o modelo do Excel adicionando fórmulas de comportamento. Essas fórmulas são executadas quando, por exemplo, um usuário seleciona um botão. Em uma fórmula de comportamento, geralmente é útil definir uma variável para uso em outras fórmulas.
Em geral, evite usar variáveis. Mas, às vezes, apenas uma variável permite criar a experiência desejada. As variáveis são implicitamente criadas e digitadas quando aparecem em funções que definem seus valores.
Converter Excel em Power Apps
Excel
Vamos analisar o funcionamento do Excel. Uma célula pode ter um valor, como um número ou uma cadeia de caracteres, ou uma fórmula baseada nos valores de outras células. Quando você insere um valor diferente em uma célula, o Excel recalcula automaticamente todas as fórmulas que dependem do novo valor. Você não precisa fazer nenhuma programação para habilitar esse comportamento.
No exemplo a seguir, a célula A3 usa a fórmula A1+A2. Se A1 ou A2 for alterado, o A3 será recalculado automaticamente para mostrar a alteração. Esse comportamento não requer codificação fora da própria fórmula.
O Excel não tem variáveis. O valor de uma célula com uma fórmula é alterado com base em sua entrada, mas não há como lembrar o resultado de uma fórmula e armazená-la em uma célula ou em qualquer outro lugar. Se você alterar o valor de uma célula, toda a planilha poderá ser alterada e todos os valores calculados anteriormente serão perdidos. Você pode copiar e colar células, mas isso é manual e não é possível com fórmulas.
Power Apps
Os aplicativos criados no Power Apps funcionam muito parecidos com o Excel. Em vez de atualizar células, você adiciona controles em qualquer lugar em uma tela e os nomeia para uso em fórmulas.
Por exemplo, você pode copiar o comportamento do Excel em um aplicativo adicionando um controle label1 e dois controles de entrada de textochamados TextInput1 e TextInput2. Se você definir a propriedade Text de Label1 como TextInput1 + TextInput2, ela sempre mostrará a soma dos números em TextInput1 e TextInput2 automaticamente.
Observe que o controle Label1 está selecionado, mostrando sua fórmula Text na barra de fórmulas na parte superior da tela. A fórmula TextInput1 + TextInput2 cria uma dependência entre esses controles, assim como as dependências entre células em uma pasta de trabalho do Excel. Vamos alterar o valor de TextInput1:
A fórmula de Label1 recalcula e mostra o novo valor automaticamente.
No Power Apps, você usa fórmulas para definir não apenas o valor principal de um controle, mas também propriedades como a formatação. No exemplo a seguir, uma fórmula para a propriedade Color do rótulo mostra automaticamente valores negativos em vermelho. A função If parece familiar do Excel:
If( Value(Label1.Text) < 0, Red, Black )
Você usa fórmulas para muitos cenários:
- Quando o GPS do dispositivo está ativado, um controle de mapa mostra sua localização atual com uma fórmula que usa Location.Latitude e Location.Longitude. Conforme você se move, o mapa controla automaticamente sua localização.
- Outros usuários atualizam fontes de dados. Por exemplo, outras pessoas de sua equipe podem atualizar itens em uma lista. Quando você atualiza uma fonte de dados, todas as fórmulas dependentes são recalculadas automaticamente para mostrar os dados atualizados. Por exemplo, você pode definir a propriedade Items de uma galeria como a fórmula Filter( SharePointList ), que mostra automaticamente o conjunto de registros filtrado recentemente.
Benefícios
Usar fórmulas para criar aplicativos tem muitas vantagens:
- Se você conhece o Excel, também conhece o Power Apps. O modelo e a linguagem de fórmula são os mesmos.
- Se você usou outras ferramentas de programação, pense na quantidade de código que precisaria para fazer esses exemplos. No Visual Basic, você escreveria um manipulador de eventos para o evento de alteração em cada controle de entrada de texto. O código para realizar o cálculo em cada um é redundante e pode ficar fora de sincronia, ou você precisaria escrever uma sub-rotina comum. No Power Apps, você faz tudo com uma única fórmula de uma linha.
- Para ver de onde vem o texto do Label1, você sabe exatamente de onde procurar: a fórmula na propriedade Text . Não há outra maneira de alterar o texto desse controle. Em uma ferramenta de programação tradicional, qualquer manipulador de eventos ou sub-rotina pode alterar o valor do rótulo, de qualquer lugar no programa. Isso torna difícil rastrear quando e onde uma variável foi alterada.
- Se alterar um controle deslizante e, em seguida, mudar de ideia, você poderá alterar o controle deslizante de volta para seu valor original. É como se nada tivesse mudado: o aplicativo mostra os mesmos valores de controle de antes. Não há consequências para experimentar e perguntar "e se", assim como no Excel.
Em geral, se você pode fazer algo com uma fórmula, você está melhor. Deixe que o mecanismo da fórmula no Power Apps trabalhe para você.
Saber quando usar variáveis
Vamos alterar nosso adicionador simples para atuar como uma calculadora antiga, com um total acumulado. Ao selecionar o botão Adicionar , adicione um número ao total em execução. Ao selecionar o botão Limpar , você redefine o total em execução para zero.
| Tela | Descrição |
|---|---|
|
Quando o aplicativo é iniciado, o total acumulado é 0. O ponto vermelho representa o dedo do usuário na caixa de entrada de texto, onde o usuário insere 77. |
|
O usuário seleciona o botão Adicionar. |
|
77 são adicionados ao total acumulado. O usuário seleciona o botão Adicionar novamente. |
|
77 é adicionado novamente ao total atual, resultando em 154. O usuário seleciona o botão Limpar. |
|
O total acumulado é redefinido como 0. |
Nossa calculadora usa algo que não existe no Excel: um botão. Neste aplicativo, não é possível usar somente fórmulas para calcular o total acumulado porque seu valor depende de uma série de ações que o usuário realiza. Em vez disso, você grava e atualiza o total em execução manualmente. A maioria das ferramentas de programação armazena essas informações em uma variável.
Às vezes, você precisa de uma variável para que seu aplicativo se comporte da maneira desejada, mas essa abordagem vem com ressalvas:
- Você atualiza manualmente o total acumulado. O recálculo automático não faz isso por você.
- O total em execução não é calculado com base nos valores de outros controles. Depende de quantas vezes o usuário seleciona o botão Adicionar e qual valor está no controle de entrada de texto a cada vez. O usuário inseriu 77 e selecionou Adicionar duas vezes ou inseriu 24 e 130 para cada adição? Você não pode dizer a diferença depois que o total chegar a 154.
- As alterações no total podem vir de ações diferentes. Neste exemplo, os botões Adicionar e Limpar atualizam o total. Se o aplicativo não se comportar da maneira esperada, qual botão causará o problema?
Usar uma variável global
Para criar uma calculadora, você precisa de uma variável para manter o total acumulado. As variáveis mais simples a serem usadas no Power Apps são variáveis globais.
Como variáveis globais funcionam:
- Defina o valor de uma variável global com a função Set . Set (MyVar, 1) define a variável global MyVar como um valor 1.
- Use a variável global fazendo referência ao nome usado com a função Set . Nesse caso, MyVar retorna 1.
- Variáveis globais podem conter qualquer valor, incluindo cadeias de caracteres, números, registros e tabelas.
Recompile o computador de adição usando uma variável global:
Adicione um controle de entrada de texto chamado TextInput1 e dois botões chamados Button1 e Button2.
Defina a propriedade Text de Button1 como "Add" e defina a propriedade Text de Button2 como "Clear".
Para atualizar o total em execução quando um usuário selecionar o botão Adicionar, defina sua propriedade OnSelect como esta fórmula:
Set( RunningTotal, RunningTotal + TextInput1 )
Essa fórmula cria RunningTotal como uma variável global que contém um número devido ao + operador. Referenciar RunningTotal em qualquer lugar do aplicativo. Quando o usuário abre o aplicativo, RunningTotal tem um valor inicial de nulo.
Na primeira vez que um usuário seleciona o botão Adicionar e Set é executado, RunningTotal é definido para o valor RunningTotal + TextInput1.
Para definir o total em execução como 0 quando o usuário selecionar o botão Limpar, configure a propriedade OnSelect como esta fórmula:
Set( RunningTotal, 0 )
Captura de tela da propriedade OnSelect do botão Limpar configurada para a função Set.
Adicione um controle Rótulo e defina sua propriedade Text como RunningTotal.
Essa fórmula recalcula automaticamente e mostra ao usuário o valor de RunningTotal conforme ele é alterado com base nos botões selecionados pelo usuário.
Visualizar o aplicativo. Insira um número na caixa de texto e selecione o botão Adicionar algumas vezes. Quando estiver pronto, retorne à experiência de criação usando a chave Esc .
Para mostrar o valor da variável global, selecione Variáveis no menu de criação de aplicativo.
Para mostrar todos os locais em que a variável é definida e usada, selecione-a em Variáveis globais.
Tipos de variáveis
O Power Apps tem três tipos de variáveis:
| Tipo de variável | Scope | Descrição | Funções que estabelecem |
|---|---|---|---|
| Variáveis globais | Aplicativo | Use variáveis globais para conter um número, cadeia de caracteres de texto, booliano, registro, tabela ou outro valor que você referenciar em qualquer lugar do aplicativo. | Set |
| Variáveis de contexto | Tela | Use variáveis de contexto para passar valores para uma tela, como parâmetros em outros idiomas. Você faz referência a eles a partir de uma única tela. |
UpdateContext Navigate |
| Coleções | Aplicativo | Use coleções para manter uma tabela que você referencia em qualquer lugar do aplicativo. Você pode alterar o conteúdo da tabela e salvá-lo no dispositivo local para uso posterior. |
Collect ClearCollect |
Criar e remover variáveis
As variáveis são criadas implicitamente quando aparecem em uma função Set, UpdateContext, Navigate, Collect ou ClearCollect . Para declarar uma variável e seu tipo, basta incluí-la em qualquer uma dessas funções em qualquer lugar do seu aplicativo. Essas funções não criam variáveis; eles preenchem apenas variáveis com valores. Você nunca declara variáveis explicitamente como você pode em outra ferramenta de programação e toda a digitação é implícita a partir do uso.
Por exemplo, você pode ter um controle de botão com uma fórmula OnSelect igual a Set( X, 1 ). Esta fórmula estabelece X como uma variável com um tipo de número. Você usa X nas fórmulas como valor numérico, e essa variável tem um valor como branco depois de abrir o aplicativo, mas antes de selecionar o botão. Quando você seleciona o botão, você dá X o valor 1.
Se você adicionar outro botão e definir sua propriedade OnSelect como Set( X, "Hello" ), ocorrerá um erro porque o tipo (cadeia de texto) não corresponde ao tipo no Conjunto anterior (número). Todas as definições implícitas da variável devem concordar com o tipo. Novamente, tudo isso acontece porque você menciona X em fórmulas, não porque nenhuma dessas fórmulas realmente é executada.
Remova uma variável removendo todas as funções Set, UpdateContext, Navigate, Collect ou ClearCollect que estabelecem implicitamente a variável. Sem essas funções, a variável não existe. Remova também todas as referências à variável porque elas causam um erro.
Vida útil e valor inicial da variável
As variáveis permanecem na memória enquanto o aplicativo é executado. Quando o aplicativo é fechado, os valores em variáveis são perdidos.
Armazene o conteúdo de uma variável em uma fonte de dados usando as funções Patch ou Collect . Armazene valores em coleções no dispositivo local usando a função SaveData .
Quando o usuário abre o aplicativo, todas as variáveis começam com um valor inicial em branco.
Como ler variáveis
Use o nome da variável para ler seu valor. Por exemplo, defina uma variável com esta fórmula:
Set( Radius, 12 )
Em seguida, use Radius em qualquer lugar que você use um número e ele é substituído por 12:
Pi() * Power( Radius, 2 )
Se você der a uma variável de contexto o mesmo nome que uma variável global ou uma coleção, a variável de contexto terá precedência. Você pode fazer referência à variável ou coleção global usando o operador disambiguation[@Radius].
Nomes de variáveis reservadas
Não use nenhum dos nomes de variáveis a seguir. Esses nomes são propriedades do aplicativo e usá-los pode causar colisões de nome variável que resultam em comportamento inesperado do aplicativo.
- ActiveScreen
- DesignHeight
- DesignWidth
- Height
- MinScreenHeight
- MinScreenWidth
- SizeBreakpoints
- StudioVersion
- TestCaseId
- Testes
- TestSuiteId
- Tema
- Espessura
Usar uma variável de contexto
Vamos examinar como você cria um computador de adição usando uma variável de contexto em vez de uma variável global.
Como funcionam as variáveis de contexto
- Você estabelece e define variáveis de contexto implicitamente usando a função UpdateContext ou Navigate. Quando o aplicativo é iniciado, o valor inicial de cada variável de contexto fica em branco.
- Atualize as variáveis de contexto com registros. Em outras ferramentas de programação, você geralmente usa "=" para atribuição, como "x = 1". Para variáveis de contexto, use { x: 1 } em vez disso. Ao usar uma variável de contexto, use seu nome diretamente sem a sintaxe do registro.
- Também é possível definir uma variável de contexto quando você usa a função Navigate para mostrar uma tela. Se você pensar em uma tela como um tipo de procedimento ou sub-rotina, essa abordagem é como a passagem de parâmetros em outras ferramentas de programação.
- Exceto para Navigate, as variáveis de contexto são limitadas ao contexto de uma única tela, que é de onde elas obtêm o nome. Você não pode usá-los ou defini-los fora desse contexto.
- As variáveis de contexto podem conter qualquer valor, incluindo cadeias de caracteres, números, registros e tabelas.
Recompile o computador de adição usando uma variável de contexto:
Adicione um controle de entrada de texto, chamado TextInput1, e dois botões, chamados Button1 e Button2.
Defina a propriedade Text de Button1 como "Add" e defina a propriedade Text de Button2 como "Clear".
Para atualizar o total acumulado sempre que um usuário seleciona o botão Add, defina sua propriedade OnSelect como esta fórmula:
UpdateContext( { RunningTotal: RunningTotal + TextInput1 } )
Essa fórmula estabelece RunningTotal como uma variável de contexto que contém um número devido ao + operador. Você referencia RunningTotal em qualquer parte desta tela. Quando o usuário abre o aplicativo, RunningTotal tem um valor inicial de nulo.
Na primeira vez que o usuário seleciona o botão Adicionar e UpdateContext é executado, RunningTotal é definido como o valor RunningTotal + TextInput1.
Para definir o total acumulado como 0, sempre que o usuário seleciona o botão Clear, defina sua propriedade OnSelect como esta fórmula:
UpdateContext( { RunningTotal: 0 } )
Novamente, use UpdateContext com a fórmula UpdateContext( { RunningTotal: 0 } ).
Adicione um controle Rótulo e defina sua propriedade Text como RunningTotal.
Esta fórmula será automaticamente recalculada e exibirá ao usuário o valor de RunningTotal à medida que ele mudar de acordo com os botões que o usuário selecionar.
Visualizar o aplicativo. Insira um número na caixa de texto e selecione o botão Adicionar algumas vezes. Quando estiver pronto, retorne à experiência de criação usando a chave Esc .
Defina o valor de uma variável de contexto enquanto navega para uma tela para passar "contexto" ou "parâmetros" de uma tela para outra. Para demonstrar essa técnica, insira uma tela, insira um botão e defina sua propriedade OnSelect como esta fórmula:
Navegar( Tela1, Nenhum, { TotalCorrente: -1000 } )
Mantenha pressionada a tecla Alt enquanto seleciona esse botão para mostrar Screen1 e defina a variável de contexto RunningTotal como -1000.
Para mostrar o valor da variável de contexto, siga um destes procedimentos:
Se estiver usando a versão preliminar do Power Apps Studio, selecione Variáveis no menu de criação do aplicativo.
Se você estiver usando a versão clássica do Power Apps Studio, selecione o menu Arquivo e selecione Variáveis no painel esquerdo.
Para mostrar onde a variável de contexto é definida e usada, selecione-a em Variáveis de contexto.
Usar uma coleção
Vamos criar uma máquina de somar usando uma coleção de valores. Como uma coleção contém uma tabela que é fácil de alterar, essa máquina de adição mantém uma "fita de papel" de cada valor à medida que você a insere.
Como as coleções funcionam
- Crie e defina coleções usando a função ClearCollect. Em vez disso, você pode usar a função Collect , mas ela requer outra variável em vez de substituir a antiga.
- Uma coleção é um tipo de fonte de dados e uma tabela. Para obter um único valor em uma coleção, use a função First e obtenha um campo do registro resultante. Se você usar um único valor com ClearCollect, este será o campo Valor , como neste exemplo:
First(VariableName).Value
Crie um computador de adição usando uma coleção:
Adicione um controle Entrada de texto, chamado TextInput1, e dois botões, chamados Button1 e Button2.
Defina a propriedade Text de Button1 como "Add" e defina a propriedade Text de Button2 como "Clear".
Para atualizar o total acumulado sempre que um usuário seleciona o botão Add, defina sua propriedade OnSelect como esta fórmula:
Collect( PaperTape, TextInput1.Text )
A mera existência dessa fórmula estabelece PaperTape como uma coleção que contém uma tabela de coluna única de cadeias de texto. Você pode referenciar PaperTape em qualquer lugar deste aplicativo. Sempre que um usuário abrir este aplicativo, PaperTape será uma tabela vazia.
Quando essa fórmula for executada, ela adicionará o novo valor ao final da coleção. Já que estamos adicionando um único valor, Collect posiciona automaticamente esse valor em uma tabela de coluna única, e o nome da coluna é Value, que você usará mais tarde.
Para limpar a fita de papel quando o usuário seleciona o botão Clear, defina sua propriedade OnSelect como esta fórmula:
Clear( PaperTape )
Propriedade Para executar a calculadora, pressione F5 para abrir a Visualização, insira números no controle de entrada de texto e selecione botões.
Para retornar ao workspace padrão, selecione Esc.
Para exibir a fita de papel, insira um controle Tabela de dados e defina **[Items](controls/properties1. Para ver os valores de uma coleção, siga um destes procedimentos:
Se você estiver usando a versão prévia do Power Apps Studio, selecione Variáveis no menu de criação do aplicativo e selecione Coleções.
Se você estiver usando a versão clássica do Power Apps Studio, selecione Coleções no menu Arquivo .. Para ver os valores de uma coleção, siga um destes procedimentos:
Se estiver usando a versão preliminar do Power Apps Studio, selecione Variáveis no menu de criação do aplicativo e selecione Collections.
Se estiver usando a versão clássica do Power Apps Studio, selecione Coleções no menu Arquivo.
Para armazenar e obter sua coleção, adicione mais dois controles de botão e defina suas propriedades de Texto como Carregar e Salvar. Defina a propriedade OnSelect do botão Load como esta fórmula:
Limpar( FitaDePapel ); CarregarDados( FitaDePapel, "StoredPaperTape", true )
É preciso limpar a coleção primeiro, já que LoadData acrescentará os valores armazenados no final da coleção.
Defina a propriedade OnSelect do botão para Save conforme esta fórmula:
SaveData( PaperTape, "StoredPaperTape" )
Visualize novamente selecionando F5, insira números no controle de entrada de texto e selecione botões. Selecione o botão Salvar. Feche e recarregue o aplicativo e, em seguida, selecione o botão Load para recarregar sua coleção.
Nota
As funções SaveData e LoadData são operantes no Power Apps Mobile, mas não no Power Apps Studio ou o player da Web do Power Apps.