desenvolvimento de aplicações desktop delphi prof. melo

79
Desenvolvimento de Desenvolvimento de Aplicações Desktop Aplicações Desktop Delphi Delphi Prof. Melo Prof. Melo

Upload: internet

Post on 21-Apr-2015

149 views

Category:

Documents


9 download

TRANSCRIPT

Page 1: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Desenvolvimento de Desenvolvimento de Aplicações DesktopAplicações DesktopDelphiDelphiProf. MeloProf. Melo

Page 2: 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.

Page 3: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

3

Competência

Identificar os componentes de aceso a banco de dados, aplicando as técnicas apropriadas para implementação de aplicações cliente servidor

Page 4: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

4

Roteiro

IDE DelphiPrincipais componentes acesso a banco de dadosManipulação dos componentes Eventos PropriedadesRelatóriosAtividade para avaliação da competência

Page 5: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

5

Criando Uma Conexão ODBC

Vá em:1. Iniciar do Windows2. Configurações3. Painel de Controle4. Ferramentas Administrativas5. Fontes de Dados ODBC

Page 6: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Criando Uma Conexão ODBC – Windows 7

Passo a passo:1. Vá na pasta c:\windows\sysWon642. Execute o aplicativo odbcad32.exe

Page 7: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

7

Criando Uma Conexão ODBC

Para adicionar uma nova fonte clique no botão Adcionar

Page 8: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

8

Access

Aparecerá esta tela com os drives disponíveis para conexãoVamos escolher o Driver do Microsoft Access (*.mdb) e clicar em concluir

Page 9: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

9

Access

Informar o nome da fonte de dados, ex: CTD2008Selecionar o Banco de Dados, clicando no botão selecionar

Page 10: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

10

Access

Informe onde está o arquivo do bancoDepois confirme clicando no ok

Page 11: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

11

SQL Server

Aparecerá esta tela com os drives disponíveis para conexãoVamos escolher o Driver do SQL Server e clicar em concluir

Page 12: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

12

SQL Server

Informar o nome do aliasEscolher o servidor no qual deseja se conectar

Page 13: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

13

SQL Server

Após informado os dados clicar em avançar.

Page 14: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

14

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.

Page 15: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

15

SQL Server

Escolher o banco de dados no qual deseja se conectar.Clicar em avançar.

Page 16: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

16

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.

Page 17: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

17

SQL Server

Aparecerá esta tela com as informações da conexãoClique no botão testar conexão pra verificar se está conectando com sucesso.

Page 18: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

18

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.

Page 19: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

19

No Delphi

Abrir o Delphi e Iniciar um nova aplicação

Page 20: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

20

No Delphi

Adcionar um DataModule ao projeto

Page 21: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

21

No Delphi

Page 22: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

22

Paleta BDE

Table

DataBase

Page 23: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

23

No DataModule

Adcionar o componente DataBase

Informar o Alias criado anteriormente

Informar o nome do componente

Page 24: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

24

Propriedades do DataBase

Colocar a opçãoLoginPropt para True

Colocar a opçãoConnected para True

Page 25: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

25

Table

Adcionar um TableNo DataModule

Page 26: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

26

Table

Informar o DataBaseName Informar a

TableName

Ativar a Table

Page 27: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

27

Adcionando os Campos a Table

1. Dar um duplo clique no componente Table1 do DataModule2. Irá aparecer uma caixa, onde clicaremos com botão direito

do mouse nesta caixa3. Escolheremos a opção “Add All Fields”

1

23

Page 28: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

28

DataSource

Page 29: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

29

DataSource

1. Colocar um DataSource no DataModule2. Escolher a tabela a qual irá se vincular

1 2

Page 30: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

30

Paleta DataControls

DBGrid

DBNavigator

DBText

DBEdit

Page 31: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

31

Form Principal

1. Colocar os Componentes DBGrid e DBNavigator2. Fazer com que o Form Principal use o DataModule

1

2

Page 32: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

32

Form Principal

Vincular a propriedade DataSource do DBNavigator e DBGrid ao DataSource1

Page 33: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

33

Ir no Object Inspector do Form Principal e escolher a aba de eventos, o evento OnCreate

Page 34: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

34

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.

Page 35: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

35

Ir no Object Inspector do Form Principal e escolher a aba de eventos, o OnDestroy

Page 36: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

36

Form Principal

Colocar os seguintes comandos abaixo, no evento OnDestroy do Form Principal, para fechar a conexão.

Page 37: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

37

Propriedades do Projeto

1. Ir no Menu Project -> options2. Colocar a criação do datamodule como o primeiro

Page 38: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

38

Rodar a Aplicação

Resultado

Page 39: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

39

Componente TTable Locate Filter

Page 40: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

40

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 registrosPara utilizar o Locate em um formulário é necessário colocar na claúsula USES do form, a classe DB.

Page 41: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

41

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.

Page 42: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

42

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

Page 43: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

43

Locate

Clique do botão consultar com locate, colocar este código.

Page 44: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

44

Filter

Clique dos botões Filtrando e Limpando filtro.

Page 45: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

45

Tela antes de utilizar os comandos Locate e Filter

Page 46: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

46

Locate

Ao informar no Edit a palavra Wra, o locate localizou o primeiro registro da tabela que continha a palavra.

Page 47: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

47

Locate

Informando um nome que não existe na tabela

Page 48: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

48

Filter

Foi informado a palavra Snapper, ele filtrou e deixou apenas os registro que continham a palavra informada.

Page 49: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

49

Dica

CharSet da aspa simples #39Podemos concatenar strings que precisam de aspas simples assim: Variavel := 'state = '+#39+Texto+#39; Variavel := ‘state = ‘ + ‘’’’ + texto + ‘’’’;

Page 50: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

50

Status do Componente Table

InsertAppendEditPostCancelDeleteRefresh

Page 51: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Relacionando Tabelas

Mestre detalhe: Caso tivéssemos duas tabelas, uma para os

médicos e outra para as consultas dos médicos.

51

Page 52: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Relacionando Tabelas

Ao selecionar o médico automaticamente seria mostrado no grid de consultas, apenas as consultas do mesmo.

52

Page 53: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Relacionando Tabelas

53

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

Page 54: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Instalando Componentes de Relatório

Menu Component – Install package

54

Page 55: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Instalando Componentes de Relatório

Adicionar os pacotes: Dclqrt70.bpl Dcltqr70.bpl

Ambos estão na pasta bin do delphi.

55

Page 56: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

56

Relatório com Table

Passos:1. Criar um novo projeto2. Adicionar um DataModule ao projeto3. Adicionar um DataBase e uma Table ao

DataModule4. Configurar o DataBase e a Table conforme foi

visto anteriormente5. Adicionar mais um formulário ao projeto e

renomeá-lo para formImpressao

Page 57: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

57

Relatório com Table

Passos (continuação):6. No formImpressao adicionar um quickRep

(aba QReport)

Page 58: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

58

Relatório com Table

Ligar o QuickRep a Table do DataModule

Page 59: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

59

Relatório com Table

Adicionar duas QRBands ao QuickRep

Page 60: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

60

Relatório com Table

Configurar o BandType da segunda QrBand para rbDetail

Page 61: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

61

Relatório com Table

Adicionar um QRLabel na banda de Título

Page 62: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

62

Relatório com Table

Colocar um QRDBText na banda detalhesConfigurar o DataField e DataSet

Page 63: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

63

Relatório com Table

No formulário principal colocar um botão, este botão servirá para chamar o formulário de impressão.

Page 64: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

64

Relatório com Table

No clique do botão colocar o código abaixo

Page 65: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

65

Executando a Aplicação

Page 66: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Atividade Avaliação Competência

QualidadeModelo de DadosCritérios

66

Page 67: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

67

Qualidade

Renomear os componentes para facilitar sua identificaçãoUtilizar 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”

Page 68: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

68

Qualidade

Utilizar comentário no código-fonte, para facilitar o entendimento.A cada ação do usuário o sistema deverá responder.

Page 69: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

69

Qualidade

Identar o código fonte para facilitar o entendimento e a identificação dos blocos de comando

Page 70: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Formulário Principal

70

Page 71: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

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

Page 72: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

Modelagem do Banco

Page 73: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

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: 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

Page 74: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

74

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

Page 75: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

75

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 atividadeTodas as informações do contato, endereço, telefone e compromissos serão obrigatórias, portanto realizar a validação dos mesmos.

Page 76: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

76

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.

Page 77: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

77

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.

Page 78: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

78

Atividade Para Avaliação da Competência (3)

Utilizar componentes de manipulação de bando de dados em delphi

Page 79: Desenvolvimento de Aplicações Desktop Delphi Prof. Melo

79

Perguntas...