VB - Criando uma aplicação em 3 camadas - III
Na primeira parte deste artigo - VB - Criando uma aplicação em 3 camadas - falei da estrutura do projeto e de suas partes principais , vamos continuar agora mostrando como criar as classes do projeto.
Na segunda parte do artigo -VB - Criando uma aplicação em 3 camadas II - mostrei como criar as classes e o código do arquivo funcao.bas.
Para encerrar vou mostrar o restante do código da camada de apresentação ou seja do formulário - frm3camadas.
A camada de apresentação
Na primeira parte do artigo eu mostrei o código do evento Load do formulário da aplicação. Só para lembrar abaixo temos a figura do formulário da aplicação. Vou mostrar o código associado aos eventos do botões de comando e da listbox que mostram como acessar as classes e exibir os dados no formulário.
Na seção - General Declarations - temos a declaração das variáveis que devem ser vistas por todo o formulário:
Option
Explicit 'Declarações Dim Flag As Boolean Private mobjNegocios As CNegocios |
Código do evento Click do botão Incluir:
Este código apenas limpa as caixas de texto e habita os botões apropriados e defina a variável flag como True indicando que estamos no modo de inclusão.
Private
Sub cmdIncluir_Click() 'habilita campos para pode rincluir Call habilitaCampos 'Limpa todos os campos do formulario Call limpaCampos 'Habilita os botoes cancelar e salvar e desabilita o resto Call habilitaBotoes 'definimos uma variavel que sera usada para saber se estamos incluindo ou editando Flag = True txtNome.SetFocus End Sub |
Código do evento Click do botão Excluir:
Estou utilizando o método excluirEndereco usando uma instância da classe cNegocios. (A instância foi criada no evento Load do formulário : Set mobjNegocios = New CNegocios )
Private
Sub cmdExcluir_Click() 'verifica se algo na lista esta selecionado If lstEndereco.ListIndex = -1 Then ' nada selecionado MsgBox "Selecione um item da lista para excluir.", vbInformation, "Agenda Clientes" 'Seleciona algo Else ' se ha algo selecionado verifica se é este que o usuario quer excluir If MsgBox("Tem certeza de que deseja excluir " & """" & lstEndereco.Text & """", vbYesNo + vbInformation, "Agenda Clientes") = vbNo Then' se o usuario nao decide excluir sai Exit Sub ' caso contrario o exclui Else 'chamamos o metodo delete mobjNegocios.excluirEndereco (lstEndereco.ItemData(lstEndereco.ListIndex)) 'invoca o metodo load para atualizar a lista Form_Load End If End If 'verifica se excluimos algo , se sim então limpa os campos If lstEndereco.ListCount <= 0 Then Call limpaCampos Exit Sub Else 'caso contrario selecionar o primeiro na lista lstEndereco.Selected(0) = True End If End Sub |
Código do evento Click do botão Editar
O código habilita os botões apropriados e define a variável flag como False ,indicando que estamos em edição.
Private
Sub cmdEditar_Click() 'define a variavel flag como Flase pois não estamos incluindo Flag = False 'habilita todos so campos Call habilitaCampos 'habilita os botoes proprios Call habilitaBotoes 'define o foco no nome txtNome.SetFocus End Sub |
Código do evento Click do botão Salvar
Neste código usamos o método salvarEndereco da classe cNegocios.
Private
Sub cmdSalvar_Click() 'verifica se ha algo no campo nome se nao avisa o usuario If txtNome.Text = "" Then MsgBox "Informe o nome do cliente", vbInformation, "Agenda Clientes" Else 'caso contrario verifica se a varivel flag é true ou false para saber se estamos incluindo o editando If Flag = True Then 'estamos incluindo define o novo codigo do endereco como zero mobjNegocios.EnderecoID = 0 Else 'estamos atualizando entao avmos obter o codigo do item selecionado e atualiza os campos na base de dados mobjNegocios.EnderecoID = lstEndereco.ItemData(lstEndereco.ListIndex) End If 'para atualizar estamos usando as camadas. mobjNegocios.Nome = txtNome.Text mobjNegocios.Sobrenome = txtSobrenome.Text mobjNegocios.Endereco = txtEndereco.Text mobjNegocios.Cep = txtCep.Text mobjNegocios.Estado = cboEstado.Text mobjNegocios.Pais = cboPais.Text mobjNegocios.Telefone = txtTelefone.Text 'chama o metodo salvar mobjNegocios.SalvarEndereco 'defiine a flag como false novamente Flag = False 'chama o evento load para atualizar a lista Form_Load 'seleciona o primeiro da lista lstEndereco.Selected(0) = True End If End Sub |
O código do evento Click do controle ListBox - lstEndereco . Obtém o cliente selecionado e exibe seus dados nas caixas de Texto.
Private
Sub lstEndereco_Click() mobjNegocios.getEnderecoDetalhes lstEndereco.ItemData(lstEndereco.ListIndex) Me.txtNome.Text = mobjNegocios.Nome Me.txtSobrenome.Text = mobjNegocios.Sobrenome Me.txtEndereco.Text = mobjNegocios.Endereco Me.txtCep.Text = mobjNegocios.Cep Me.cboEstado.Text = mobjNegocios.Estado Me.cboPais.Text = mobjNegocios.Pais Me.txtTelefone.Text = mobjNegocios.Telefone End Sub |
Código do evento Click dos botões Cancelar e Fechar: desabilita os botões e sair da aplicação.
Private
Sub cmdCancelar_Click() 'desabilita todos os textbox e combobox Call desabilitaCampos 'desabilita os boteos salvar e cancelar Call desabilitaBotoes End Sub Private Sub
cmdFechar_Click() |
Agora basta você executar o projeto e testar o seu funcionamento. A idéia for mostrar como criar um aplicação com classes gerando aplicações em 3 camadas no VB acessando um base de dados Access.
O código completo da aplicação esta no Super CD Visual Basic
Até o próximo artigo VB.
José Carlos Macoratti