Modelando Dados e Criando Formulários Pais: Sistema Simples de uma Biblioteca – Parte 1
Neste artigo veremos a modelagem dos dados e criação das telas iniciais (formulários pais) de um Sistema para uma Biblioteca.
Olá pessoal, neste artigo irei criar um sistema simples para uma Biblioteca. Nele, irei usar as operações básicas de CRUD para fazer o cadastro, exclusão, atualização e a consulta de livros, funcionários e clientes. Não farei o mesmo em três camadas, já que o foco deste artigo não é este e, como já disse antes, será algo simples.
Para este artigo usarei o banco SQL Server 2008 Express, em conjunto com o Visual Studio 2008 Professional SP1.
Nesta parte vamos modelar o banco de dados e começar a criar as telas. Para isso, abra o SQL Server 2008 (ou 2005) para criarmos as tabelas referentes à nossa Biblioteca. Neste exemplo teremos as seguintes tabelas:
- Livros, que terá os seguintes campos: ID, NOME, AUTOR, ANO, GENERO, EDITORA, PAGINAS e STATUS (que será um char de uma posição, podendo conter o valor “D”, de disponível ou “I”, de indisponível). Use o seguinte script:
CREATE TABLE Livros
(
Id_LivroINT IDENTITY(1,1) PRIMARY KEY,
Nome_LivroVARCHAR(100) NOT NULL,
Autor_LivroVARCHAR(50) NOT NULL,
Ano_LivroSMALLINT NOT NULL,
Genero_LivroVARCHAR(50) NOT NULL,
Editora_LivroVARCHAR(50) NOT NULL,
Paginas_LivroSMALLINT NULL,
Status_LivroCHAR(1) NOT NULL
)
- Funcionários, que terá os seguintes campos: ID, NOME, ENDERECO, CIDADE, ESTADO, TELEFONE, CARGO, DATA_ADMISSAO e DATA_DEMISSAO (que será uma coluna que aceita valores nulos). Use o script abaixo:
CREATE TABLE Funcionarios
(
Id_FuncionarioINT IDENTITY(1,1) PRIMARY KEY,
Nome_FuncionarioVARCHAR(100) NOT NULL,
Endereco_FuncionarioVARCHAR(50) NOT NULL,
Cidade_FuncionarioVARCHAR(50) NOT NULL,
Estado_FuncionarioVARCHAR(30) NOT NULL,
Telefone_FuncionarioVARCHAR(20) NULL,
Cargo_FuncionarioVARCHAR(30) NOT NULL,
Data_Admissao_FuncionarioSMALLDATETIME NOT NULL,
Data_Demissao_FuncionarioSMALLDATETIME NULL
)
- Clientes, que terá os seguintes campos: ID, NOME, ENDERECO, CIDADE, ESTADO, TELEFONE e STATUS (que será um char de uma posição, podendo conter o valor “A”, de ativo ou “I”, de inativo). Use o script a seguir:
CREATE TABLE Clientes
(
Id_ClienteINT IDENTITY(1,1) PRIMARY KEY,
Nome_ClienteVARCHAR(100) NOT NULL,
Endereco_ClienteVARCHAR(50) NOT NULL,
Cidade_ClienteVARCHAR(50) NOT NULL,
Estado_ClienteVARCHAR(30) NOT NULL,
Telefone_ClienteVARCHAR(20) NULL,
Status_ClienteCHAR(1) NOT NULL
)
Poderíamos criar muito mais tabelas para armazenar os autores, editoras, etc. Mais vamos nos manter nessas três tabelas.
Use os scripts acima para criar as respectivas tabelas. Crie primeiro a de Livros para que contenha as seguintes colunas (ao final deste artigo irei disponibilizar o link para download dos scripts das tabelas criadas):
Agora veja as colunas da tabela de Funcionários:
Finalizando com as colunas da tabela de Clientes:
Pronto, nosso modelo de dados está completo. Perceba que não usamos relacionamentos entre as tabelas (só usamos chaves primárias), já que o objetivo aqui é que cada tabela seja única (seguindo esta idéia mais adiante criaremos formulários únicos para estas tabelas) dando a idéia de que uma tabela seja totalmente independente da outra.
Agora abra o Visual Studio 2008 (ou 2010) e crie um novo projeto do tipo Windows Form, dando a ele o nome de LibrarySystem (altere o nome se quiser):
O form que aparece será nosso form Principal, que terá os botões para acessarmos os outros forms e os forms vinculados à eles. Inclua nesse form 1 controle ToolStrip, nele adicione 3 Buttons, clique com o botão direito neles e clique em Set Image para adicionar imagens aos botões. Clique com o botão direito em cima das imagens, clique em DisplayStyle e clique em Image and Text, assim irá aparecer em seu form a imagem e seu texto, definido pela propriedade Text. Neste exemplo estou usando imagens com tamanho de 48x48.
Obs:Todas as imagens usadas neste projeto foram baixadas gratuitamente deste site.
Adicione outro ToolStrip para ficar no rodapé e um Button com o texto Sair. Após adicionar as imagens aos botões não se esqueça de alterar a propriedade ImageScaling para None, assim sua imagem terá o tamanho original no form.
Altere as propriedades do form: MaximizeBox para False, FormBorderStyle para FixedSingle, StartPosition para CenterScreen e digite um nome na propriedade Text. Seu form deverá ficar desta forma:
Os ID’s para os botões são os seguintes: tsbtnClientes, tsbtnFuncionarios, tsbtnLivros e tsbtnSair.
Com o form inicial criado, comece a criação dos outros. Abra a Solution Explorer, clique com o botão direito em seu projeto, clique em Add > Windows Forms e dê o nome de frmClientes. Nele, altere as seguintes propriedades: MaximizeBox para False, FormBorderStyle para FixedSingle, IsMdiContainer para True, Size para 650;500 StartPosition para CenterScreen e digite um nome na propriedade Text.
Nos formulários criados a partir de agora usarei o conceito de MDI, assim criaremos formulários filhos que serão chamados a partir dos formulários Pais, que no nosso caso serão estes três, de Clientes, Funcionários e Livros.
Para entender melhor os conceitos sobre formulários MDI, veja este artigo.
Em nosso formulário de Clientes, recém-criado, vamos criar 4 botões que serão responsáveis por chamar os formulários filhos de Cadastro, Atualização/Exclusão e Consulta e 1 botão para Voltar ao form principal. Então, adicione o controle ToolStrip, inclua 4 botões, adicione as imagens e altere as propriedades (da mesma forma que foi feito na parte 1 de nosso artigo). Nosso form deverá ficar dessa forma:
Adicione também um ToolStrip no rodapé (só alterar a propriedade Dock para Bottom) para Sair do sistema. Altere a propriedade Modifiers dos 5 botões para Public, assim podemos ter acesso a estes botões de outros forms.
O ID dos botões são esses: tsbtnAlterarExcluir, tsbtnCadastrar, tsbtnConsultar, tsbtnVoltar e tsbtnSair.
Abra a Solution Explorer, clique com o botão direito em seu projeto, clique em Add > Windows Forms e dê o nome de frmFuncionarios. Para manter a padronização, altere neste form as mesmas propriedades que forma alteradas no frmClientes.
Como anteriormente, crie 4 botões que serão responsáveis por chamar os formulários filhos de Cadastro, Atualização/Exclusão e Consulta e 1 botão para Voltar ao form principal. Crie também o botão para Sair do sistema. Nosso form deverá ficar igual ao anterior:
Os ID’s dos botões são os mesmos do form anterior. Perceba que na verdade só alterei as imagens de Alterar/Excluir e de Cadastrar. Não se esqueça de alterar a propriedade Modifiers dos botões para Public Farei o mesmo no próximo form.
Finalizando a criação dos formulários pais, adicione um novo Windows Forms dando o nome a ele de frmLivros. Altere as mesmas propriedades e insira os mesmos botões (com algumas imagens diferentes) para que o form fique como a imagem abaixo nos mostra:
Volte ao formulário Principal para criarmos as chamadas aos formulários pais que acabamos de criar. Nele, dê dois cliques em cada um dos botões para ir à página de códigos e chamar o evento click de cada. O que faremos é somente instanciar os formulários e chamá-los pelo método ShowDialog. Dito isto, no botão Clientes insira o código abaixo:
private void tsbtnClientes_Click(object sender, EventArgs e)
{
frmClientes objFrmClientes = new frmClientes();
objFrmClientes.ShowDialog();
}
No botão Funcionarios, faça o mesmo:
private void tsbtnFuncionarios_Click(object sender, EventArgs e)
{
frmFuncionarios objFrmFuncionarios = new frmFuncionarios();
objFrmFuncionarios.ShowDialog();
}
E no botão Livros:
private void tsbtnLivros_Click(object sender, EventArgs e)
{
frmLivros objFrmLivros = new frmLivros();
objFrmLivros.ShowDialog();
}
Dê dois cliques também no botão Sair, faça uma verificação se o usuário realmente deseja sair e chame o método Application.Exit(), que irá fechar nosso sistema:
private void tsbtnSair_Click(object sender, EventArgs e)
{
if (MessageBox.Show("Você tem certeza que deseja sair do sistema?", "Mensagem do Sistema",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
Application.Exit();
}
}
Faça essa mesma chamada do botão Sair nos formulários pais.
No botão Voltar apenas feche seu formulário que o form principal aparecerá novamente:
private void tsbtnVoltar_Click(object sender, EventArgs e)
{
this.Close();
}
Para quem se interessar em baixar o script das tabelas, baixe neste post
Assim finalizo o artigo. Na próxima parte vamos criar os formulários filhos que compõem nosso projeto, para partirmos para a codificação das operações de Inclusão, Deleção, Consulta e Atualização dos dados. Aguarde!
Um abraço, e até o próximo artigo
Wellington Balbo de Camargo
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo