Noções básicas sobre formulários de aplicação de tela

Adicione três tipos de controlos a uma aplicação de tela, para que o utilizador possa procurar registos, ver detalhes do mesmo e editar ou criar um novo:

Atividade Controlo Descrição
Procurar um registo Controlo Galeria Filtre, ordene, procure e navegue por registos numa origem de dados e selecione um registo específico. Apresente apenas alguns campos de cada registo para ver vários registos ao mesmo tempo, mesmo num ecrã pequeno.
Mostrar os detalhes de um registo Controlo de Apresentar formulário Em registos individuais, mostre muitos ou todos os campos dos mesmos.
Editar ou criar um registo Controlo de Editar formulário Atualize um ou mais campos num registo individual (ou crie um começando com valores predefinidos) e guarde as alterações na origem de dados subjacente.

Ponha cada controlo num ecrã diferente, para que se distingam mais facilmente:

Procurar, ver e editar registos em três ecrãs.

Tal como este tópico descreve, combine estes controlos com fórmulas para criar a experiência de utilizador global.

Pré-requisitos

Explorar uma aplicação gerada

O Power Apps pode gerar automaticamente uma aplicação com base numa origem de dados que especificar. Cada aplicação contém três ecrãs com os controlos descritos anteriormente e fórmulas que os ligam. Execute estas aplicações incluídas, personalize-as de acordo com os seus objetivos específicos ou veja como funcionam, de modo a aprender conceitos úteis que se aplicam às suas próprias aplicações. Nas secções seguintes, analise os ecrãs, os controlos e as fórmulas que orientam as aplicações geradas.

Ecrã de procura

Ecrã de procura.

Este ecrã conta com estas fórmulas principais:

Ctrl Comportamento suportado Fórmula
BrowseGallery1 Apresentar os registos da origem de dados Ativos. A propriedade Items (Itens) da galeria é definida como uma fórmula que se baseia na origem de dados Ativos.
ImageNewItem1 Apresentar o ecrã Edit and Create (Editar e Criar) com cada campo definido como um valor predefinido, para que o utilizador possa criar um registo facilmente. A propriedade OnSelect da imagem está definida como esta fórmula:
NewForm( EditForm1 );
Navigate( EditScreen1, None )
NextArrow1 (na galeria) Apresentar o ecrã Details (Detalhes) para ver muitos ou todos os campos do registo atualmente selecionado. A propriedade OnSelect da seta está definida como a fórmula seguinte:
Navigate( DetailScreen1, None )

O controlo principal deste ecrã, BrowseGallery1, abrange a maior parte da área do ecrã. O utilizador pode navegar pela galeria para encontrar um registo específico e apresentar mais campos ou atualizar.

Defina a propriedade Items de uma galeria para mostrar registos de uma origem de dados na mesma. Por exemplo, defina-a como Ativos para mostrar registos de uma origem de dados com esse nome.

Nota

Nas aplicações geradas, Items está definido para uma fórmula significativamente mais complicada por predefinição, de modo a que o utilizador possa ordenar e procurar registos. Vai aprender a criar esta fórmula mais adiante neste tópico; por agora, a versão mais simples é suficiente.

Em vez de encontrar um registo para mostrar ou editar, o utilizador pode selecionar o símbolo "+", acima da galeria, para criar um registo. Crie este efeito ao adicionar um controlo de Imagem que mostre o símbolo "+" e ao definir a propriedade OnSelect como esta fórmula.
NewForm( EditForm1 ); Navigate( EditScreen1, None )

Esta fórmula abre o ecrã Edit and Create, que mostra um controlo de Editar formulário com o nome EditForm1. A fórmula também muda este formulário para o modo New (Novo), no qual o formulário mostra valores predefinidos a partir da origem de dados, para que o utilizador possa criar um registo do zero facilmente.

Para examinar qualquer controlo que apareça em BrowseGallery1, selecione o controlo na primeira secção dessa galeria, que funciona como modelo para todas as outras secções. Por exemplo, selecione o controlo de Etiqueta do meio na extremidade do lado esquerdo.

Navegar pelos controlos de ecrã.

Neste exemplo, a propriedade Text do controlo está definida como ThisItem.AssignedTo, que é um campo da origem de dados Assets. As propriedades Text dos outros três controlos de Etiqueta na galeria estão definidas como fórmulas semelhantes e cada controlo mostra um campo diferente da origem de dados.

Selecione o controlo de Forma (a seta) e confirme que a respetiva propriedade OnSelect está definida como esta fórmula:
Navigate( DetailScreen1, None )

Se um utilizador encontrar um registo em BrowseGallery1, pode selecionar a respetiva seta e ver mais informações sobre o mesmo em DetailScreen1. Ao selecionar uma seta, o utilizador altera o valor da propriedade Selected (Selecionado) de BrowseGallery1. Na nossa aplicação, esta propriedade determina que registos aparecem não só em DetailScreen1, mas também no ecrã Edit and Create, caso o utilizador decida atualizá-los.

Ecrã de detalhes

Controlos do ecrã de detalhes.

Este ecrã conta com estas fórmulas principais:

Ctrl Comportamento suportado Fórmula
DetailForm1 Apresenta um registo da origem de dados Assets Definir a propriedade DataSource (Origem de Dados) como Assets.
DetailForm1 Determina que registos serão apresentados. Numa aplicação gerada, apresenta o registo que o utilizador selecionou na galeria. Definir a propriedade Item deste controlo como este valor:
BrowseGallery1.Selected
Controlos de Cartão Nos controlos de Apresentar formulário, apresenta um campo individual num registo. Definir a propriedade DataField (CampoDeDados) como o nome de um campo, entre aspas (por exemplo, "Nome").
ImageBackArrow1 Quando o utilizador seleciona este controlo, abre BrowseScreen1. Definir a propriedade OnSelect como esta fórmula:
Back()
ImageDelete1 Quando o utilizador seleciona este controlo, elimina um registo. Definir a propriedade OnSelect como esta fórmula:
Remove( Assets, BrowseGallery1.Selected )
ImageEdit1 Quando o utilizador seleciona este controlo, abre o ecrã Edit and Create do registo atual. Definir a propriedade OnSelect como esta fórmula:
Navigate( EditScreen1, None )

Na parte superior do ecrã, três imagens estão fora de DetailForm1 e funcionam como botões, que se orquestram entre os três ecrãs da aplicação.

DetailForm1 domina este ecrã e apresenta o registo que o utilizador selecionou na galeria (porque a propriedade Item do formulário está definida como BrowseGallery1.Selected). A propriedade DataSource do formulário também disponibiliza metadados sobre a origem de dados, como um nome de utilizador a apresentar amigável para cada campo.

DetailForm1 contém vários controlos de Cartão. Pode selecionar o controlo de Cartão propriamente dito ou o controlo que este contém, para descobrir informações adicionais.

Cartão de detalhe e controlos de cartão selecionados na experiência de criação.

A propriedade DataField dos controlos de Cartão determina o campo que o cartão vai apresentar. Neste caso, esta propriedade está definida como AssetID. O cartão contém um controlo de Etiqueta cuja propriedade Text está definida como Parent.Default. Este controlo mostra o valor Predefinido do cartão, que é definido através da propriedade DataField.

Numa aplicação gerada, os controlos de Cartão estão bloqueados por predefinição. Quando um cartão está bloqueado, não pode modificar algumas propriedades, como DataField, e a barra de fórmulas não está disponível para as mesmas. Esta restrição ajuda a garantir que as suas personalizações não interrompem o funcionamento básico da aplicação gerada. No entanto, pode alterar algumas propriedades de um cartão e respetivos controlos no painel do lado direito:

Ecrã de detalhes com o painel de opções aberto.

No painel do lado direito, pode selecionar os campos a serem mostrados e o tipo de controlo que cada campo apresenta.

Ecrã editar/criar

Controlos do ecrã de edição.

Este ecrã conta com estas fórmulas principais:

Ctrl Comportamento suportado Fórmula
EditForm1 Apresenta um registo da origem de dados Assets. Definir a propriedade DataSource (Origem de Dados) como Assets.
EditForm1 Determina que registos serão apresentados. Numa aplicação gerada, apresenta o registo que o utilizador selecionou em BrowseScreen1. Definir a propriedade Item como este valor:
BrowseGallery1.Selected
Controlos de Cartão Num controlo de Editar formulário, fornece controlos que permitem ao utilizador editar um ou mais campos de um registo. Definir a propriedade DataField (CampoDeDados) como o nome de um campo, entre aspas (por exemplo, "Nome").
ImageCancel1 Quando o utilizador seleciona este controlo, elimina todas as alterações em curso e abre ecrã Details. Definir a propriedade OnSelect como esta fórmula:
ResetForm( EditForm1 ); Back()
ImageAccept1 Quando o utilizador seleciona este controlo, submete as alterações à origem de dados. Definir a propriedade OnSelect como esta fórmula:
SubmitForm( EditForm1 )
EditForm1 Se as alterações forem aceites, regressa ao ecrã anterior. Definir a propriedade OnSuccess como esta fórmula:
Back()
EditForm1 Se as alterações não forem aceites, permanecer no ecrã atual para que o utilizador possa corrigir eventuais problemas e tentar submeta novamente. Deixe a propriedade OnFailure em branco.
LblFormError1 Se as alterações não forem aceites, mostra uma mensagem de erro. Definir a propriedade Text como este valor:
EditForm1.Error

Tal como no ecrã Details, o ecrã Edit and Create é dominado por um controlo de formulário, denominado EditForm1. Além disso, a propriedade Item de EditForm1 está definida como BrowseGallery1.Selected, pelo que o formulário apresenta o registo que o utilizador selecionou em BrowseScreen1. Embora o ecrã Details mostre cada campo como só de leitura, o utilizador pode atualizar o valor de um ou mais campos com os controlos de EditForm1. Também utiliza a propriedade DataSource para aceder aos metadados sobre esta origem de dados, tais como o nome de utilizador a apresentar amigável de cada campo e a localização onde as alterações devem ser guardadas.

Se o utilizador selecionar o ícone “X” para cancelar uma atualização, a função ResetForm elimina as alterações não guardadas e a função Back abre o ecrã Details. Tanto o ecrã Details, como o ecrã Edit and Create, mostram o mesmo registo até que o utilizador selecione outro diferente em BrowseScreen1. Os campos deste registo continuam definidos como os valores que foram guardados pela última vez e não como as eventuais alterações que o utilizador fez e, posteriormente, abandonou.

Se o utilizador alterar um ou mais valores no formulário e selecionar o ícone de “marca de verificação”, a função SubmitForm envia as alterações para a origem de dados.

  • Se as alterações forem guardadas com êxito, a fórmula OnSuccess do formulário é executada e a função Back() abre o ecrã de detalhes e mostra o registo atualizado.
  • Se as alterações não forem guardadas, a fórmula OnFailure do formulário é executada, mas não altera nada porque está em branco. O ecrã Edit and Create permanece aberto, para que o utilizador possa cancelar as alterações ou corrigir o erro. LblFormError1 mostra uma mensagem de erro ao utilizador, para a qual a propriedade Error (Erro) do formulário está definida.

Tal como com um controlo de Apresentar formulário, um controlo de Editar formulário que contém controlos de Cartão, que contêm outros controlos que mostram diferentes campos num registo:

Editar cartão e controlos de cartão selecionados na experiência de criação.

Na imagem anterior, o cartão selecionado mostra o campo AssetID e contém o controlo de Entrada de texto, de modo a que o utilizador possa editar o valor deste campo. (Por outro lado, o ecrã de detalhes mostra o mesmo campo num controlo de etiqueta, que é só de leitura.) O controlo de introdução de texto tem uma propriedade predefinida, que é definida como Parent.Default. Se o utilizador estivesse a criar um registo e não a editá-lo, este controlo mostraria um valor inicial que o utilizador poderia alterar no registo novo.

No painel do lado direito, pode mostrar ou ocultar cada cartão, reordená-los ou configurá-los para mostrarem campos em diferentes tipos de controlos.

Ecrã de edição com o painel de opções aberto.

Criar uma aplicação de raiz

Ao compreender de que forma é que o Power Apps gera aplicações, pode criar a sua própria aplicação que utilize os mesmos blocos modulares e fórmulas abordados anteriormente neste tópico.

Identificar dados de teste

Para tirar o máximo proveito deste tópico, comece com uma origem de dados com que possa experimentar. Deve conter os dados de teste que possa ler e atualizar sem preocupações.

Nota

Se utilizar uma lista criada utilizando Listas Microsoft, uma biblioteca do SharePoint ou uma tabela do Excel que contenha nomes de colunas com espaços, o Power Apps substitui os espaços por "_x0020_". Por exemplo, o "Nome da Coluna" no SharePoint ou no Excel aparecerá como "Column_x0020_Name" no Power Apps, quando apresentado no esquema de dados ou utilizado uma fórmula.

Para seguir o resto do tópico à letra, crie uma lista com o nome “Ice Cream” e que contenha os dados abaixo:

Lista Ice Cream.

  • Crie uma aplicação do zero, para telemóveis, e ligue-a à sua origem de dados.

    Nota

    As aplicações para tablet são muito semelhantes, mas poderá querer utilizar um esquema de ecrã diferente para aproveitar ao máximo o espaço extra no ecrã.

    Os exemplos no resto do tópico baseiam-se numa origem de dados denominada Ice Cream.

Procurar registos

Para obter informações rapidamente num registo, encontre-o num ecrã de galeria ou de procura.

  1. Adicione uma galeria Vertical e altere o esquema para Title (Título) apenas.

    Adicionar galeria vertical.

  2. Defina a propriedade Items da galeria como Ice Cream.

  3. Defina a propriedade Text da primeira etiqueta da galeria como ThisItem.Title, se tiver outra definição.

    A etiqueta mostra agora o valor no campo Title de cada registo.

    Etiqueta atualizada.

  4. Redimensione a galeria para que se ajuste ao ecrã e defina a respetiva propriedade TemplateSize como 60.

    O ecrã é parecido com o exemplo abaixo, que mostra todos os registos da origem de dados:

    Galeria ligada à origem de dados Ice Cream.

Ver detalhes

Se a galeria não mostrar as informações que pretende, selecione a seta de um registo para abrir o ecrã de detalhes. O controlo de Apresentar formulário neste ecrã mostra mais campos, possivelmente todos, relativos ao registo que selecionou.

O controlo de Apresentar formulário utiliza duas propriedades para apresentar o registo:

  • Propriedade DataSource. O nome da origem de dados que contém o registo. Esta propriedade preenche o painel do lado direito com campos e determina o nome a apresentar e o tipo de dados (cadeia, número, data, etc.) de cada campo.
  • Propriedade Item. O registo a ser apresentado. Muitas vezes, esta propriedade está ligada à propriedade Selected do controlo de Galeria, para que o utilizador possa selecionar um registo no controlo de Galeria e, depois, vê-lo em detalhe.

Quando a propriedade DataSource é definida, pode adicionar e remover campos através do painel do lado direito e alterar a forma como são apresentados.

Neste ecrã, os utilizadores não podem alterar nenhum valor do registo, intencional ou acidentalmente. O controlo de Apresentar formulário é um controlo só de leitura, pelo que não irá modificar nenhum registo.

Para adicionar um controlo de Apresentar formulário:

  1. Adicione um ecrã e acrescente um controlo de Apresentar formulário ao mesmo
  2. Defina a propriedade DataSource do controlo de formulário como “Ice Cream”.

No painel do lado direito, pode selecionar os campos a apresentar no seu ecrã e qual o tipo de cartão a apresentar para cada campo. À medida que faz alterações no painel do lado direito, a propriedade DataField de cada controlo de Cartão é definida como o campo com o qual o utilizador vai interagir. O ecrã deverá ser parecido com este exemplo:

Novo ecrã de "Ice Cream".

Por fim, temos de ligar o controlo de Apresentar formulário ao controlo de Galeria, para que possamos ver os detalhes de um registo específico. Assim que concluirmos a definição da propriedade Item, o primeiro registo da galeria aparece no nosso formulário.

  • Defina a propriedade Item do controlo de Apresentar formulário como Gallery1.Selected.

    Os detalhes do item selecionado são apresentados no formulário.

    Apresentar formulário para a origem de dados Ice Cream, ligada ao controlo Galeria.

Ótimo! Vamos agora ver a navegação: como é que o utilizador pode abrir o ecrã de detalhes a partir do ecrã de galeria e abrir o ecrã de galeria a partir do ecrã de detalhes.

  • Adicione um controlo de Botão ao ecrã, defina a propriedade Text para mostrar Back e a propriedade OnSelect como Back().

    Esta fórmula encaminha o utilizador novamente para a galeria quando acaba de ver os detalhes.

    Apresentar formulário para a origem de dados Ice Cream com botão “Anterior”.

Agora, vamos voltar ao controlo de Galeria e adicionar a navegação ao nosso ecrã de detalhes.

  1. Mude para o primeiro ecrã, que aloja o controlo de Galeria, e selecione a seta no primeiro item da galeria.

  2. Defina a propriedade OnSelect da forma como esta fórmula:
    Navigate( Screen2, None )

    Apresentar formulário para a origem de dados Ice Cream com atualização do botão Anterior com Navegar.

  3. Prima F5 e selecione uma seta na galeria para mostrar os detalhes de um item.

  4. Selecione o botão Back (Anterior) para regressar à galeria de produtos e prima Esc.

Editar os detalhes

Por fim, a última grande tarefa que temos de fazer é alterar os conteúdos de um registo, que o utilizador pode fazer no controlo de Editar formulário.

O controlo de Editar formulário utiliza duas propriedades para apresentar e editar o registo:

  • Propriedade DataSource. O nome da origem de dados que contém o registo. Tal como sucede com o controlo Apresentar formulário, esta propriedade preenche o painel do lado direito com campos e determina o nome a apresentar e o tipo de dados (cadeia, número, data, etc.) de cada campo. Esta propriedade também determina se o valor de cada campo é válido antes de submetê-lo à origem de dados subjacente.
  • Propriedade Item. O registo a ser editado, que está muitas vezes ligado à propriedade Selected do controlo de Galeria. Desta forma, pode selecionar um registo no controlo de Galeria, apresentá-lo no ecrã de detalhes e editá-lo no ecrã Edit and Create.

Para adicionar um controlo de Editar formulário:

  1. Adicione um ecrã, acrescente um controlo de Editar formulário e defina a propriedade DataSource do formulário como “Ice Cream”.
  2. Defina a propriedade Item como Gallery1.Selected.

Pode agora selecionar os campos a apresentar no ecrã. Também pode selecionar que tipo de cartão apresentar para cada campo. À medida que faz alterações no painel do lado direito, a propriedade DataField de cada controlo de Cartão é definida como o campo com o qual o utilizador vai interagir. O ecrã deverá ser parecido com este exemplo:

Apresentar formulário para a origem de dados Ice Cream.

Estas duas propriedades são iguais às propriedades no controlo Apresentar formulário. E são suficientes para apresentarmos os detalhes de um registo.

O controlo de Editar formulário vai ainda mais longe, oferecendo a função SubmitForm para escrever as alterações na origem de dados. Esta função é utilizada com um controlo Botão ou image, que vai permitir guardar as alterações do utilizador.

  • Adicione um controlo de Botão, defina a respetiva propriedade Texto para mostrar Guardar e definir a respetiva propriedade OnSelect para esta fórmula:
    SubmitForm( Form1 )

Editar formulário para a origem de dados Ice Cream.

Para adicionar a navegação de e para este ecrã:

  1. Adicione outro controlo de Botão e defina a propriedade Text para mostrar Cancelar e a propriedade OnSelect como esta fórmula:
    ResetForm( Form1 ); Back()

    Esta fórmula elimina todas as edições não guardadas e abre o ecrã anterior.

    Ecrã atualizado.

  2. Defina a propriedade OnSuccess do formulário como Back().

    Quando as atualizações são guardadas com êxito, o ecrã anterior (neste caso, o ecrã detalhes) abre-se automaticamente.

    Editar formulário com a regra "OnSuccess" adicionada

  3. No ecrã Display (Apresentar), adicione um botão e defina a propriedade Text para mostrar Edit e a propriedade OnSelect como esta fórmula:
    Navigate( Screen3, None )

    Propriedade de texto atualizada.

Criou uma aplicação básica com três ecrãs para ver e introduzir dados. Para a experimentar, mostre o ecrã da galeria e prima F5 (ou selecione o botão “Preview” (“Pré-visualizar”) de seta para a frente, junto ao canto superior esquerdo do ecrã). O ponto cor-de-rosa indica onde é que o utilizador clica ou toca no ecrã em cada passo.

Experimentar a aplicação Ice Cream.

Criar um registo

O utilizador interage com o mesmo formulário Editar para atualizar e criar registos. Quando quer criar um registo, a função NewForm muda o formulário para o modo New.

Quando o formulário está no modo New, o valor de cada campo é definido como as predefinições da origem de dados. O registo fornecido para a propriedade Item do formulário é ignorado.

Quando o utilizador está pronto para guardar o registo novo, é executado SubmitForm. Após a submissão bem-sucedida, o formulário muda novamente para EditMode.

No primeiro ecrã, vai adicionar um botão New:

  1. No ecrã que tem a galeria, adicione um controlo de Botão.

  2. Defina a propriedade Text do botão como New e a propriedade OnSelect como esta fórmula:
    NewForm( Form1 ); Navigate( Screen3, None )

    Esta fórmula muda o controlo de Editar formulário em Screen3 para o modo New e abre este ecrã, para que o utilizador o possa preencher.

Editar formulário atualizado.

Quando o ecrã Edit and Create se abre, o formulário está vazio e pronto para o utilizar começar a adicionar itens. Quando o utilizador seleciona o botão Save, a função SubmitForm assegura que é criado um registo e não atualizado. Se o utilizador selecionar o botão Cancel (Cancelar), a função ResetForm muda o formulário para o modo Edit e a função Back abre o ecrã para navegar na galeria.

Eliminar um registo

  1. No ecrã Display, adicione um botão e defina a respetiva propriedade Text para mostrar Delete (Eliminar).

  2. Defina a propriedade OnSelect do botão como esta fórmula:
    Remove( 'Ice Cream', Gallery1.Selected ); Back()

    Remover um registo.

Processar erros

Nesta aplicação, ocorrem erros se o valor de um campo não for válido, se um campo obrigatório estiver em branco, se o utilizador não estiver ligado à rede ou quando surgem diversos outros problemas.

Se SubmitForm falhar por algum motivo, a propriedade Error do controlo de Editar formulário contém uma mensagem de erro, que é mostrada ao utilizador. Com esta informação, o utilizador deverá conseguir corrigir o problema e voltar a submeter a alteração. Em alternativa, pode cancelar a atualização.

  1. No ecrã Edite and Create, adicione um controlo de Etiqueta e mova-o para baixo do botão Save . Será mais fácil ver qualquer erro depois de o utilizador selecionar este controlo para guardar as alterações.

  2. Defina a propriedade Text do controlo de Etiqueta para mostrar Form1.Error.

    Apresentar formulário com o botão "Editar" adicionado

Nas aplicações que o Power Apps gera a partir de dados, a propriedade AutoHeight (AlturaAutomática) neste controlo está definida como verdadeira, para que não seja consumido espaço caso não ocorram erros. As propriedades Height (Altura) e Y do controlo de Editar formulário também são ajustadas dinamicamente, para dar resposta ao aumento deste controlo em caso de erro. Para obter mais detalhes, gere uma aplicação a partir de dados existentes e analise estas propriedades. Se não tiverem ocorrido erros, o controlo de caixa de texto para os erros é muito pequeno, pelo que poderá ter de abrir a vista Advanced (Avançada), disponível no separador View (Ver), para o selecionar.

Editar formulário de aplicação a partir de dados com controlo de texto de erro selecionado.

Editar formulário de aplicação a partir de dados com controlo de formulário selecionado.

Atualizar dados

A origem de dados é atualizada sempre que o utilizador abre a aplicação, mas este poderá querer atualizar os registos na galeria sem fechar a aplicação. Adicione um botão Refresh (Atualizar), para que o utilizador o possa selecionar e atualizar os dados manualmente:

  1. No ecrã que tem o controlo de Galeria, adicione um controlo de Botão e defina a respetiva propriedade Text para mostrar Refresh.

  2. Defina a propriedade OnSelect deste controlo como esta fórmula:
    Refresh( 'Ice Cream' )

    Atualizar a origem de dados.

Na aplicação que o Power Apps gerou a partir dos dados, não abordámos dois controlos que aparecem na parte superior do ecrã Browse (Procurar). Com estes controlos, o utilizador pode procurar um ou mais registos, ordenar a lista de registos por ordem ascendente ou descendente ou realizar ambas as ações.

Ordenar e procurar controlos no ecrã de procura.

Quando o utilizador seleciona o botão de ordenação, a sequência de ordenação da galeria é invertida. Para criar este comportamento, utilizamos uma variável de contexto para controlar o sentido da ordenação da galeria. Quando o utilizador seleciona o botão, a variável é atualizada e o sentido invertido. A propriedade OnSelect do botão de ordenação é definida como esta fórmula: UpdateContext( {SortDescending1: !SortDescending1} )

A função UpdateContext cria a variável de contexto SortDescending1, se esta ainda não existir. A função irá ler o valor da variável e defini-la como a lógica oposta ao utilizar o operador ! operador. Se o valor for verdadeiro, torna-se falso. Se o valor for falso, torna-se verdadeiro.

A fórmula para a propriedade Items do controlo de Galeria utiliza esta variável de contexto, juntamente com o texto no controlo TextSearchBox1:

Sort( 
    If( IsBlank(TextSearchBox1.Text),
        Assets,
        Filter( Assets, TextSearchBox1.Text in Text(ApproverEmail) ) 
    ),
    ApproverEmail,
    If(SortDescending1, Descending, Ascending) 
)

Vamos ver em detalhe:

  • Do lado de fora, temos a função Sort, que assume três argumentos: uma tabela, um campo no qual ordenar e o sentido pelo qual ordenar.

    • O sentido da ordenação é retirado da variável de contexto que é mudada quando o utilizador seleciona o controlo de ImageSortUpDown1. O valor verdadeiro/falso é traduzido nas constantes Descending (Descendente) e Ascending (Ascendente).
    • O campo no qual ordenar é afixado em ApproverEmail (E-mailDoAprovador). Se alterar os campos que aparecem na galeria, também tem de alterar este argumento.
  • Do lado de dentro, temos a função Filtrer, que assume uma tabela como argumento e uma expressão para ser avaliada relativamente a cada registo.

    • A tabela é a origem de dados Assets, que é o ponto de partida antes de filtrar ou ordenar.
    • A expressão procura uma instância da cadeia em TextSearchBox1 dentro do campoApproverEmail. Mais uma vez, se alterar os campos que aparecem na galeria, também tem de atualizar este argumento.
    • Se TextSearchBox1 estiver vazio, o utilizador quer mostrar todos os registos e a função Filter é ignorada.

Este é apenas um exemplo. Pode desenhar a sua própria fórmula para a propriedade Items, dependendo das necessidades da sua aplicação, mediante a composição das funções Filter e Sort, bem com de outras funções e operadores em conjunto.

Design dos ecrãs

Até ao momento, ainda não abordámos outras formas de distribuir controlos pelos ecrãs. Isto deve-se ao facto de ter muitas opções e de a melhor seleção depender das necessidades específicas da sua aplicação.

Uma vez que o espaço nos ecrãs dos telemóveis é tão limitado, o mais provável é que queira procurar, apresentar e editar/criar em diferentes ecrãs. Neste tópico, as funções Navigate e Back abrem cada um dos ecrãs.

Nos tablets, pode procurar, apresentar e editar/criar em dois ecrãs ou até mesmo só num ecrã. Neste último caso, as funções Navigate e Back não são necessárias.

Se o utilizador estiver a trabalhar no mesmo ecrã, tem de ter cuidado para que ele não possa alterar a seleção na Galeria e, potencialmente, perder as edições no controlo de Editar formulário. Para o impedir de selecionar um registo diferente quando as alterações a outro registo ainda não foram guardadas, defina a propriedade Disabled (Desativado) da galeria como esta fórmula:
EditForm.Unsaved

Nota

Pode indicar-nos as suas preferências no que se refere ao idioma da documentação? Responda a um breve inquérito. (tenha em atenção que o inquérito está em inglês)

O inquérito irá demorar cerca de sete minutos. Não são recolhidos dados pessoais (declaração de privacidade).