Criar um componente para Menu Lateral - Exceldriven

Criar um componente para Menu Lateral

Neste artigo mostro-te como podes criar através de um componente um Menu Lateral! Vamos lá?

Neste artigo vou mostrar-te como podes criar através de um componente um Menu Lateral com design e estrutura que podes reutilizar ao longo de uma aplicação ou em qualquer aplicação. Trata-se de um modelo de menu que tem a particularidade de ser interativo e reutilizável!

Não percas aqui o cenário de exemplo que partilho contigo, assim como o processo passo a passo. Se tiveres alguma dúvida, envia-nos a uma mensagem... ficamos à tua espera!



Iniciar a aplicação e o Design do Componente

Começamos por iniciar uma aplicação nova, onde vamos incluir um componente que será o menu lateral para todos os ecrãs da aplicação.

Começamos então por iniciar a aplicação que será uma aplicação de tela.

img_01.png

Damos o nome à aplicação, e pressionamos o botão Criar.

img_02.png

De seguida criamos o componente e damos o nome ao mesmo de “Menu”. Podes aplicar uma cor de fundo à escolha no menu e começa por definir a propriedade da altura do menu. A altura é dinâmica e definida em função da altura de um dos ecrãs da aplicação.

Height: Max(App.Height; App.MinScreenHeight)

img_03.png

Definir a primeira propriedade do componente

A primeira propriedade do menu vai ser a largura do mesmo. Vamos criar uma propriedade de Saída que emite dados do componente a serem utilizados pela aplicação.

img_04.png

De seguida inserimos um ícone que vai definir a variável para a propriedade de saída do componente.

img_05.png

No ícone, colocamos as seguintes propriedades:

  • X: 0
  • Y: 0
  • Width: 70
  • Height: 70
  • PaddingTop; PaddingLeft; PaddingBottom; PaddingRight: 10

E na propriedade OnSelect definimos uma variável.

Set(varExpandir;!varExpandir)

Esta variável é uma variável Booleana, que significa que, ativa ou desativa ao pressionar o ícone. Esta opção é possível através do caracter “!”.

Agora acedemos ao nosso componente, e à propriedade LarguraMenu que foi criada. Esta propriedade vai receber a nossa variável.

img_06.png

E agora definimos a largura do componente…

img_07.png

Em resumo:

  1. Definimos uma propriedade de saída para o componente: LarguraMenu que é do tipo numérico.
  2. O valor da propriedade é definido por uma variável, que é um valor Booleano, mas cujo resultado é um número, de acordo com o tipo de dados da propriedade – 250 ou 80.
  3. A largura do componente (propriedade Width) recebe o valor que a variável tem definida.

Definir a segunda propriedade do componente

A segunda propriedade do componente será uma tabela com dados. Esta tabela vai conter a informação do menu, e por isso, idealmente é uma tabela com registos. A tabela será a propriedade Itens de uma Galeria, que de uma forma dinâmica vai apresentar os valores do menu. Vamos então definir esta propriedade.

img_08.png

Acedendo à propriedade do componente, podemos ver o código e a função Table, que tem um registo base.

img_09.png

Nesta propriedade aplicamos o seguinte código que define os registos da tabela.

  • Um registo com o Nome do menu (NomeMenu) e o respetivo valor.
  • Um registo com o ecrã para o menu, que no final do artigo vamos mudar para o ecrã específico, mas para já será o ecrã atual (ActiveScreen)
  • Um registo que representa um ícone.
Table(
    {
        NomeMenu: "HOME";
        EcraMenu: App.ActiveScreen;
        IconMenu: Icon.Home
    };
        {
        NomeMenu: "CLIENTES";
        EcraMenu: App.ActiveScreen;
        IconMenu: Icon.People
    };
        {
        NomeMenu: "PROPOSTAS";
        EcraMenu: App.ActiveScreen;
        IconMenu: Icon.Calculator
    };
        {
        NomeMenu: "ADMINISTRAÇÃO";
        EcraMenu: App.ActiveScreen;
        IconMenu: Icon.ToolsWrench
    }
)

Vamos então agora inserir a Galeria que vai conter os dados:

img_10.png

Vamos personalizar a galeria com as seguintes propriedades:

  • X = 0
  • Y = 0
  • Width = Parent.Width (que é a largura do componente)
  • Height = Parent.Height – 70
  • TemplateSize = 80
  • Itens = Menu.ItensMenu

A propriedade Itens, vai receber a propriedade personalizada do componente.

img_11.png

 

Vamos agora colocar alguns controlos na Galeria, começando pelo ícone.

Inserimos um ícone à escolha e definirmos as seguintes propriedades:

  • X = 5
  • Y = (Parent.TemplateHeight - Self.Height) / 2
    • Esta opção permite alinhar o ícone no centro da célula principal da galeria (template)
  • Width: 60
  • Height: 60
  • PaddingTop; PaddingLeft; PaddingBottom; PaddingRight: 0
  • Icon = ThisItem.IconMenu
    • Esta opção irá obter o valor da tabela, que tem um registo que representa o ícone.

img_12.png

 

A seguir inserimos um uma Etiqueta de texto e definirmos as seguintes propriedades:

  • X = icoMenu.X + icoMenu.Width + 10
  • Y = (Parent.TemplateHeight - Self.Height)/2
  • Width = Parent.Width - Self.X – 10
  • Text = ThisItem.NomeMenu

  img_13.png

E inserimos também um Retângulo, para selecionar os itens da galeria, com as seguintes propriedades:

  • Fill = Color.Transparent
  • Height = Parent.TemplateHeight
  • Width = Parent.TemplateWidth
  • OnSelect = Navigate(ThisItem.EcraMenu; ScreenTransition.Fade)

img_14.png

Adaptar o menu à aplicação

Agora que temos o design do menu e as propriedades definidas, vamos adaptar o menu à aplicação.

Acedemos aos ecrãs e começamos por adicionar 3 novos ecrãs.

img_15.png

Para cada 1 dos 4 ecrãs damos o nome:

  • HOME
  • CLIENTES
  • PROPOSTAS
  • ADMINISTRAÇÃO

Para identificarmos cada ecrã, vamos apenas colocar uma Etiqueta de Texto com o nome de cada ecrã.

img_17.png

Para cada um dos 4 ecrãs adicionamos agora também o controlo personalizado que será o nosso menu lateral.

img_18.png

E renomeamos o controlo para cada um dos ecrãs.

img_19.png

O menu está posicionado, mas ainda não está funcional, pois se bem nos recordamos, os itens da propriedade do menu apontam para o ecrã atual.

Table(
    {
        NomeMenu: "HOME";
        EcraMenu: App.ActiveScreen;
        IconMenu: Icon.Home
    };

​​​​​​​

Assim nas propriedades do componente, temos que definir agora o ecrã para onde aponta cada um dos menus.

img_20.png

E como podemos verificar, alterações feitas no componente, refletem-se no controlo inserido na aplicação!

img_21.png

Agora que temos o componente, podemos adicionar mais algumas alterações a gosto.

Podemos por exemplo colocar o retângulo por trás de todos os elementos e aplicar uma cor de acordo com o nome do menu selecionado.

If(App.ActiveScreen.Name = ThisItem.NomeMenu; ColorFade(Menu.Fill; 0,8); Color.Transparent)

Podemos também aplicar o link para o ecrã, clicando em qualquer um dos elementos da galeria (icon e texto)

Navigate(ThisItem.EcraMenu; ScreenTransition.Fade)

Outros conteúdos relevantes:

Power BI Desktop: Usar o Filtro de Pormenorização!

Power BI Desktop: Usar o Filtro de Pormenorização!

Neste novo vídeo, vou mostrar-te uma das ferramentas mais interessantes que o Power BI Desktop fornece: o Filtro de Pormenorização (Drillthrough). Vamos lá?

Continuar a ler...

Como importar dados de uma pasta para o Microsoft Excel (Power Query)?

Como importar dados de uma pasta para o Microsoft Excel (Power Query)?

Neste vídeo tutorial, vou mostrar-vos como podem utilizar um comando muito simples, do Power Query, para importar para uma única tabela dados provenientes de uma pasta!

Continuar a ler...

 

Pesquisar


Consulte aqui os últimos artigos publicados no nosso blog!

Aceda aqui ao nosso blog!


Consulte aqui os últimos vídeos publicados no nosso canal do Youtube!

Aceda aqui ao nosso arquivo!

Assista, ouça, pratique e aprenda!

Na nossa oferta, disponibilizamos cursos intensivos que lhe dão um conhecimento alargado dos programas, dependendo dos seus objetivos e nível de conhecimento. Para além disso, dispomos também de cursos on-demand que tem, entre outros aspetos, têm como principal objetivo ajudá-lo a resolver problemas específicos do dia-a-dia, sem ter necessidade de assistir a um curso completo.

Aprenda a maximizar o seu tempo e aumente a sua produtividade com a ferramenta mais utilizada em todo o mundo – o Microsoft Excel! Conheça a nossa oferta formação especializada e Ferramentas de Business Intelligence! Vamos lá?!

Microsoft Excel

Fique a conhecer as principais funcionalidades do Microsoft Excel, e ser autónomo no seu trabalho, temos um conjunto de cursos que o podem ajudar a chegar ao seu objetivo!

Veja aqui aos cursos disponíveis!

Business Intelligence

Passe ao próximo nível e conheça a nossa oferta de cursos especializados utilizando as potencialidades de Business Intelligence do Microsoft Excel, ou utilizando o Power Bi Desktop.

Veja aqui os cursos disponíveis!

VBA (Visual Basic for Applications)

Estenda as capacidades do Microsoft Excel, e controle quase a totalidade dos aspetos da aplicação, utilizando o VBA! Uma linguagem de programação à disposição de todos os utilizadores.

Veja aqui os cursos disponíveis!

Subscreva as nossas notícias e novidades!

Tem uma dúvida que gostava de ver esclarecida?

Contacte-nos através do seguinte formulário.

Pretendemos ajudá-lo a trabalhar, de forma eficiente, o Microsoft Excel e as Ferramentas Power Platform (Power BI, Power Apps e Power Automate).

O que pretendemos é que possa economizar tempo e aumentar a sua produtividade.

A nossa solução... uma oferta formativa de qualidade e em diversos modelos formativos, com conteúdos práticos, disruptivos e inovadores!

Consulte aqui todas as modalidades, ou contacte-nos para receber mais informações. Basta utilizar o formulário aqui disponível, ou o email geral@exceldriven.com. Até breve!

O que os nossos clientes dizem sobre nós?

Depoímentos

Excelente empresa a nível de formação. De realçar o formador Joao Teixeira, profissional 5 estrelas.
Bruno Matos -

Excelente formação, com conteúdos didáticos e exercícios adaptados ao nível dos formandos. Recomendo!
Pramod Maugi -

Excelente apresentação e organização da Formação em Excel Avançado
Balbina Zambujo -

Formação muito bem organizada e focada para as nossas necessidades. Recomendo.
Pedro Gomes -

O formador João Teixeira consegue tornar um assunto à partida monótono, em algo desafiante e cativante. Gostei imenso!
Maria Flores Macedo -

Boa tarde, Dou 5 estrelas pois o método de ensino é espetacular, as lições são muito bem sumarizadas, a interação entre o formador e o formando é eficaz possibilitando maior assimilação da matéria, e com o espaço para a resolução de exercícios tornam as aulas mais dinâmicas e proveitosas.
Yara Agostinho -

Os conteúdos são muito bem explicados. As dúvidas dissipadas em curto espaço de tempo.
Rui Filipe -

Excelente instrutor, muito bons treinamentos e aquisição de conhecimentos.
Eunice Ramalho -

Tive uma formação de excel fundamental via zoom e, apesar das limitações apresentadas por ser uma formação online, foi ministrada com grande êxito, tendo tido pleno aproveitamento.
Patricia Martins -