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()

'sai do formulario
Unload Me

End Sub

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