Upload
robertomarcos182
View
22
Download
5
Embed Size (px)
Citation preview
Rafael Lagos Miranda
0310065 – 8º Semestre
Desenvolvimento de Sistema de Comércio de Veículos
Jaguariúna
2007
I
Rafael Lagos Miranda
0310065 – 8º Semestre
Desenvolvimento de Sistema de Comércio de Veículos
Monografia apresentada à disciplina Trabalho
de Conclusão do curso de Ciência da
Computação da Faculdade de Jaguariúna, sob
orientação do Prof. Ms. Ademário Araujo, como
exigência parcial para conclusão do curso de
graduação.
Jaguariúna
2007
II
Miranda, Rafael Lagos. Desenvolvimento de sistema de venda de veículos. Monografia
defendida e aprovada na FAJ em 20 de dezembro de 2007 pela banca examinadora
constituída pelos professores:
Prof. Ademário Araújo Jr.
Prof. Peter Jandir Jr.
Prof. José Arnaldo G. Nunes
III
Dedico este trabalho a todos aqueles
que fazem de sua vida uma luta diária
pela melhoria deste mundo.
IV
AGRADECIMENTOS
Primeiramente a Deus, que me deu força e oportunidade para vencer mais este desafio.
Aos meus pais, Vanderlei e Fátima, pelo empenho e dedicação que foi disponibilizada nesta
longa e difícil caminhada.
Ao meu irmão, Gustavo, que apesar de ser mais novo e menos experiente sempre me
incentivou a chegar onde estou.
Á minha noiva Loriane, pelo carinho e paciência que demonstrou durante estes anos.
Particularmente agradeço ao coordenador do curso Prof. Peter, pelo seu apoio e
compreensão das reais necessidades.
Aos professores/mestres do curso de ciência da computação que tanto contribuíram para o
meu crescimento intelectual.
E não poderia deixar de agradecer a todos os meus queridos e grandes amigos do curso de
Ciência da Computação, que proporcionaram momentos de grande alegria.
V
Transforme as pedras que você
tropeça nas pedras de sua escada.
(Sócrates, filósofo ateniense)
VI
Miranda, Rafael Lagos. Desenvolvimento de sistema de vendas de veículos. 2007.
Monografia (Bacharelado em Ciência da Computação) – Curso de Ciência da Computação
da Faculdade de Jaguariúna, Jaguariúna.
RESUMO
Na computação, o desenvolvimento de software é o ato de elaborar e implementar um
sistema computacional, isto é, transformar a necessidade de um utilizador ou de um
mercado em um produto de software. O software apresentado neste trabalho é especialista
em vendas de veículo, foi desenvolvido utilizando a técnica de desenvolvimento em cascata,
será demonstrado cada passo desta técnica e principalmente chamar a atenção para a
importância na utilização de técnicas para desenvolvimento de software.
Palavras-chave: Desenvolvimento, Software, Sistema Computacional, Técnicas de
Desenvolvimento.
VII
Miranda, Rafael Lagos. Desenvolvimento de sistema de vendas de veículos. 2007.
Monografia (Bacharelado em Ciência da Computação) – Curso de Ciência da Computação
da Faculdade de Jaguariúna, Jaguariúna.
ABSTRACT
In computing, the development of software is the act of drawing up and implementing
a computer system, that is transforming the need for a user or a market in a software
product. The software presented in this work is a specialist in sales of vehicle, has been
developed using the technique of development cascade will be demonstrated each step of
this technique and mainly draw attention to the importance in the use of techniques for
software development.
Keywords: Development, Software, Computer System, Technical Development
SUMÁRIO
INTRODUÇÃO....................................................................................................................... 2
Capitulo 1- Modelo de Desenvolvimento................................................................................ 4
Modelos de desenvolvimento em Cascata ....................................................................... 4
Capítulo 2 – Requerimento .................................................................................................... 5
2.1 Levantamento de Requisitos...................................................................................... 5
2.2 Planejamento do processo......................................................................................... 6
2.3 Definições da Análise de Requisitos ......................................................................... 8
2.4 Levantamento do banco de dados ............................................................................. 8
2.5 Levantamento e Estudo da Ferramenta de Desenvolvimento .................................. 10
2.6 Estudo do Banco de Dados Escolhido ..................................................................... 11
2.7 Análise de Requisitos............................................................................................... 12
Capítulo 3 – Projeto ............................................................................................................. 14
3.1 Projeto do Sistema................................................................................................... 14
3.2 Definição de Caso de Uso........................................................................................ 20
Capítulo 4 – Implementação ................................................................................................ 21
Implementação ou programação (Codificação) .............................................................. 21
Capítulo 5 - Implantação...................................................................................................... 41
Implantação ................................................................................................................... 41
Capítulo 6 - Verificação........................................................................................................ 42
6.1 Análise dos Resultados........................................................................................... 42
6.2 Quanto ao Levantamento de Requisitos .................................................................. 43
6.3 Quanto à Análise de Requisitos ............................................................................... 43
6.4 Quanto ao Projeto .................................................................................................... 43
6.5 Quanto à Implementação ......................................................................................... 43
6.6 Quanto à Validação.................................................................................................. 44
7 - REFERÊNCIAS BIBLIOGRÁFICAS............................................................................... 44
LISTA DE FIGURAS
FIGURA 01 – Modelo de desenvolvimento em cascata.............................................04
FIGURA 02 – Fluxo de atividades..............................................................................06
FIGURA 03 – Diagrama de contexto..........................................................................14
FIGURA 04 – Fluxo do sistema..................................................................................15
FIGURA 05 – Tabela de Clientes...............................................................................15
FIGURA 06 – Tabela de Fornecedores......................................................................16
FIGURA 07 – Tabela de Funcionários.......................................................................16
FIGURA 08 – Tabela de Veículos..............................................................................16
FIGURA 09 – Tabela de Vendas................................................................................17
FIGURA 10 – Tabela de Compras.............................................................................17
FIGURA 11 – Tabela de Trocas.................................................................................17
FIGURA 12 – Estudo de caso VENDAS....................................................................18
FIGURA 13 – Estudo de caso SOLICITAÇÃO DE PEÇAS........................................19
FIGURA 14 – Estudo de caso GERENCIAMENTO...................................................19
FIGURA 15 – Componente para conectar ao banco de dados..................................21
FIGURA 16 – Propriedade do SQL Connection.........................................................21
FIGURA 17 – Cronograma de atividades/período......................................................22
LISTA DE TABELAS
Tabela 1 – Plano de Trabalho....................................................................................11
Tabela 2 – Plano para Levantamento de Requisitos..................................................11
LISTAGEM DE CÓDIGOS
Listagem 1 – Importação do banco de dados............................................................08
Listagem 2 – Gerar número seqüencial.....................................................................23
Listagem 3 – Gravação no banco de dados...............................................................24
Listagem 4 – Garantir informações gravadas no banco.............................................25
Listagem 5 – Padrão para Form de consulta.............................................................26
Listagem 6 – Alterar as cores das linhas na consulta................................................29
Listagem 7 – Utilizando Duplo Clique na Consulta....................................................30
2
INTRODUÇÃO
Este trabalho constitui basicamente no uso de processo de desenvolvimento, onde
exemplificam com o desenvolvimento de um sistema de venda de veículos, as principais
funções deste sistema são:
� Gerenciamento dos movimentos (compra, venda e troca);
� Marketing de relacionamento - pré-venda e pós-venda -;
� SAC (Sistema de atendimento ao cliente);
� Visualização de ficha do cliente;
� Gestão de veículos novos e usados;
� Controle de peças;
� Controle das atividades diárias relacionadas à assistência técnica;
� Resumo anual da empresa;
� Controle sobre as operações financeiras;
� Livros fiscais, folha de pagamento, ativo fixo, administração contábil;
� Gestão orçamentária, possibilitando a realização da visão consolidada do grupo ou
por empresa, definição de metas e objetivos (receitas, custos e despesas).
� Acompanhamento diário do projetado com o realizado de uma maneira rápida e
prática.
� Controlar os custos de um veículo, evitando assim prejuízos.
A motivação deste trabalho sobre o desenvolvimento deste software foi o prévio
conhecimento das atividades do ramo, e principalmente a necessidade de um software
especialista com baixo custo e que realmente atenda as necessidades.
Entretanto desenvolver um software não é um trabalho trivial, pesquisa realizada pelo
CHAOS Report de 2003 apresentou as seguintes estatísticas:
• Apenas 34% dos projetos de software são bem sucedidos;
• 15% dos projetos são cancelados;
• 43% é o erro médio em relação ao orçamento do projeto dos 34% mencionados;
• 52% das características (requisitos não funcionais) e funcionalidades são entregues no
produto.
3
Para desenvolver um software com qualidade deverá ser adotado um processo de
desenvolvimento de software.
Um processo de software pode ser entendido como um conjunto estruturado de atividades
exigidas para desenvolver um sistema de software. Esse conjunto de atividades é ligado por
padrões de relacionamento entre si, as quais se as atividades trabalharem de forma correta
e de acordo com os padrões requeridos, o produto final desejado é realizado. O produto final
desejado é um software de alta qualidade e baixo custo.
Com estas definições podemos considerar que de forma global um processo de
software padrão pode ser considerado um conjunto de atividades, de métodos, de
ferramentas e práticas utilizadas a fim de construir um produto de software. Para definir um
processo de software devem ser vistas as informações de atividades a serem realizados, os
recursos necessários, artefatos requeridos e produzidos, também os procedimentos
seguidos.
Resumidamente o processo de software pode ser definido como um conjunto de
atividades uniforme que serão aplicadas sistematicamente e estas são agrupados em fases,
cada fase tem que intervir com suas responsabilidades, isto significa que define quem faz o
quê, quando e como a fim de atingir certo objetivo.
No capitulo 1 é descrito a técnica de desenvolvimento em cascata, os capítulos seguintes
demonstram a seqüência da técnica, capitulo 2 levantamento de requisitos, capítulo 3
projeto do sistema, capítulo 4 implementação e capítulo 5 análise dos resultados.
O objetivo deste trabalho é desenvolver um software para o segmento de venda de
automóveis utilizando a técnica de desenvolvimento em cascata, ao final do projeto,
visualizar os produtos em diagramas padronizados.
4
CAPITULO 1- MODELO DE DESENVOLVIMENTO
Modelos de desenvolvimento em Cascata
A principal característica dessa técnica é que o processo de desenvolvimento fica
estruturado, isso significa que as fases têm uma ordem seqüencial, uma fase será iniciada
após o termino da fase anterior. Devem-se seguir todas as fases bem como as atividades
envolvidas em cada uma delas, o modelo é exemplificado na Figura 1 – Modelo de
Desenvolvimento em cascata.
FIGURA 1 – Modelo de
Desenvolvimento em cascata
5
CAPÍTULO 2 – REQUERIMENTO
2.1 Levantamento de Requisitos
Seguindo a seqüência conforme o modelo proposto, vem à fase de levantamento de
requisitos, é necessário reuniões com os clientes e os usuários finais do sistema para
descobrir o máximo de informações sobre o domínio da aplicação, por exemplo: que tipo de
serviços o sistema tem que fornecer, desempenho necessário pelo sistema, as
restrições/necessidades de hardware.
Esta etapa envolveu diversas pessoas de diferentes áreas da empresa contratante,
isso para levantar a necessidade de abrangência do sistema.
Fazem parte da equipe de levantamento de requisitos o analista, o gerente, com a
participação do administrador de banco de dados, que constitui na realização de reuniões e
entrevistas com o cliente. Nesta fase são designados técnicas de esclarecimento de
requisitos, com o objetivo de maximizar o comprometimento do cliente e desenvolvedores
com a solução que se deseja construir. É muito importante que os requisitos sejam
aproveitados da maneira correta e objetiva. Com as revisões dos requisitos feitas na fase de
Concepção, deve ser feita uma revisão envolvendo as pessoas que irão manipular o
sistema, cliente, além das pessoas que participaram do projeto.
A equipe que executa a revisão deve verificar cada requisito, verificar se há
consistência e se realmente atende as necessidades.
Corresponde a etapa levantamento de requisitos: pesquisa inicial do material existente,
descrição inicial dos requisitos, estruturação dos dados e composição do documento de
requisitos.
E, referente ao retorno de investimentos é uma das etapas mais importantes a fase
de levantamento de requisitos, ou seja, membros da equipe disponibilizaram tempo
suficiente para concluir esta etapa do projeto, entender as necessidades dos clientes no que
diz respeito ao sistema a ser desenvolvido, traduzir as necessidades ou requisitos
operacionais para uma descrição de funcionalidades a ser executada.
6
2.2 Planejamento do processo
Os estudos realizados conforme instruções do levantamento de requisitos resultaram
no planejamento do processo. O planejamento do processo pode ser visto conforme Figura
2:
FIGURA 2 – Fluxo de Atividades
Os trabalhos realizados nesta etapa estão descritos abaixo:
� Reuniões com gerentes e proprietário de empresas interessadas no desenvolvimento
do software.
� Negociação e contratação.
� Acesso ao material disponível na organização;
� Conhecer o ambiente e as principais necessidades, possibilitando ter o
embasamento teórico dos trabalhos a serem desenvolvidos;
� Conhecer as regras internas e documentos da organização.
� Definição do foco e a abrangência do trabalho.
7
� Definição do planejamento de atividades, este planejamento aqui denominado de
plano de trabalho pode ser visto nas tabelas 1 e 2:
Plano de Trabalho:
Atividade Mar Abr Mai Jun Jul Ago Set Out Nov
Levantamento de banco de
dados existente
Levantamento da
ferramenta de
desenvolvimento
Estudo da ferramenta
escolhida (Delphi 6)
Estudo do banco escolhido
(Firebird)
Análise de requisitos
Projeto do sistema
Implementação
Implantação
Testes
Análise dos Resultados
TABELA 1 – Plano de Trabalho
Atividade/Semana Um Dois Três Quatro Cinco Seis Sete Oito
Necessidades de armazenamento:
cadastros
Necessidade para funcionamento:
controle
Necessidades de demonstrar
resultados e organizar: consultas e
relatórios
Necessidades para implementação:
ferramenta de desenvolvimento
Necessidades para implantação:
Hardware e Softwares
TABELA 2 – Plano para Levantamento de Requisitos
8
2.3 Definições da Análise de Requisitos
Para melhor visualização da Análise de Requisitos, esta foi dividida em fases. Partes
dos resultados desta fase serão demonstradas abaixo:
2.4 Levantamento do banco de dados
Nas empresas envolvidas havia banco de dados que eram utilizadas por outro
sistema até a implantação do sistema em desenvolvimento, as informações contidas neste
banco de dados teriam que ser importado para o novo banco de dados do novo sistema.
Para importar o banco de dados que estava sendo utilizado em Microsoft Excel
(arquivo no formato XLS), primeiro o arquivo foi transformado no formato TXT separado por
“TAB”.
Com o auxilio da query descrita na Listagem 1 os dados foram importados para as
novas tabelas.
"1 string" 100 "2 string" 102 "3 string" 104 "4 string" 106 testtable structure CREATE TABLE testtable (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, text varchar(45) NOT NULL, price integer not null); import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.sql.ResultSet; import java.sql.SQLException; public class automateImport { public static void main(String[] args) { DBase db = new DBase(); Connection conn = db.connect("jdbc:mysql://localhost:3306/test","root","caspian"); db.importData(conn,args[0]); } } class DBase
9
{ public DBase() { } public Connection connect(String db_connect_str, String db_userid, String db_password) { Connection conn; try { Class.forName("com.mysql.jdbc.Driver").newInstance(); conn = DriverManager.getConnection(db_connect_str, db_userid, db_password); } catch(Exception e) { e.printStackTrace(); conn = null; } return conn; } public void importData(Connection conn,String filename) { Statement stmt; String query; try { stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); query = "LOAD DATA INFILE '"+filename+ "' INTO TABLE testtable (text,price);"; stmt.executeUpdate(query); } catch(Exception e) { e.printStackTrace(); stmt = null; } } };
Listagem 1 – Importação do banco de dados
10
2.5 Levantamento e Estudo da Ferramenta de Desenvolvimento
Para desenvolver o sistema é necessária a utilização de uma ferramenta de
desenvolvimento, esta ferramenta deve ser escolhida de acordo com as necessidades
abordadas na Análise de Requisitos. Portanto foi elegido a ferramenta DELPHI 6.
DELPHI 6
Uma ferramenta RAD (Rapid Application Development), sua linguagem nativa é
Object Pascal, é uma excelente ferramenta de desenvolvimento tanto para aplicações
cliente/servidor quanto de uso genérico.
As principais características são as seguintes:
• Possui o compilador rápido e otimizado;
• Gera executáveis, sem a necessidade da utilização de bibliotecas RunTime para a
distribuição de aplicações. A conseqüência disto é um desempenho muito superior
às outras ferramentas;
• Possibilita a criação de componentes nativos, ou seja, permite a criação de
extensões ao próprio Delphi;
• É uma ferramenta two-way, isto é, cada componente visual é implementado através
de um conjunto de linhas de código Object Pascal e esses dois elementos,
componente visual e linhas de código, estão intimamente relacionados, de tal forma
que uma alteração em qualquer um deles se reflete no outro;
• A linguagem possui mecanismos especiais para manipulação de exceção (exception
handling), o que permite a criação de aplicações mais robustas;
• Excelente conectividade com bancos de dados, através do Borland Database Engine
(BDE);
• É totalmente orientada a objetos.
11
2.6 Estudo do Banco de Dados Escolhido
É essencial no desenvolvimento do sistema a escolha do banco de dados, este deve ser
escolhido de acordo com as necessidades da Análise de Requisitos e também levando em
consideração a conectividade com a ferramenta de desenvolvimento.
Firebird
Firebird é um banco de dados Client/Servidor relacional que é compatível com SQL-
ANSI-92, e foi desenvolvido para ser um banco de dados, independente de plataformas e de
sistemas operacionais. Este banco de dados dispensa maiores estruturas dentro da
empresa, (DBA / Preparação), onde basta instalar o software e usar-lo, sem a interferência
freqüente de profissionais, especializados na manutenção do banco de dados de produção.
Acompanhando, isso ele dispensa o uso de “super-servidores”, usando pouco espaço em
disco para sua instalação e utilizando pouca memória em situações normais de uso. Por
isso a plataforma necessária para a sua instalação e utilização pode ser reduzida diminuindo
consideravelmente os custos do projeto.
Ao longo do desenvolvimento, foram introduzidas muitas características, dentre elas:
Acesso nativo a driver JDBC Commit Automático de Duas Fases, sombreamento do
Banco de Dados, Replicação, tratamento de Blob´s Sistema de Eventos, entre outros. O
Firebird é uma base de dados Open Source, construído com base no código do Interbase
Open Source, sendo que as licenças de utilização e distribuição agora são totalmente
FREE!
12
IBCONSOLE
O IBCONSOLE é o gerenciador de Dados que acompanhava o Interbase, e que
pode ser utilizado com o Firebird 1.5.1, a grande vantagem dele é o fato, de não ser uma
ferramenta de criação de Tabelas.
No Ibconsole, toda e qualquer criação, relacionamento, manutenção, é feito no ISQL,
tudo via Linha de Comando
2.7 Análise de Requisitos
Seguindo o Plano de Trabalho, a próxima fase do projeto é a Análise de Requisitos, os
requisitos foram divididos em Requisitos de Cadastros e Requisitos de Controles, os
requisitos são demonstrados abaixo:
Requisitos de Cadastros:
� Cadastro de clientes;
� Cadastro de fornecedores e vendedores;
� Cadastro de funcionários;
� Cadastro de veículos; - Cadastro de ordens de serviços (OS);
� Cadastro de emissão de orçamentos;
� Cadastro de vendas;
� Cadastro de compras;
� Cadastro de trocas;
� Cadastro de orçamentos de vendas;
� Cadastro de produtos;
� Cadastro de serviços;
Requisitos de Controles:
� Controle de estoque;
� Controle de cheques;
� Controle financeiro e administrativo;
13
� Controle de aniversariantes;
� Contas a pagar e a receber;
� Controle de pagamento dos funcionários por comissão;
� Controle de pagamento dos vendedores por comissão;
� Suporte a leitora de código de barras;
� Fluxo de caixa;
� Emissão de recibos;
� Emissão de boletos bancários (Banco do Brasil, Caixa Econômica Federal, Nossa Caixa Nosso Banco, Bradesco e Itaú);
� Agendamento de revisões;
� Consulta de registros personalizados a partir de filtros;
� Gráficos e relatórios diversos;
� Todos os relatórios com cabeçalho personalizado (logotipo da Empresa e nome);
� Pesquisa com histórico do cliente; - Pesquisa com histórico do veículo;
� Permissões de acesso dos usuários por tela;
� Agendamento de compromissos por usuário;
� Geração de solicitações a outros usuários;
� Realização e restauração de backup;
� Banco de dados cliente servidor (Funciona em rede multiusuários);
14
CAPÍTULO 3 – PROJETO
3.1 Projeto do Sistema
Na fase do Projeto do Sistema, os dados colhidos devem ser desenhados de forma
estruturada. Na Figura 3 é demonstrado o diagrama de contexto, onde a sigla SVA
representa o controle do sistema, recebendo as informações de movimentos, fluxo de caixa,
peças, marketing e sistema de atendimento ao cliente.
FIGURA 3 - Diagrama de contexto
Na Figura 4 é demonstrado o fluxo do sistema, inicialmente o usuário deve logar no
sistema com o seu respectivo usuário, de acordo com a configuração previamente
cadastrada para o usuário este terá acesso a todos os controles do sistema ou terá acesso
restrito.
15
Passando para o controle de cadastros, configurações do sistema, fundo fixo,
depósitos bancários ou movimentos que geram receitas.
FIGURA 4- Fluxo do sistema
Nesta fase também é definido como o sistema funcionará internamente, tradução
dos requisitos em uma descrição de todos os componentes para codificar o sistema
garantindo que os requisitos do cliente sejam atendidos.
Definição das principais tabelas do banco de dados, cliente, fornecedor, funcionários,
veículos, vendas, compras e trocas, estas tabelas são demonstradas através das Figuras 5,
6, 7, 8, 9, 10 e 11, respectivamente.
� Clientes
16
FIGURA 05 – Tabela de Clientes
� Fornecedores
FIGURA 06 – Tabela de Fornecedores
� Funcionários
FIGURA 07 – Tabela de Funcionários
� Veículos
17
FIGURA 8 – Tabela de Veículos
� Vendas
FIGURA 9 – Tabela de Vendas
� Compras
FIGURA 10 – Tabela de Compras
� Trocas
18
FIGURA 11 – Tabela de Trocas
A Figura 12 demonstra o caso de uso para vendas, onde o cliente pode fazer o pedido,
verificar o pedido ou cancelar o pedido, este cliente pode ter tratamento diferente de acordo
com seu status.
FIGURA 12 – Caso de uso Vendas
19
A Figura 13 demonstra o caso de uso para solicitação de peças, onde o cliente solicita
peças, o administrador cadastra a tarefa, o operador realiza a tarefa e finalmente compras
entrega as peças.
FIGURA 13 – Caso de uso Solicitação de Peças
A Figura 14 demonstra o caso de uso para gerenciamento, onde o gerente tem
acesso as funções do funcionário e pode emitir relatório de vendas.
20
FIGURA 14 – Caso de uso Gerenciamento
3.2 Definição de Caso de Uso
Na Engenharia de Software, um caso de uso (ou use case) é um tipo de classificador
representando uma unidade funcional coerente provida pelo sistema, subsistema, ou classe
manifestada por seqüências de mensagens intercambiáveis entre os sistemas e um ou mais
atores. Pode ser representado por uma elipse contendo, internamente, o nome do caso de
uso.
Um Caso de Uso representa uma unidade discreta da interação entre um usuário
(humano ou máquina) e o sistema. Um Caso de Uso é uma unidade de um trabalho
significante. Por exemplo: o "login para o sistema", "registrar no sistema" e "criar pedidos"
são todos Casos de Uso. Cada Caso de Uso tem uma descrição o qual descreve a
funcionalidade que irá ser construída no sistema proposto. Um Caso de Uso pode "incluir"
outra funcionalidade de Caso de Uso ou "estender" outro Caso de Uso com seu próprio
comportamento.
21
CAPÍTULO 4 – IMPLEMENTAÇÃO
Implementação ou programação (Codificação)
Terminado a etapa do Projeto do Sistema a próxima etapa é a Implementação, ou
seja, a produção do código que controla o sistema e realiza a computação lógica envolvida,
onde se tornaram possíveis à compilação e geração do código-executável para o software.
A estrutura e componentes utilizados para comunicação com o banco de dados são
demonstrados na Figura 15.
FIGURAS 15 - Componentes para conectar ao banco de dados
22
A Figura 16 mostra as propriedades do SQL Conector, fundamental que esteja
perfeitamente configurado e apontando para o diretório correto.
FIGURA 16 - Propriedade do SQL Connection
Na implementação foram definidos alguns padrões, para garantir a integridade do
sistema e facilitar caso seja necessário manutenção e/ou customização. Esses padrões
estão descritos abaixo bem como o código utilizado.
Padrão para gerar código seqüencial em Form´s de cadastro:
Nos Form´s de cadastro (TODOS CADASTROS) é necessário conter um código que
será utilizado como chave primária para novos registros, esse código será um número
seqüencial gerado automaticamente pelo sistema, na Listagem 2 segue o padrão para o
código que gera esse número.
23
procedure TFRM_Banco.ARQ_NovoClick(Sender: TObject);
var
codigo : integer;
begin
LiberaCampos();
LimpaCampos();
DM.CDS_Codigos.Active := True;
DM.SQL_Codigos.Active := True;
codigo := DM.CDS_Codigos.FieldByName('cod_banco').AsInteger;
codigo := codigo + 1;
lbl_codigo.caption := IntToStr(codigo);
DM.CDS_Codigos.Edit;
DM.CDS_Codigos.FieldByName('cod_banco').AsInteger := codigo;
DM.CDS_Codigos.ApplyUpdates(0);
DM.CDS_Codigos.Active := False;
DM.SQL_Codigos.Active := False;
DM.SQL_Banco.Active := True;
DM.CDS_Banco.Active := True;
DM.CDS_Banco.Append;
end;
Listagem 2 – Gerar número seqüencial
O padrão para gravação de novos registros no banco de dados e demonstrado na
Listagem 3.
24
procedure TFRM_Banco.ARQ_GravarClick(Sender: TObject);
begin
DM.CDS_Banco.Edit;
DM.CDS_Banco.FieldByName('codigo').AsString := lbl_codigo.Caption;
DM.CDS_Banco.FieldByName('nome').AsString := edt_nome.Text;
DM.CDS_Banco.FieldByName('conta_corrente').AsString := edt_nroconta.Text;
DM.CDS_Banco.FieldByName('agencia').AsString := edt_agencia.Text;
DM.CDS_Banco.FieldByName('saldo_atual').AsString := edt_saldo.Text;
DM.CDS_Banco.ApplyUpdates(0);
DM.CDS_Banco.Active := False;
DM.SQL_Banco.Active := False;
LimpaCampos;
TravaCampos;
end;
Listagem 3 – Gravação no banco de dados
Na Listagem 4 será demonstrado o padrão para garantir que não será gravado no
banco de dados informações erradas ou que falte informações.
25
procedure TFRM_Banco.BitBtn1Click(Sender: TObject);
begin
if edt_nome.Text = '' Then
begin
ShowMessage ('Nome não pode ser nulo!');
edt_nome.SetFocus;
end
else
if edt_nroconta.Text = '' Then
begin
ShowMessage ('Número da Conta Corrente não pode ser nulo!');
edt_nroconta.SetFocus;
end
else
if edt_agencia.Text = '' Then
begin
ShowMessage ('Agência não pode ser nulo!');
edt_agencia.SetFocus;
end
else
if edt_saldo.Text = '' Then
begin
ShowMessage ('Saldo não pode ser nulo!');
edt_saldo.SetFocus;
end
26
else
ARQ_GRAVAR.CLICK;
end;
Listagem 4 – Garantir informações gravadas no banco
Padrão para consulta de dados em tela.
Foi criado apenas um Form de consulta que deverá fazer a consulta de quaisquer
dados no sistema, o motivo para a criação de apenas um Form é que todas as consultas
estejam familiarizadas, aumentando o entendimento do usuário.
ara realizar este procedimento uma das propriedades do Form, o “caption”, deve ser
alterado em cada consulta, alterando o caption do Form é possível saber qual a consulta foi
solicitado, este padrão é demonstrado na Listagem 5.
procedure TFRM_Consultas.FormShow(Sender: TObject);
begin
frm_Consultas.CB_itens.Items := DM.CDS_Consulta.FieldList;
end;
procedure TFRM_Consultas.EDT_PesquisaKeyUp(Sender: TObject;
var Key: Word;
Shift: TShiftState);
begin
DM.CDS_Consulta.Active := False;
DM.SQL_Consulta.Active := False;
If FRM_Consultas.Caption = 'Cadastro de Banco' then
DM.SQL_Consulta.CommandText := 'select * from banco where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
27
else
if
FRM_Consultas.Caption = 'Cadastro de Cliente' then
DM.SQL_Consulta.CommandText := 'select * from cliente where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de Contas a Pagar' then
DM.SQL_Consulta.CommandText := 'select * from Contas_Pagar where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de Contas a Receber' then
DM.SQL_Consulta.CommandText := 'select * from contas_receber where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de Financeira' then
DM.SQL_Consulta.CommandText := 'select * from financeira where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de Funcionarios' then
DM.SQL_Consulta.CommandText := 'select * from funcionarios where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
28
FRM_Consultas.Caption = 'Cadastro de Plano Pagamento' then
DM.SQL_Consulta.CommandText := 'select * from plano_pagamento where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de Veiculos' then
DM.SQL_Consulta.CommandText := 'select * from veiculos where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de Veiculo FILIAL - Pesquisa' then
DM.SQL_Consulta.CommandText := 'select * from filial where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de Funcionarios NIVEL ACESSO - Pesquisa' then
DM.SQL_Consulta.CommandText := 'select * from nivel_acesso where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de Filial' then
DM.SQL_Consulta.CommandText := 'select * from filial where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de contas pagar BANCO - Pesquisa' then
29
DM.SQL_Consulta.CommandText := 'select * from banco where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de contas pagar - Pesquisa' then
DM.SQL_Consulta.CommandText := 'select * from veiculos where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39
else
if
FRM_Consultas.Caption = 'Cadastro de contas receber BANCO - Pesquisa' then
DM.SQL_Consulta.CommandText := 'select * from banco where ' + CB_itens.Text + ' like ' + #39 + Edt_pesquisa.Text + '%' + #39;
DM.SQL_Consulta.Active := True;
DM.CDS_Consulta.Active := True;
end;
Listagem 5 – Padrão para Form de consulta
Padrão utilizado para facilitar a visualização das informações nas consultas, onde as
linhas na consulta são demonstradas em cores diferentes, este padrão esta descrito na
Listagem 6.
procedure TFRM_Consultas.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if not odd(DM.CDS_Consulta.RecNo) then
if not (gdSelected in State) then
begin
30
dbgrid1.Canvas.Brush.Color := $00FFEFDF;
dbgrid1.Canvas.FillRect(rect);
dbgrid1.DefaultDrawDataCell(rect,column.Field,state);
end;
end;
Listagem 6 – Alterar as cores das linhas na consulta
Padrão utilização de duplo clique na consulta, com a utilização do duplo clique sobre o
registro que deseja alterar ou excluir, o registro será inserido no seu respectivo Form de
cadastro. A Listagem 7 mostra o código deste padrão.
procedure TFRM_Consultas.DBGrid1DblClick(Sender: TObject);
var
codigo : integer;
begin
IF FRM_Consultas.Caption = 'Cadastro de Funcionarios' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
DM.CDS_FUncionarios.Active := False;
DM.SQL_Funcionarios.Active := False;
DM.SQL_Funcionarios.CommandText := 'select * from funcionarios where codigo = '+ inttostr(codigo);
DM.SQL_Funcionarios.Active := True;
DM.CDS_FUncionarios.Active := True;
FRM_Funcionarios.Enabled := True;
FRM_Funcionarios.lbl_codigo.Caption := DM.CDS_Funcionarios.FieldByName('codigo').AsString;
31
FRM_Funcionarios.edt_nome.Text := DM.CDS_Funcionarios.FieldByName('nome').AsString;
FRM_Funcionarios.edt_funcao.Text := DM.CDS_Funcionarios.FieldByName('funcao').AsString;
FRM_Funcionarios.edt_salario.Text := DM.CDS_Funcionarios.FieldByName('salario').AsString;
FRM_Funcionarios.edt_senha.Text := DM.CDS_FUncionarios.FieldByName('senha').AsString;
FRM_Funcionarios.edt_confsenha.Text := DM.CDS_FUncionarios.FieldByName('confsenha').AsString;
FRM_Funcionarios.edt_nivelacesso.Text := DM.CDS_FUncionarios.FieldByName('nivel_acesso').AsString;
FRM_Funcionarios.edt_usuario.Text := DM.CDS_FUncionarios.FieldByName('usuario').AsString;
FRM_Consultas.Close;
FRM_Funcionarios.ARQ_Alterar.Enabled := True;
FRM_Funcionarios.ARQ_Excluir.Enabled := True;
end
else
IF FRM_Consultas.Caption = 'Cadastro de Filial' then
begin
codigo := DM.CDS_Consulta.FieldByName('codigo').AsInteger;
DM.CDS_Filial.Active := False;
DM.SQL_Filial.Active := False;
DM.SQL_Filial.CommandText := 'select * from filial where codigo = '+ inttostr(codigo);
DM.SQL_Filial.Active := True;
DM.CDS_Filial.Active := True;
FRM_Filial.Enabled := True;
32
FRM_Filial.lbl_codigo.Caption := DM.CDS_Filial.fieldbyname('codigo').AsString;
FRM_Filial.edt_nome.Text := DM.CDS_Filial.fieldbyname('nome').AsString;
FRM_consultas.Close;
FRM_Filial.btn_voltar.SetFocus;
end
else
IF FRM_Consultas.Caption = 'Cadastro de Banco' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
DM.CDS_Banco.Active := False;
DM.SQL_Banco.Active := False;
DM.SQL_Banco.CommandText := 'select * from banco where codigo = '+ inttostr(codigo);
DM.SQL_Banco.Active := True;
DM.CDS_Banco.Active := True;
FRM_Banco.Enabled := True;
FRM_Banco.lbl_codigo.Caption := DM.CDS_Banco.FieldByName('codigo').AsString;
FRM_Banco.edt_nome.Text := DM.CDS_Banco.FieldByName('nome').AsString;
FRM_Banco.edt_nroconta.Text := DM.CDS_Banco.FieldByName('conta_corrente').AsString;
FRM_Banco.edt_agencia.Text := DM.CDS_Banco.FieldByName('agencia').AsString;
FRM_Banco.edt_saldo.Text := DM.CDS_Banco.FieldByName('saldo_atual').AsString;
FRM_Consultas.Close;
FRM_Banco.ARQ_Alterar.Enabled := True;
FRM_Banco.ARQ_Excluir.Enabled := True;
33
end
else
IF FRM_Consultas.Caption = 'Cadastro de Cliente' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
DM.CDS_Cliente.Active := False;
DM.SQL_Cliente.Active := False;
DM.SQL_Cliente.CommandText := 'select * from cliente where codigo = '+ inttostr(codigo);
DM.SQL_Cliente.Active := True;
DM.CDS_Cliente.Active := True;
FRM_Cliente.Enabled := True;
FRM_Cliente.lbl_codigo.Caption := DM.CDS_Cliente.FieldByName('codigo').AsString;
FRM_Cliente.edt_nome.Text := DM.CDS_Cliente.FieldByName('nome').AsString;
FRM_Cliente.edt_endereco.Text := DM.CDS_Cliente.FieldByName('endereco').AsString;
FRM_Cliente.edt_numero.Text := DM.CDS_Cliente.FieldByName('numero').AsString;
FRM_Cliente.msk_cep.Text := DM.CDS_Cliente.FieldByName('cep').AsString;
FRM_Cliente.edt_bairro.Text := DM.CDS_Cliente.FieldByName('bairro').AsString;
FRM_Cliente.msk_tel.Text := DM.CDS_Cliente.FieldByName('telefone').AsString;
FRM_Cliente.edt_rg.Text := DM.CDS_Cliente.FieldByName('rg').AsString;
FRM_Cliente.edt_cpf.Text := DM.CDS_Cliente.FieldByName('cpf').AsString;
FRM_Consultas.Close;
FRM_Cliente.ARQ_Alterar.Enabled := True;
FRM_Cliente.ARQ_Excluir.Enabled := True;
34
end
else
IF FRM_Consultas.Caption = 'Cadastro de Contas a Pagar' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
DM.CDS_ContasPagar.Active := False;
DM.SQL_ContasPagar.Active := False;
DM.SQL_ContasPagar.CommandText := 'select * from Contas_Pagar where codigo = '+ inttostr(codigo);
DM.SQL_ContasPagar.Active := True;
DM.CDS_ContasPagar.Active := True;
FRM_ContasPagar.Enabled := True;
FRM_ContasPagar.lbl_codigo.Caption := DM.CDS_ContasPagar.FieldByName('codigo').AsString;
FRM_ContasPagar.edt_fornecedor.Text := DM.CDS_ContasPagar.FieldByName('fornecedor').AsString;
FRM_ContasPagar.cb_banco.Text := DM.CDS_ContasPagar.FieldByName('cod_banco').AsString;
FRM_ContasPagar.msk_dataemissao.Text := DM.CDS_ContasPagar.FieldByName('data_emissao').AsString;
FRM_ContasPagar.msk_datavencimento.Text := DM.CDS_ContasPagar.FieldByName('data_vencimento').AsString;
FRM_ContasPagar.edt_valor.Text := DM.CDS_ContasPagar.FieldByName('valor').AsString;
FRM_ContasPagar.edt_descricao.Text := DM.CDS_ContasPagar.FieldByName('descricao').AsString;
FRM_ContasPagar.EDT_Veiculo.Text := DM.CDS_ContasPagar.fieldbyname('veiculo').AsString;
FRM_Consultas.Close;
FRM_ContasPagar.ARQ_Alterar.Enabled := True;
35
FRM_ContasPagar.ARQ_Excluir.Enabled := True;
end
else
IF FRM_Consultas.Caption = 'Cadastro de Contas a Receber' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
DM.CDS_ContasReceber.Active := False;
DM.SQL_ContasReceber.Active := False;
DM.SQL_ContasReceber.CommandText := 'select * from contas_receber where codigo = '+ inttostr(codigo);
DM.SQL_ContasReceber.Active := True;
DM.CDS_ContasReceber.Active := True;
FRM_ContasReceber.Enabled := True;
FRM_ContasReceber.lbl_codigo.Caption := DM.CDS_ContasReceber.FieldByName('codigo').AsString;
FRM_ContasReceber.edt_cliente.Text := DM.CDS_ContasReceber.FieldByName('cliente').AsString;
FRM_ContasReceber.cb_banco.Text := DM.CDS_ContasReceber.FieldByName('cod_banco').AsString;
FRM_ContasReceber.msk_dataemissao.Text := DM.CDS_ContasReceber.FieldByName('data_emissao').AsString;
FRM_ContasReceber.msk_datavencimento.Text := DM.CDS_ContasReceber.FieldByName('data_vencimento').AsString;
FRM_ContasReceber.edt_valor.Text := DM.CDS_ContasReceber.FieldByName('valor').AsString;
FRM_ContasReceber.edt_descricao.Text := DM.CDS_ContasReceber.FieldByName('descricao').AsString;
FRM_Consultas.Close;
FRM_ContasReceber.ARQ_Alterar.Enabled := True;
36
FRM_ContasReceber.AQR_Exlcluir.Enabled := True;
end
else
IF FRM_Consultas.Caption = 'Cadastro de Financeira' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
DM.CDS_Financeira.Active := False;
DM.SQL_Financeira.Active := False;
DM.SQL_Financeira.CommandText := 'select * from financeira where codigo = '+ inttostr(codigo);
DM.SQL_Financeira.Active := True;
DM.CDS_Financeira.Active := True;
FRM_Financeira.Enabled := True;
FRM_Financeira.lbl_codigo.Caption := DM.CDS_Financeira.FieldByName('codigo').AsString;
FRM_Financeira.edt_nome.Text := DM.CDS_Financeira.FieldByName('nome').AsString;
FRM_Consultas.Close;
FRM_Financeira.ARQ_Alterar.Enabled := True;
FRM_Financeira.ARQ_Excluir.Enabled := True;
end
else
IF FRM_Consultas.Caption = 'Cadastro de Plano Pagamento' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
DM.CDS_PlanoPagamento.Active := False;
37
DM.SQL_PlanoPagamento.Active := False;
DM.SQL_PlanoPagamento.CommandText := 'select * from plano_pagamento where codigo = '+ inttostr(codigo);
DM.SQL_PlanoPagamento.Active := True;
DM.CDS_PlanoPagamento.Active := True;
FRM_PlanodePagamento.Enabled := True;
FRM_PlanodePagamento.lbl_codigo.Caption := DM.CDS_PlanoPagamento.FieldByName('codigo').AsString;
FRM_PlanodePagamento.edt_nome.Text := DM.CDS_PlanoPagamento.FieldByName('nome').AsString;
FRM_PlanodePagamento.cb_entrada.Text := DM.CDS_PlanoPagamento.FieldByName('entrada').AsString;
FRM_PlanodePagamento.cb_prestacoes.Text := DM.CDS_PlanoPagamento.FieldByName('numero_prestacoes').AsString;
FRM_PlanodePagamento.cb_interEntrada.Text := DM.CDS_PlanoPagamento.FieldByName('intervalo_entrada').AsString;
FRM_PlanodePagamento.cb_interParcelas.Text := DM.CDS_PlanoPagamento.FieldByName('intervalo_parcelas').AsString;
FRM_Consultas.Close;
FRM_PlanodePagamento.ARQ_Alterar.Enabled := True;
FRM_PlanodePagamento.ARQ_Excluir.Enabled := True;
end
else
IF FRM_Consultas.Caption = 'Cadastro de Veiculos' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
DM.CDS_Veiculo.Active := False;
DM.SQL_Veiculo.Active := False;
38
DM.SQL_Veiculo.CommandText := 'select * from veiculos where codigo = '+ inttostr(codigo);
DM.SQL_Veiculo.Active := True;
DM.CDS_Veiculo.Active := True;
FRM_Veiculo.Enabled := True;
FRM_Veiculo.lbl_codigo.Caption := DM.CDS_Veiculo.FieldByName('codigo').AsString;
FRM_Veiculo.edt_marca.Text := DM.CDS_Veiculo.FieldByName('marca').AsString;
FRM_Veiculo.edt_modelo.Text := DM.CDS_Veiculo.FieldByName('modelo').AsString;
FRM_Veiculo.edt_anofabricacao.Text := DM.CDS_Veiculo.FieldByName('ano_fabricacao').AsString;
FRM_Veiculo.edt_anomodelo.Text := DM.CDS_Veiculo.FieldByName('ano_modelo').AsString;
FRM_Veiculo.edt_cor.Text := DM.CDS_Veiculo.FieldByName('cor').AsString;
FRM_Veiculo.edt_placa.Text := DM.CDS_Veiculo.FieldByName('placas').AsString;
FRM_Veiculo.edt_renavam.Text := DM.CDS_Veiculo.FieldByName('cod_renavam').AsString;
FRM_Veiculo.edt_chassi.Text := DM.CDS_Veiculo.FieldByName('chassi').AsString;
FRM_Veiculo.edt_filial.Text := DM.CDS_Veiculo.FieldByName('filial').AsString;
FRM_Consultas.Close;
FRM_Veiculo.ARQ_Alterar.Enabled := True;
FRM_Veiculo.ARQ_Excluir.Enabled := True;
end
else
IF FRM_Consultas.Caption = 'Movimento de Compra' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
39
DM.CDS_movcompra.Active := False;
DM.SQL_movcompra.Active := False;
DM.SQL_movcompra.CommandText := 'select * from movcompra where codigo = '+ inttostr(codigo);
DM.SQL_movcompra.Active := True;
DM.CDS_movcompra.Active := True;
FRM_movcompra.Enabled := True;
FRM_movcompra.lbl_codigo.Caption := DM.CDS_movcompra.FieldByName('codigo').AsString;
FRM_movcompra.EDT_Valor.Text := DM.Cds_movcompra.FieldByName('valor').AsString;
FRM_movcompra.MSK_DataCompra.Text := DM.CDS_movcompra.FieldByName('data_compra').AsString;
FRM_MovCompra.CB_CodVeiculo.Text := DM.CDS_MovCompra.FieldByName('codigo_veiculo').AsString;
FRM_MovCompra.CB_CodCliente.Text := DM.Cds_MovCompra.FieldByName('codigo_cliente').AsString;
FRM_MovCompra.CB_CodBanco.Text := DM.CDS_MovCompra.FieldByName('codigo_banco').AsString;
FRM_Consultas.Close;
FRM_MovCompra.ARQ_Alterar.Enabled := True;
FRM_MovCompra.ARQ_Excluir.Enabled := True;
end
else
IF FRM_Consultas.Caption = 'Movimento de Venda' then
begin
codigo := DM.CDS_Consulta.fieldbyname('codigo').AsInteger;
DM.CDS_movvenda.Active := False;
40
DM.SQL_movvenda.Active := False;
DM.SQL_movvenda.CommandText := 'select * from movvenda where codigo = '+ inttostr(codigo);
DM.SQL_movvenda.Active := True;
DM.CDS_movvenda.Active := True;
FRM_movvenda.Enabled := True;
FRM_movvenda.lbl_codigo.Caption := DM.CDS_movvenda.FieldByName('codigo').AsString;
FRM_movvenda.EDT_Valor.Text := DM.Cds_movvenda.FieldByName('valor').AsString;
FRM_movvenda.MSK_Datavenda.Text := DM.CDS_movvenda.FieldByName('data_venda').AsString;
FRM_Movvenda.CB_CodVeiculo.Text := DM.CDS_Movvenda.FieldByName('codigo_veiculo').AsString;
FRM_Movvenda.CB_CodCliente.Text := DM.Cds_Movvenda.FieldByName('codigo_cliente').AsString;
FRM_Movvenda.CB_CodBanco.Text := DM.CDS_Movvenda.FieldByName('codigo_banco').AsString;
FRM_Movvenda.CB_PlanoPagamento.Text := DM.CDS_MovVenda.FieldByName('cod_planopagamento').AsString;
FRM_Consultas.Close;
FRM_Movvenda.ARQ_Alterar.Enabled := True;
FRM_Movvenda.ARQ_Excluir.Enabled := True;
end
end;
Listagem 7 – Utilizando Duplo Clique na Consulta
41
CAPÍTULO 5 - IMPLANTAÇÃO
Implantação
Após o termino da implementação vem à fase de implantação, ou seja, instalar o
software disponibilizando para o usuário final.
Nesta fase o sistema foi implantado na empresa contratante. Na implantação foi feita
a importação da antiga base de dados para as novas tabelas, e instalado o software no
servidor e o client nas estações de trabalho de cada usuário.
Os usuários receberam treinamentos e instruções de como utilizar o sistema.
42
CAPÍTULO 6 - VERIFICAÇÃO
6.1 Análise dos Resultados
Nesta fase devem ser verificados os resultados, e se estão de acordo com o
esperado.
Na Figura 17 é apresentado o resultado do cronograma de atividades.
Atividade Mar Abr Mai Jun Jul Ago Set Out Nov
Levantamento
ferramentas de
desenvolvimentos e
banco de dados
existentes
OK OK
Estudo da
ferramenta escolhida
(Delphi 6)
OK OK
Estudo do banco de
dados escolhido
(Firebird)
OK OK
Análise de requisitos OK OK
Projeto do sistema OK OK
Implementação OK OK OK
Implantação OK OK
Testes OK OK
Análise dos
Resultados
OK OK
FIGURA 17 - Cronograma de atividades/período
43
6.2 Quanto ao Levantamento de Requisitos
Compreendi mento das necessidades, levando a visão de um projeto estruturado aos
usuários, a mesma visão do que deve ser construído para resolução do problema.
Desenvolvedor e clientes, em conjunto, buscando levantar e priorizar as necessidades dos
futuros usuários do software.
6.3 Quanto à Análise de Requisitos
Estudo detalhado dos dados levantados, onde modelos foram construídos a fim de
representar o sistema de software a ser desenvolvida, estratégia de solução das
necessidades, e definição do sistema em geral.
6.4 Quanto ao Projeto
Escolha da ferramenta de softwares utilizada para o desenvolvimento do sistema,
definição da arquitetura do sistema, definição do sistema gerenciador de banco de dados
(SGBD).
6.5 Quanto à Implementação
A implentação do sistema ocorreu de acordo com o proposto, dentro do cronograma
e sem erros.
44
66 Quanto à Validação
O sistema de software está atendendo às necessidades do cliente.
7 - REFERÊNCIAS BIBLIOGRÁFICAS
Algarves, Universidade. “Modelo Cascata ou Clássico”. [Internet: http://w3.ualg.pt/~pventura/ep/aulas_tp/t1_g13.pdf]
CELEPAR, Companhia de Informática do Paraná. “Modelo aplicado de descrição, qualificação, análise e validação”. [Internet: http://www.pr.gov.br/batebyte/edicoes/1999/bb93/requisito.htm] Delphi + Mais. “Modelo Cascata ou Clássico”. [Internet: http://www.delphimais.com/modules/wfsection/article.php?articleid=1] HAERTEL, ANDERSON RODRIGUES “Introdução ao Firebird” São Paulo, 2002. 45p. MONTEIRO SILVIO TAVARES “Como Fazer e Gerenciar Usando a Informática” Florianópolis, 2004. 267p. PATTON, ROBERT “Projetando e Administrando Banco de Dados SQL Server 2000” Rio de Janeiro, Alta Books, 2002. 792p. SILVA, IVAN JOSÉ DE MECENAS “Desenvolvendo com Borland Delphi 6 & InterBase
6” Rio de Janeiro, Book Express, 2001. 179p.