VB.NET 2005 - Explorando a exibição Mestre-Detalhe


Olhe bem para a tela da figura abaixo. Nela você vê uma aplicação exibindo um formulário no formato Mestre-Detalhes onde para cada registro da tabela Categories do Banco de dados Northwind.mdb são exibidos os detalhes da tabela Products.

Note que estamos exibindo a imagem da categoria, e, que nos detalhes estamos exibindo o nome do fornecedor em uma Combobox.


Observe também o menu de navegação onde você tem as seguintes opções:
 
  • Navegar pelos registros (primeiro,anterior,próximo e último)
  • Informação do registro atual e do número total de registros
  • Botões com ícones e dicas com texto para : incluir , excluir, salvar e encerrar a aplicação.

E se eu lhe disser que tudo isto foi obtido usando os novos recursos do  Visual Basic 2005 Express com o recurso de assistentes, e, onde não foi preciso digitar uma única linha de código você acreditaria ?  Não !!!!  Então acompanhe o artigo que eu vou te convencer...

Nota: Para saber com obter o Visual Basic 2005 Express acompanhe o artigo : Meu primeiro contato com o VB 2005

Criando uma aplicação Mestre-Detalhes no VB 2005 Express sem digitar uma única linha de código

Para acompanhar este artigo você vai precisar :

1- Inicie o Visual Basic 2005 Express. Clique na opção Create New Project e na janela New Project selecione o template Windows Application informando o nome mestreDetalhes2005 da caixa de texto Name:

Estando no modo Design selecione a guia Data Sources e a seguir clique no link :
Add New DataSource

Isto permitirá configurar o acesso aos dados da nossa aplicação.

Na janela - Data Source Configuration Wizard -
Selecione a opção DataBase e clique no botão Next>

Poderíamos fazer a configuração para um Web Service ou para um Object.

Na próxima janela clique na opção - New Connection - pois iremos configurar uma nova conexão com nossa fonte de dados:(ver abaixo)

A seguir vamos incluir uma nova conexão usando o banco de dados Northwind.mdb:(Você pode usar qualquer fonte de dados)

Clique no Botão Change pois vamos alterar o Data Source para acessar um banco de dados Access visto que o padrão é o acesso ao SQL Server.

Em (1) alteramos o Data Source para Microsoft Access Database File

Em (2) indicamos a localização do banco de dados, no meu caso é : d:\teste\Northwind.mdb (no seu caso deve ser diferente)

Voltando a janela de configuração do Data Source teremos a indicação do nosso banco de dados e a string de conexão usada no projeto.(veja figura abaixo) Clique a seguir no botão Next>

Ao clicar no botão Next> o VB irá exibir uma janela de diálogo, conforme abaixo, perguntando se você deseja copiar o arquivo de banco de dados para o seu projeto. Apenas clique em Sim.

Na próxima janela do assistente , deixe a opção Yes marcada para salvar a string de conexão no arquivo de configuração e clique em Next>.

Na janela a seguir devemos marcar as tabelas que vamos usar no projeto deste artigo, as quais são:

Após isto clique no botão Finish.

Na janela Solution Explorer , ao clicarmos na guia Solution Explorer, teremos uma visão da nossa solução. O arquivo NorthwindDataSet.xsd representa as tabelas usadas na nossa aplicação. Se clicarmos duas vezes sobre ele teremos uma visão das tabelas e seus relacionamentos conforme figura abaixo.

Relacionamento entre as tabelas do dataset representadas no arquivo NorthwindDataSet.xsd

Podemos selecionar uma tabela e na janela de Properties alterar alguns dos seus valores.

Iremos alterar a propriedade Caption para os campos da tabela Categories para que sejam exibidos em português no formulário.

Para fazer esta alteração selecione a tabela Categories e clique sobre o campo que deseja alterar; na janela de propriedades faça a alteração da propriedade Caption conforme ao lado

Selecione novamente o formulário e na janela Solution Explorer clique na guia Data Source. Iremos ver as tabelas do DataSet do projeto. Vamos alterar o tipo de campo para o campo Picture (que contém a foto da categoria) clicando sobre ele, e, a seguir selecionando a opção PictureBox, conforme abaixo:

Ainda na guia DataSource vamos arrastar os campos da tabela Categories para o formulário conforme o layout abaixo. Esta ação cria a Barra de Navegação com as opções padrão : incluir, excluir e salvar dados além da navegação pelos registros.

Agora vamos arrastar a tabela Products para o formulário conforme abaixo. Será incluído um controle DataGridView exibindo todas as colunas da tabela Products.

Estas operações incluem no formulário os componentes não visuais abaixo:

Vamos configurar o DataGridView para exibir somente alguns campos da tabela, alterar o nome de exibição destes campos e alterar o formato do campo fornecedor para ComboBox. Para isto selecione o DataGridView e clique com o botão direito do mouse selecionando a opção : Edit Columns.

Vamos exibir somente os campos Nome do Produto, Fornecedor, Quantidade e Preço, removendo os demais campos. Aproveitando a ocasião vamos alterar a sua propriedade HeaderText para exibir o nome em português conforme abaixo:

Agora vamos configurar a coluna Fornecedor para que exiba o nome do Fornecedor em uma Combobox. Para isto selecione a coluna Fornecedor e altere sua propriedade ColumnType para : DataGridViewComboBoxColumn.

A seguir na guia Data vamos informar os valores para as propriedades DataSource, DisplayMember e ValueMember, conforme abaixo:

Alterando a propriedade ColumnType para DataGridViewComboboxColumn Alterando os valores para DataSource, DisplayMember e ValueMember

Vamos incluir mais um detalhe na nossa aplicação:  Um botão de opção no Menu para encerrar aplicação.

Para isto clique com o botão direito do mouse sobre a Barra de Navegação e no menu suspenso selecione Button. Um novo botão será incluído na barra de navegação. Clicando no botão podemos configurar seu ícone na janela de propriedades alterando sua propriedade Image, e, seu texto alterando a propriedade Text.

Abaixo o código associado ao evento Click do botão btnSair que incluímos na barra de navegação.

Private Sub btnSair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnsair.Click

     Me.Close()

End Sub

 

Agora, ao executar o projeto você obterá o resultado já mostrado no início deste artigo:

Sem ter digitado um única linha de código. Convencido agora ????

Até mais ver ...


José Carlos Macoratti