msdn13_capa.gif

Clique aqui para ler todos os artigos desta edição

Menus Dinâmicos em
Visual Basic.Net

por Roberto Lopes

Este artigo discute

Este artigo usa as seguintes tecnologias:

·          Criação de Menus Dinâmicos

·          Instruções SQL

·          Acesso a banco de dados

VB.NET, SQL

 

Download:

fonteMenusDinamicos.zip (62KB)

Chapéu

Menus

 

 

O objetivo deste artigo é mostrar como criar menus de modo dinâmico, customizado e em tempo de execução. O .Net permite isto sem a necessidade de recorrer à API do Windows ou à alternativa de criar todas as opções possíveis de menu e, via código, ocultar ou exibir as opções adequadas ao contexto.  Provavelmente esta última tenha sido a alternativa mais utilizada, pois era mais fácil e rápida para o desenvolvimento e manutenção dos programas.

 

Definindo o projeto

O programa possui dois formulários e duas classes, sendo uma específica para a manutenção dos itens/sub-itens de menu e a outra para usuários. Também possui um banco de dados Access para armazenar os dados dos usuários e os itens/sub-itens de menu que cada usuário tem acesso. Quando o programa for carregado ou o usuário desconectar-se, as opções de menu para o usuário “Default” deverão ser carregadas do banco de dados. No exemplo, os itens Default criados são: Menu Arquivo contendo os sub-itens Conectar e Sair.

Os menus e itens não terão controle por usuário, mas sim por grupos. Deste modo, todas as opções de menu foram cadastradas para um grupo. Cada usuário deve obrigatoriamente pertencer a um grupo de usuários, identificando assim quais opções de menu a que ele tem direito. Portanto, quando o usuário se “autenticar” no sistema, as opções de menu do grupo a que ele pertence serão obtidas do banco de dados e o menu será montado em tempo de execução.

 

Banco de Dados

O banco de dados MenuD.mdb contém quatro tabelas: Usuario, Grupo, Menu e MenuGrupo (conforme a Figura 1). No relacionamento das tabelas (Figura 2), cada usuário deverá estar associado a um grupo existente na tabela Grupo. A tabela MenuGrupo associa um grupo ao item de menu (tabela Menu) e a tabela Menu contém as estruturas de menu disponíveis aos grupos (conforme a Figura 3).

 

 

image002.jpg
Figura 1
. Tabelas Access

 

image004.jpg
Figura 2
. Modelo do banco MenuD.mdb

 

 

image006.jpg
Figura 3
. Tabela Menu

 

Para um melhor entendimento, veja o descritivo dos campos da tabela Menu (Tabela 1).

 

Tabela 1: Colunas da tabela Menu

Coluna

Descrição

MenuID

Identificador do item de menu (poderia ser do tipo AutoNumber)

ColunaID

Identifica a qual coluna do menu o item pertence. Usando o Visual Studio como exemplo, File seria a coluna 1, Edit a coluna 2, etc. Deste modo, todos os itens abaixo de File (inclusive), teriam o valor de ColunaID igual a 1

...

Quer ler esse conteúdo completo? Tenha acesso completo