Você está na página 1de 6

3/6/2014 VB 2008 - Prottipo para sistema de vendas

http://www.macoratti.net/08/05/vbn8_psv.htm 1/6
VB.NET 2008 - Prottipo para Sistema de Vendas com LINQ - I
Neste artigo eu vou procurar esclarecer algumas dvidas bsicas relacionadas com o tratamento de informaes localizadas em mltiplas
tabelas quais sejam:
Como criar um formulrio de busca;
Como selecionar um item em um formulrio e preencher os controles de outros formulrios com estes dados;
Como atualizar tabelas relacionadas;
Como Efetuar mltiplas operaes de atualizaes;
A novidade que eu pretendo fazer isso usando os recursos do LINQ to SQL.
Para poder tratar do assunto criei um pequeno prottipo de uma aplicao para registro de Vendas onde temos as seguintes entidades:
Clientes
Pedidos
Produtos
DetalhesPedidos
O relacionamento entre estas tabelas o seguinte:
Meu objetivo mostrar os procedimentos que devem ser feitos (naturalmente estou mostrando uma das possibilidades) para realizar a
operao de venda de um produto que envolve os seguintes passos:
Selecionar um Cliente cadastrado;
Selecionar um Produto cadastrado;
Definir a quantidade da venda;
Verificar o estoque;
Registrar a venda;
Atualizar a tabela de pedidos;
Atualizar a tabela de detalhes dos pedidos;
Atualizar a quantidade do estoque;
Calcular o total do pedido;
Ao lado temos o formulrio de Vendas onde sero realizadas
todas as operaes relacionadas.
Eu estou usando as seguintes ferramentas neste projeto:
Visual Basic 2008 Express Edition
SQL Server 2005 Express Edition
3/6/2014 VB 2008 - Prottipo para sistema de vendas
http://www.macoratti.net/08/05/vbn8_psv.htm 2/6
Foi criado o banco de dados JcmSoft.mdf contendo as tabelas: Clientes, Produtos, Pedidos e DetalhesPedidos. Os campos de cada
uma destas tabela pode ser visualizado na figura abaixo:
Vamos iniciar criando um novo projeto do tipo Windows Forms Application , Abrindo o VB 2008 Express e selecionando a opo File ->
New Project e informando nome do projeto como : Vendas.
Vamos criar uma fonte de dados usando a opo Data -> Add New Data Source do menu;
- A seguir selecione a opo DataBase e clique em Next>;
- Defina uma conexo com o banco de dados JcmSoft.mdf , clicando no boto New Connection e selecionando a conexo SQL Server e
a seguir o banco de dados, ao final clique em Next>;
- A seguir expanda os objetos Tables e selecione as tabelas relacionadas:
3/6/2014 VB 2008 - Prottipo para sistema de vendas
http://www.macoratti.net/08/05/vbn8_psv.htm 3/6
Aceite o nome padro dado ao DataSet e clique em Finish;
Voc ver na Janela Solution Explorer o dataset JcmSoftDataSet. Clique duas vezes sobre ele para visualizar a estrutura da fonte de
dados criada;
Note que temos definidas as chaves primrias , chaves estrangeiras e os relacionamentos entre as tabelas.
Eu criei este Data Source para poder criar os formulrios para cadastrar Clientes e Produtos. Poderia ter usado o LINQ mas como o meu
foco ser o formulrio de Vendas resolvi criar estes formulrios rapidamente j prontos com os recursos para incluir, alterar e excluir
dados.
Para criar o formulrio de Clientes , inclua um novo formulrio no projeto a partir do menu Project opo Add Windows Forms, e
informe o nome Clientes.vb.
A seguir abra a janela Data Sources e no dataset selecione a tabela Clientes alterando o seu modo de apresentao para Details. Aps
isso arraste e solte a tabela no formulrio Clientes.vb.
Sero criados os controles vinculados, os recursos para navegao e as funcionalidades para incluir, alterar e excluir dados.
3/6/2014 VB 2008 - Prottipo para sistema de vendas
http://www.macoratti.net/08/05/vbn8_psv.htm 4/6
Para criar o formulrio de Produtos , inclua um novo formulrio no projeto a partir do menu Project opo Add Windows Forms, e
informe o nome Produtos.vb.
A seguir abra a janela Data Sources e no dataset selecione a tabela Produtos alterando o seu modo de apresentao para Details. Aps
isso arraste e solte a tabela no formulrio Produtos.vb.
Sero criados os controles vinculados, os recursos para navegao e as funcionalidades para incluir, alterar e excluir dados.
Com isso j podemos cadastrar produtos e clientes que sero usados para registrar as vendas de produtos.
Vamos preparar o ambiente para usar os recursos do LINQ To SQL. No menu Project selecione a opo Add new Item e na janela
Templates selecione o item LINQ To SQL Classes informando o nome JcmSoft.dbml e clicando em Add;
3/6/2014 VB 2008 - Prottipo para sistema de vendas
http://www.macoratti.net/08/05/vbn8_psv.htm 5/6
Neste momento ser exibida a janela do descritor Objeto Relacional. Expanda os objetos do banco de dados JcmSoft.mdf e selecione
as tabelas Clientes, DetalhesPedidos, Pedidos e Produtos arrastando e soltando na janela Object Relational Designer;
As tabelas do banco de dados sero mapeadas como classes (campos como propriedades, procedures e funes como mtodos) e voc
ter no Descritor as classes que representam os objetos do banco de dados; Cada propriedade definida em cada objeto esta mapeada
para cada coluna de cada tabela.
O arquivo JcmSoft.dbml contm o arquivo XML com informaes sobre o leiaute das tabelas que foram mapeadas e tambm o descritor
contendo as classes geradas pelo mapeamento. Aps encerrar o mapeamento voc j ter acesso aos recursos do LINQ To SQL com
direito a intellisense completo das informaes referente as tabelas mesmo sem conhecer nada sobre elas.
Se voc observar as propriedades do DataContext gerado ir perceber que o nome dado ao contexto JcmSoftDataContext e ver
tambm a conexo com o banco de dados JcmSoft.mdf
3/6/2014 VB 2008 - Prottipo para sistema de vendas
http://www.macoratti.net/08/05/vbn8_psv.htm 6/6
O Banco de dados mapeado em um objeto DataContext permitindo acesso a tabelas de forma transparente sem termos que nos
preocupar com conexo. Teremos que apenas usar os recursos do LINQ To SQL.
O DataContext o responsvel por gerar as instrues SQL da sua linguagem de consulta e ento mapear as linhas de dados retornadas a
partir do seu banco de dados para objetos.
Neste momento temos o ambiente pronto para usar os recursos do LINQ. Na segunda parte do artigo eu vou criar os formulrios de
consulta e de menu da aplicao para em seguida criar o formulrio de vendas onde sero realizadas as operaes de atualizaes das
tabelas.
Aguarde: VB.NET 2008 - Prottipo para Sistema de Vendas com LINQ - II
Eu sei , apenas VB .NET , mas eu gosto...
Jos Carlos Macoratti