DAD terceira competencia - Delphi

Download Report

Transcript DAD terceira competencia - Delphi

Desenvolvimento de
Aplicações Desktop
Delphi
Prof. Melo
Apresentação
Nome: Hildeberto Melo;
Técnico em Desenvolvimento de Software.
Ibratec, PE;
Bacharel em Sistemas de Informação. FIR,
PE;
Pós-Graduação em Docência do Ensino
Superior. FMN, PE;
Mestre em Ciência da Computação.
CIN/UFPE.
Competência
Identificar os componentes de
aceso a banco de dados, aplicando
as técnicas apropriadas para
implementação de aplicações
cliente servidor
3
Roteiro
IDE Delphi
Principais componentes acesso a banco de
dados
Manipulação dos componentes


Eventos
Propriedades
Relatórios
Atividade para avaliação da competência
4
Criando Uma Conexão ODBC
Vá em:
1.
2.
3.
4.
5.
Iniciar do Windows
Configurações
Painel de Controle
Ferramentas Administrativas
Fontes de Dados ODBC
5
Criando Uma Conexão ODBC –
Windows 7
Passo a passo:
1.
2.
Vá na pasta c:\windows\sysWon64
Execute o aplicativo odbcad32.exe
Criando Uma Conexão ODBC
Para adicionar uma nova fonte clique no botão Adcionar
7
Access
Aparecerá esta tela com os drives disponíveis para conexão
Vamos escolher o Driver do Microsoft Access (*.mdb) e clicar em concluir
8
Access
Informar o nome da fonte de dados, ex: CTD2008
Selecionar o Banco de Dados, clicando no botão selecionar
9
Access
Informe onde está o arquivo do banco
Depois confirme clicando no ok
10
SQL Server
Aparecerá esta tela com os drives disponíveis para conexão
Vamos escolher o Driver do SQL Server e clicar em concluir
11
SQL Server
Informar o nome do alias
Escolher o servidor no qual deseja se conectar
12
SQL Server
Após informado os dados clicar em
avançar.
13
SQL Server
Caso não haja um usuário definido no banco de dados escolher a opção Com autenticação do
windows, caso contrário escolha a opção com autenticação do SQL Serve, nesse caso deverá ser
informado o login e senha.
Clicar em avançar.
14
SQL Server
Escolher o banco de dados no qual deseja se conectar.
Clicar em avançar.
15
SQL Server
Aparecerá esta tela com opções de mudança de idioma e outras
informações, não há necessidade de alterar as opções.
Clicar em concluir.
16
SQL Server
Aparecerá esta tela com as informações da conexão
Clique no botão testar conexão pra verificar se está conectando com
sucesso.
17
SQL Server
Aparecerá esta tela com o resultado do teste.
Após estas etapas, basta ir clicando nos botões de OK/Confirmar e está
concluída a etapa de criação da conexão.
18
No Delphi
Abrir o Delphi e Iniciar um nova aplicação
19
No Delphi
Adcionar um DataModule ao projeto
20
No Delphi
21
Paleta BDE
Table
DataBase
22
No DataModule
Adcionar o componente DataBase
Informar o Alias
criado anteriormente
Informar o nome
do componente
23
Propriedades do DataBase
Colocar a opção
LoginPropt para True
Colocar a opção
Connected para True
24
Table
Adcionar um Table
No DataModule
25
Table
Informar o
DataBaseName
Informar a
TableName
Ativar a Table
26
Adcionando os Campos a Table
1. Dar um duplo clique no componente Table1 do DataModule
2. Irá aparecer uma caixa, onde clicaremos com botão direito
do mouse nesta caixa
3. Escolheremos a opção “Add All Fields”
3
2
1
27
DataSource
28
DataSource
1. Colocar um DataSource no DataModule
2. Escolher a tabela a qual irá se vincular
1
2
29
Paleta DataControls
DBGrid
DBEdit
DBNavigator
DBText
30
Form Principal
1.
2.
Colocar os Componentes DBGrid e DBNavigator
Fazer com que o Form Principal use o DataModule
1
2
31
Form Principal
Vincular a propriedade DataSource do
DBNavigator e DBGrid ao DataSource1
32
Ir no Object Inspector do Form Principal e
escolher a aba de eventos, o evento
OnCreate
33
Form Principal
Colocar os seguintes comandos abaixo, no
evento OnCreate do Form Principal, para
ativar a conexão com o banco de dados e
ativar a tabela.
34
Ir no Object Inspector do Form Principal e
escolher a aba de eventos, o OnDestroy
35
Form Principal
Colocar os seguintes comandos abaixo, no
evento OnDestroy do Form Principal, para
fechar a conexão.
36
Propriedades do Projeto
1.
2.
Ir no Menu Project -> options
Colocar a criação do datamodule como o primeiro
37
Rodar a Aplicação
Resultado
38
Componente TTable


Locate
Filter
39
Localizando Registros
Para localizar registros você pode usar vários métodos, mas o melhor deles é o Locate, no exemplo
abaixo é feita uma pesquisa exata.

if not DtmCli.Tbl.Locate('CodCli', Edt.Text, []) then
ShowMessage('Cliente não encontrado.');
Você também pode fazer uma pesquisa parcial e/ou sem sensitividade de caso usando o terceiro
parâmetro, que é um conjunto de opções.

DtmCli.Tbl.Locate('Nome', Edt.Text, [loPartialKey, loCaseInsensitive]);
Lopartialkey – pesquisas parciais, só precisa informar parte do nome.
LocaseInsensitive – desconsidera maiúsculas e minúsculas
Se você precisar fazer uma pesquisa por mais de um campo, separe os nomes dos campos por
ponto e vírgula e use a função VarArrayOf para criar um array com os valores que você quer
procurar.

if not DtmPed.Tbl.Locate('Vendedor;Data', VarArrayOf([EdtVendedor.Text, EdtData.Text]),
[loCaseInsensitive]) then ShowMessage('O vendedor não realizou nenhuma venda nessa data');
Caso os campos pesquisados sejam indexados, a pesquisa será muito mais eficiente, senão será
criado um filtro temporário da BDE para localizar os registros
Para utilizar o Locate em um formulário é necessário colocar na claúsula USES do form, a classe
DB.
40
Utilizando o filter
Utilizamos a propriedade Filter e Filtered do
componente TTable, para filtrar um
determinado número de registros na tabela.
A propriedade Filter recebe uma String com
o filtro. Ex: nomeDoCampo = ‘conteúdo da
pesquisa’
A propriedade Filtered ativa o filtro, tendo
como valores: false ou true.
41
Tela
Adicionar na tela


Um Edit e um Botão, para ser utilizado na
consulta com Locate.
Um Edit e dois Botões para ser utilizado com o
filter
42
Locate
Clique do botão consultar com locate,
colocar este código.
43
Filter
Clique dos botões Filtrando e Limpando
filtro.
44
Tela antes de utilizar os comandos Locate e
Filter
45
Locate
Ao informar no Edit a palavra Wra, o locate
localizou o primeiro registro da tabela que
continha a palavra.
46
Locate
Informando um nome que não existe na
tabela
47
Filter
Foi informado a palavra Snapper, ele filtrou e deixou apenas
os registro que continham a palavra informada.
48
Dica
CharSet da aspa simples #39
Podemos concatenar strings que precisam
de aspas simples assim:


Variavel := 'state = '+#39+Texto+#39;
Variavel := ‘state = ‘ + ‘’’’ + texto + ‘’’’;
49
Status do Componente Table
Insert
Append
Edit
Post
Cancel
Delete
Refresh
50
Relacionando Tabelas
Mestre detalhe:

Caso tivéssemos duas tabelas, uma para os
médicos e outra para as consultas dos
médicos.
51
Relacionando Tabelas
Ao selecionar o médico automaticamente
seria mostrado no grid de consultas,
apenas as consultas do mesmo.
52
Relacionando Tabelas
Na propriedade MasterSource da tabela de
consultas, iriamos escolher a tabela de
médico
Na propriedade MasterField da tabela de
consultas, criar o vínculo entre chaves
primária e estrangeira
53
Instalando Componentes de Relatório
Menu Component – Install package
54
Instalando Componentes de Relatório
Adicionar os pacotes:


Dclqrt70.bpl
Dcltqr70.bpl
Ambos estão na pasta bin do delphi.
55
Relatório com Table
Passos:
1.
2.
3.
4.
5.
Criar um novo projeto
Adicionar um DataModule ao projeto
Adicionar um DataBase e uma Table ao
DataModule
Configurar o DataBase e a Table conforme foi
visto anteriormente
Adicionar mais um formulário ao projeto e
renomeá-lo para formImpressao
56
Relatório com Table
Passos (continuação):
6.
No formImpressao adicionar um quickRep
(aba QReport)
57
Relatório com Table
Ligar o QuickRep a Table do DataModule
58
Relatório com Table
Adicionar duas QRBands ao QuickRep
59
Relatório com Table
Configurar o BandType da segunda
QrBand para rbDetail
60
Relatório com Table
Adicionar um QRLabel na banda de Título
61
Relatório com Table
Colocar um QRDBText na banda detalhes
Configurar o DataField e DataSet
62
Relatório com Table
No formulário principal colocar um botão,
este botão servirá para chamar o formulário
de impressão.
63
Relatório com Table
No clique do botão colocar o código abaixo
64
Executando a Aplicação
65
Atividade Avaliação Competência
Qualidade
Modelo de Dados
Critérios
66
Qualidade
Renomear os componentes para facilitar sua identificação
Utilizar nomes sugestivos para as variáveis e componentes,
evitar utilizar apenas uma letra.
 Ex: x: integer, a: string; “não utilizar”
 Ex: nomeFuncionario: string; idadeFuncionario: integer;
As mensagens deverão ser claras e precisas, devendo informar ao
usuário o que ele deve fazer. Evitando mensagens vagas

Incorreto
 “valor inválido”
 “Ocorreu um erro”
 “Informar o valor”

Correto
 “informar a data de nascimento no formato dd/mm/aaaa”
 “a idade deverá ser maior que zero”
 “o valor do salário deverá ser maior que zero”
67
Qualidade
Utilizar comentário no código-fonte, para
facilitar o entendimento.
A cada ação do usuário o sistema deverá
responder.
68
Qualidade
Identar o código fonte para facilitar o
entendimento e a identificação dos blocos
de comando
69
Formulário Principal
70
Formulários Cadastro/Alteração
O sistema deverá ter formulários para
efetuar o cadastro e alteração das diversas
tabelas utilizadas pelo sistema.
71
Modelagem do Banco
Atividade Para Avaliação da
Competência
Criar um sistema que deva conter as seguintes informações
referentes ao modelo de dados apresentados anteriormente:
 Contato
 Código: inteiro auto incremento
 Nome : string;
 Data de nascimento: Date;

Compromisso




Código: inteiro auto incremento
Descrição: string;
Data: Date;
Código do contato: inteiro
 Esta informação será a ligação entre o contato e seus compromissos
73
Atividade Para Avaliação da
Competência
Criar um sistema que deva conter as seguintes informações
referentes ao modelo de dados apresentados anteriormente:
 Telefone
 Código: inteiro auto incremento
 Ddd: string;
 Número: string;
 Código do contato: inteiro
 Esta informação será a ligação entre o contato e seus telefones

Endereço





Código: inteiro auto incremento
Logradouro: string; complemento: string;
Bairro: string; cidade: string;
Uf: string;
Cep: string;
 Código do contato: inteiro
 Esta informação será a ligação entre o contato e seus endereços
74
Atividade Para Avaliação da
Competência (2)
O formulário deverá estar devidamente
organizado


Distribuir os componentes forma a facilitar o
uso do sistema pelo usuário
Alinhamento dos componentes
Aplicar os critérios de qualidade vistos
anteriormente para esta atividade
Todas as informações do contato,
endereço, telefone e compromissos serão
obrigatórias, portanto realizar a validação
dos mesmos.
75
Atividade Para Avaliação da
Competência (3)
Para realizar o cadastro de um
compromisso, telefone ou endereço será
necessário vincular o mesmo a um contato,
lembre-se que o atributo “código” será
utilizado para tal rotina.
76
Atividade Para Avaliação da
Competência (3)
O sistema deverá implementar as rotinas
de cadastro, alteração, remoção, consulta e
impressão de contatos e demais
informações.
Na remoção de um funcionário, se o
mesmo tiver compromissos, telefones e
endereços vinculados, remover os
mesmos.
77
Atividade Para Avaliação da
Competência (3)
Utilizar componentes de manipulação de
bando de dados em delphi
78
Perguntas...
79