Usar controles e funções para criar uma fórmula dinâmica
O exercício a seguir usa o controle Botão e a função UpdateContext para criar uma fórmula dinâmica a fim de alterar o DisplayMode de um botão.
Navegue até Power Apps.
Selecione + Criar>Aplicativo em branco>Criar (em Aplicativo de tela em branco). Dê um nome ao aplicativo e selecione Criar.
Selecione a opção de menu Inserir e adicione um Botão.
Altere a propriedade Texto do botão para Adicionar.
Dica
Você pode alterar rapidamente a propriedade text de um controle de botão clicando duas vezes no próprio controle enquanto estiver no modo de edição.
Insira outro controle Botão e altere o Texto para Clear.
Adicione um Rótulo de texto e uma Entrada de texto à tela.
Renomeie o controle de entrada de texto tiAmount e, na propriedade Default, exclua "Entrada de texto". Para a propriedade Format, digite
TextFormat.Number
.Observação
A imagem a seguir mostra o exercício concluído. Consulte essa imagem para ver o posicionamento e os nomes dos controles. Se você estiver retornando erros com seu código, verifique se os nomes de controle correspondem ao código escrito.
Selecione o botão Add (Button1) e defina a propriedade OnSelect como:
UpdateContext({RunningTotal: RunningTotal + Value(tiAmount.Text)})
Selecione o botão Clear (Button2) e defina a propriedade OnSelect como:
UpdateContext({RunningTotal: 0}); Reset (tiAmount)
Defina a propriedade DisplayMode do botão Clear como:
If(RunningTotal > 0, DisplayMode.Edit, DisplayMode.Disabled)
Note que, após atualizar a propriedade DisplayMode, ela ficará acinzentada (ou desabilitada).
Selecione o controle Rótulo (Label1) e atualize a propriedade Text para nossa variável de contexto:
RunningTotal
Teste o aplicativo no modo de Visualização. Na entrada de texto, insira um número positivo e selecione o botão Add.
Após você selecionar o botão Add, o botão Clear será selecionável.
Selecione o botão Clear para limpar o campo de entrada e o RunningTotal.
Neste exemplo, usamos uma função If para avaliar se RunningTotal é maior que 0. Se for maior que 0, o botão Clear se tornará editável (DisplayMode.Edit). Se a variável não tiver valor ou for 0, o botão será desabilitado (DisplayMode.disabled).
Outra maneira de obter a mesma funcionalidade é evitar a variável de contexto nas fórmulas. Nesse caso, você poderia nomear um controle na fórmula DisplayMode. Por exemplo, poderíamos usar o valor de nosso controle rótulo na fórmula.
Coloque o aplicativo novamente no modo de edição e selecione o botão Clear. Selecione a propriedade DisplayMode e altere a fórmula para o seguinte:
If(Value(Label1.Text) > 0, DisplayMode.Edit, DisplayMode.Disabled)
Como o controle rótulo armazena informações como texto, não se esqueça de usar a função Value. A função Value converte uma cadeia de caracteres numérica de texto em um número. Se você tentar avaliar o texto em relação a um valor, verá um erro na fórmula. Empacotar a propriedade text do rótulo em uma função Value garante que o Power Apps a interprete como um número.
À medida que continuar aprendendo, desenvolvendo e implantando mais aplicativos, você verá que, geralmente, há pelo menos algumas maneiras de criar a mesma funcionalidade usando diferentes controles, funções e propriedades.