You are on page 1of 25

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof.

Angelo Augusto Frozza


Introduo Programao em Delphi (verso 0.2) Usando Banco de Dados

Texto adaptado da apostila Delphi 7 para Desenvolvimento de Sistemas, desenvolvida por Ronaldo Lavestein Casa Branca - SP].

Para cada comando a ser executado nesta apostila ser utilizada a barra de menu do Delphi, ou, quando existir, ou for mais conveniente, uma combinao de teclas, ou ainda, uma tecla de funo. Por exemplo: para visualizar a tela Object Inspector, pode-se utilizar a barra de menus View -> Object Inspector ou simplesmente teclar [F11]. Em alguns casos, quando no for utilizada nem a barra de menus, ou uma tecla de funo, ou combinao de teclas, o procedimento ser solicitado atravs de uma linha de texto, como, por exemplo: Selecione a guia Additional na paleta de componentes do Delphi e insira um componente Image

Antes de dar prosseguimento, verifique se voc j instalou o SGBD PostgreSQL e o Driver ODBC para ele.

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
Roteiro 1. INTRODUO AO POSTGRESQL.................................................................................. 3 2. CRIANDO UM DATA SOURCE PARA O BANCO DE DADOS ............................................... 5 3. COMO PREPARAR O BANCO DE DADOS PARA SER USADO NO SISTEMA? .......................... 7 4. COMO CRIAR UMA TELA PADRO? ............................................................................. 11 5. COMO UTILIZAR UMA TELA PADRO DO SISTEMA? ...................................................... 13 6. COMO UTILIZAR UM DBGRID? .................................................................................. 14 7. COMO UTILIZAR UM DBNAVIGATOR? ......................................................................... 16 8. COMO CRIAR CAMPOS LOOKUP? ............................................................................... 18 9. COMO INSERIR CAMPOS DE UMA TABELA NA TELA? .................................................... 20 10. COMO CRIAR UMA TELA DE LOGIN DO SISTEMA? ....................................................... 21 11. COMO CRIAR RELACIONAMENTO MASTER/DETAIL NA APLICAO? ............................ 23

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 1. Introduo ao PostgreSQL
Este tpico apresenta algumas informaes iniciais para o uso do PostgreSQL nas atividades da disciplina. Procedimentos a serem executados: Faa o download e instale a ltima verso do PostgreSQL

(http://www.postgreSQL.org.br). Siga as instrues do instalador; Aps a instalao do SGBD, aparecer o Application Stack Builder. Na tela desse sistema, marque para fazer a instalao do driver ODBC. Siga as instrues do instalador;

Figura 1 Selecionando o driver ODBC no Application Stack Builder

Nas aulas, ser utilizada apenas a interface texto do terminal do PostgreSQL. Opcionalmente, os alunos podero utilizar a interface grfica PGAdmin III que acompanha o SGBD.

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
Procure saber que h uma diferena entre o terminal do Prompt de Comando e do terminal do PostgreSQL. A dica observar a linha em que est o cursor do mouse para diferenciar.
a )

b )

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 2. Criando um Data Source para o Banco de Dados
Este tpico dever ser realizado uma nica vez para preparar a conexo do Banco de Dados a ser utilizada no sistema a ser criado. Procedimentos a serem executados: V em Painel de controle -> Ferramentas administrativas -> Fontes de Dados (ODBC) Na tela que abrir, selecione a aba DSN de Sistema (System DSN)

Figura 2 Adicionando um DSN de Sistema

Selecione o boto Novo (Add...) Escolha PostgreSQL ODBC Driver (UNICODE). Pressione Fim (Finish)

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza

Figura 3 Configurando um DSN de Sistema

Preencha os campos com os dados para conexo com o Banco de Dados:


o o o o o o Data Source um nome que vai identificar a conexo; Database o nome do banco de dados; Server o nome do servidor do banco de dados; User Name - o nome do usurio do banco de dados; Port 5432 por padro para o PostgreSQL; Password a senha do usurio do banco de dados;

Pressione o boto Teste para verificar se h conexo com o banco de dados. Se no conectar, revise as informaes acima Pressione o boto Salvar Pressione o boto OK

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 3. Como preparar o banco de dados para ser usado no sistema?
Este tpico tem o propsito de ensinar como preparar o banco de dados e suas tabelas para serem utilizados pelo sistema. Para tanto, utilize o backup do banco para o sistema VideoLocadora, fornecido pelo professor. Procedimentos a serem executados: File -> New -> DataModule (tipo especial de tela para agrupar os objetos de banco de dados). Salve a Unit da tela como U_DM.pas Altere a propriedade Name para dm e salve a Unit Selecione a guia ADO na paleta de componentes do Delphi e insira um componente ADOConnection (conexo com o banco de dados) Insira um componente ADOTable (tabela) para cada tabela do banco de dados (para o nosso exemplo devem ser inseridos 17 ADOTable) Selecione a guia DataAccess na paleta de componentes do Delphi e insira um componente DataSource (origem dos dados) para cada tabela do banco de dados (para o nosso exemplo devem ser inseridos 17 DataSource)

Figura 4 - Componentes da tela DataModule (DM) do sistema

Altere as propriedades de cada componente conforme as tabelas a seguir:


ADOConnection1 LoginPrompt Name ConnectionString... Contedo False adoConexao Clique em ... e siga as instrues a seguir Significado Desabilita tela de login (no pede usurio e senha) ao fazer conexo com o banco de dados. Nome do componente AdoConnection String para conexo ao banco de dados

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza

Clique em
Figura 5 configurando o ADOConnection (01)

Escolha Microsoft OLE DB Provider for ODBC Drivers e clique em Avanar>>.

Figura 6 configurando o ADOConnection (02)

Figura 7 configurando o ADOConnection (02)

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
Selecione o banco de dados (VideoLocadora) Remova o Nome do usurio e desmarque Senha em branco Clique no boto Testar Conexo para testar se a conexo foi bem sucedida Clique Ok nesta e nas prximas, at retornar Unit dm Selecione o primeiro componente ADOTable
ADOTable1 Connection Name TableName Contedo adoConexao adotPais Escolha paises Significado Conexo ao Banco de dados em que se encontra a tabela desejada Nome do componente ADOTable Nome da tabela no banco de dados

D duplo-clique no componente adotPais. Tecle [Ctrl] + [F] para inserir os campos da tabela. O resultado dever ficar como o da figura a seguir:

Figura 8 configurando o ADOTable

Selecione cada campo e altere suas propriedades, quando necessrio. Por exemplo, altere a propriedade DisplayLabel do campo id_pais para Cdigo do Pas. Isto far com que em todas as telas que usarem este campo aparea como Cdigo do Cliente em seu rtulo e no mais id_pais. Outra propriedade a EditMask, usada com campos do tipo Texto e Data/Hora, que define a mscara do campo (Ex.: cep = 99.999999). Para campos do tipo Moeda, altere a propriedade Currency para True, para que lhe seja aplicado o formato monetrio. Quando precisar acessar informaes de um campo em uma tabela, use a sintaxe: DataModule.TabelaCampo.Propriedade. Assim, para atribuir o contedo do campo pais varivel nomeDoPais, use nomeDoPais := dm.tbPaispais.Value; (no precisa fazer isso agora);

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
Selecione o componente DataSource1 e escolha adotPais na propriedade DataSet. Altere a propriedade AutoEdit (edio automtica nos dados) para False. Altere a propriedade Name para dsPais. O resultado final dever ser como o mostrado na tela a seguir:

Figura 9 configurando o DataSource

Faa o mesmo para as demais tabelas.

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 4. Como criar uma tela padro?
O uso de uma tela padro alm de deixar as telas do sistema com um layout padronizado, agiliza o processo de criao das mesmas, pois, todos os objetos, propriedades e eventos, comuns a todas as telas, no so criados novamente, e sim, herdados da tela padro, atravs do conceito de herana de formulrios. Procedimentos a serem executados: Crie um novo form (File -> New -> Form), altere sua propriedade Name para frmCadastroPadrao. Altere as demais propriedades, conforme tabela vista na seo Como alterar as propriedades da tela da apostila. Salve a Unit como U_CadastroPadrao Observe o layout da tela na figura a seguir e acrescente os objetos, na ordem em que so citados na lista de objetos abaixo:

2 Close; 3

Figura 10 Layout da tela padro

Lista de objetos: (Deixe os tamanhos dos GroupBox proporcionais aos da figura)


Acrescente 04 GroupBox (guia Standard) com Align = alTop e a

propriedade Caption fica em branco 1 GroupBox com 01 Label, 01 Edit (Name=edPesquisar), 03 SpeedButton (aba Additional) 2 GroupBox com 01 DBGrid (Data Controls) com Align = alClient e a propriedade Name = dbgTabela 3 GroupBox com 03 DBNavigator (Data Controls) com Align = alLeft, um ao lado do outro. Use a propriedade +VisibleButtons para exibir/ocultar os botes do DBNavigator, pois o primeiro DBNavigator (Name =

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
dbnNavegador) dever conter apenas os botes nbFirst, nbPrior, nbNext, nbLast; o segundo (Name = dbnOperacao) dever conter apenas os botes nbInsert, nbDelete e nbEdit; e o terceiro (Name = dbnConfirmacao) dever conter apenas os botes nbPost e nbCancel 4 GroupBox vazio 01 StatusBar (Win32) com 03 paineis com propriedade Name = sbStatus e Width = 150 Pronto. Esse formulrio padro sera usado nas principais telas de cadastro do sistema;

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 5. Como utilizar uma tela padro do sistema?
Utilize este procedimento sempre que for criar uma tela baseada na tela padro do sistema. Em nosso exemplo ser utilizada uma tela padro para criao das telas do menu de Cadastros. Procedimentos a serem executados: File -> New -> Other Selecione a guia que tenha o nome do sistema atual (VideoLocadora) Selecione o nome da tela padro (frmCadastroPadrao, em nosso exemplo) Altere a propriedade Caption para Cadastro de Paises Altere a propriedade Name para FrmCadastroPais Salve a tela como U_CadastroPais Ajuste as propriedades e eventos dos objetos que compe a tela OBS: Os componentes DBGrid e DBNavigator sero explanados no prximo tpico.

Figura 11 Usando a tela padro

No evento OnShow da tela digite: dm.tbPais.Open; // abre a tabela de paises No evento OnClose da tela digite: dm.tbPais.Close; // fecha a tabela de clientes

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 6. Como utilizar um DBGrid?
Utilize este procedimento para apresentar os dados de um banco de dados em formato de grade, em linhas e colunas. Procedimentos a serem executados: Abra a tela de Cadastro de Paises No menu, v em File->Use Unit e escolha a tela em que se encontram as tabelas (dm) Selecione o componente DBGrid e altere a propriedade DataSource (origem dos dados) de acordo com a tabela a ser apresentada na grade. Escolha para este exemplo dsPais D um duplo-clique sobre o DBGrid e clique no boto Add all Fields Se for o caso, selecione os campos que no faro parte da grade e clique no boto Delete Selected para remov-los. Caso a grade faa parte de uma tela padro, s ser possvel remover o campo atravs da janela Object Treeview.

Para deixar o DBGrid zebrado: No evento OnDrawColumnCell do DBGrid digite os seguintes comandos:

if Odd(dm.tab_Clientes.RecNo) and (dm.tab_Clientes.State <> dsInsert) then begin


//Lembre-se de colocar a Unit DB na clusula uses na Unit da tela.

// muda a cor do pincel DBGrid1.Canvas.Brush.Color := clMoneyGreen; // Preenche o fundo com a cor especificada DBGrid1.Canvas.FillRect(Rect); // desenha as clulas da grade DBGrid1.DefaultDrawDataCell(Rect,Column.Field,State); end;

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
Para ordenar os dados da grade ao clicar no ttulo do campo: A ordenao ser feita atravs da propriedade de tabela IndexFieldNames, que define o nome do ndice para a classificao, conforme o campo clicado na grade (Column.FieldName) Crie na tela padro uma varivel global chamada ascendente do tipo Boolean para que todas as telas de cadastro passem a utiliz-la No evento OnShow, da tela padro, digite: Ascendente := False; Em frmCadastroPais, no evento OnTitleClick do DBGrid digite:

ascendente:= not ascendente; if (ascendente) then begin dm.tbPais.IndexFieldNames := Column.FieldName + ' end else begin dm.tbPais.IndexFieldNames := Column.FieldName + ' end;

ASC'

DESC';

OBS: No digite os comandos na Unit da tela padro, somente na de cadastro.

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 7. Como utilizar um DBNavigator?
Utilize este procedimento para navegar entre os registros da tabela. Procedimentos a serem executados: Selecione os componentes DBNavigator e altere a propriedade DataSource (origem dos dados) de acordo com a tabela a ser utilizada na tela. No exemplo anterior foi usado o datasource dsPais Para exibir / ocultar qualquer boto utilize a propriedade VisibleButtons:

Figura 12 Configurando os botes do DBNavigator

VisibleButtons = True exibe o boto. VisibleButton = False oculta.

Significado dos botes do DBNavigator e seus comandos equivalentes: Utilize os comandos indicados abaixo, caso queira utilizar botes comuns ao invs do DBNavigator:

= equivale ao comando <Tabela>.First, ou seja, vai para o primeiro registro

= equivale ao comando <Tabela>.Prior, ou seja, vai para o registro anterior

= equivale ao comando <Tabela>.Next, ou seja, vai para o prximo registro = equivale ao comando <Tabela>.Last, ou seja, vai para o ltimo registro

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
o = equivale ao comando <Tabela>.Insert, ou seja, insere um registro em branco

= equivale ao comando <Tabela>.Delete, ou seja, apaga um registro

= equivale ao comando <Tabela>.Edit, ou seja, edita um registro para alterao

= equivale ao comando <Tabela>.Post, ou seja, grava dados no registro

= equivale ao comando <Tabela>.Cancel, ou seja, cancela alterao no registro

= equivale ao comando <Tabela>.Refresh, ou seja, atualiza dados nos controles

<Tabela> deve ser o nome da tabela para a qual se deseja manipular os registros.

OBS: Repita a execuo dos tpicos das pginas 11 15 para criar as demais telas do menu Cadastros (Tipos, Produtoras, ...) e do menu Movimentos (Locao), fazendo as devidas adaptaes, de acordo com a tabela utilizada, pois nos exemplos est sendo utilizada apena a tabela de Pases. A tela Cpias dever ser chamada por um boto na tela de Locao.

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 8. Como criar campos Lookup?
Este tpico vai ensinar os procedimentos para criar campos lookup, que exibem valores de campos de registros de tabelas primrias de um relacionamento. Aplique este tpico toda vez que desejar associar o campo que chaveestrangeira tabela relacionada. Como exemplo, na figura 13, o campo id_uf da tabela Cidades um bom exemplo para receber um campo LookUp, assim como o campo id_pais, na tabela Estados.

Figura 13 Exemplo de aplicao do campo LookUp na tabela Cidades

Procedimentos a serem executados: Visualize a tela de DataModule (dm) do Sistema, ou qualquer tela que possua um objeto ADOTable. Para isto tecle [Shift] + [F12] D duplo-clique sobre o objeto ADOTable desejado. Para nosso exemplo, escolha adotEstados Tecle [Ctrl] + [N] para inserir um novo campo o Em Fields Properties digite o nome do campo na caixa de texto Name, escolha o tipo do mesmo em Type e digite o tamanho em Size o Em Field Type marque o tipo do campo como Lookup o Em Lookup Definition escolha em Key Fields a chave estrangeira. Em Dataset escolha o nome da tabela primria. Escolha o nome da chave primria da tabela escolhida anteriormente em Lookup

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
Keys. E, finalmente, escolha o campo que aparecer como resultado em Result Field. o Para que seja exibido o nome do Pas na tabela de Estados deixe sua tela conforme o modelo a seguir:

Figura 14 Configurando um campo LookUp

Clique sobre o boto [OK] Acrescente o campo criado ao DBGrid da tela de Cadastro de Estados, ou, arraste-o junto aos demais campos na tela, como j foi feito com os outros campos da mesma Crie campos Lookup nas demais tabelas em que for necessrio e adicione-os aos respectivos DBGrids e telas

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 9. Como inserir campos de uma tabela na tela?
Execute este tpico sempre que for apresentar campos da tabela na tela, utilizando controles Data Controls (DBEdit, DBComboBox etc). Procedimentos a serem executados: (Utilize apenas um dos procedimentos) a) Automtico: Selecione o DataModule em que esto os componentes de banco de dados. Logo em seguida d um duplo-clique sobre o objeto AdoTable correspondente tabela que deseja pegar os campos. Selecione todos os campos que deseja incluir na tela e arraste-os para dentro da tela em que eles ficaro; Como exemplo, selecione a tela DataModule dm e o objeto AdoTable adotFilmes, selecione os seus campos e arraste-os para a tela frmCadastroFilmes. Neste caso so utilizados controles DBEdit; b) Manual: Selecione o objeto Data Control desejado, um DBEdit, por exemplo, e altere as propriedades DataSource (origem dos dados) e DataField (campo) de acordo com a informao a ser exibida ou editada da tabela;

Figura 15 Exemplo de Tela para Cadastro de Filmes

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 10. Como criar uma tela de login do sistema?
Este tpico tem o propsito de ensinar como criar uma tela de login para o seu sistema.

Figura 16 Layout da tela de Login

Procedimentos a serem executados: File -> New -> Form (cria uma nova tela); File -> Save All (Salve a Unit como U_Login na pasta Programas); Altere as propriedades da tela frmLogin, conforme tabela a seguir:
Name Height Width frmLogin 225 400 BorderStyle Position Caption bsDialog poScreenCenter Login

Acrescente um objeto Image e altere suas propriedades:


Height Width Stretch 84 113 True Left Top Picture... 4 4 HandShak.bmp

Acrescente um objeto GroupBox e altere suas propriedades:


Caption Left Height Logando no Sistema Name 4 Top 88 Width GrpBxLogin 96 382

Acrescente trs Labels (01 tela e 02 ao GrpBxLogin) e mude as propriedades:


Label1 Caption Alignment AutoSize WordWrap Font... Left, Top, Width, Height
SISTEMA COMERCIAL Verso 1.0

taCenter False True Comic Sans Ms, 14, Bord 140, 4, 208, 50

Label2 Usurio taLeftJustify True False 18, 20,-,-

Label 3 Senha taLeftJustify True False 18, 54,-,-

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
Acrescente ao GroupBox dois objetos Edit e altere suas propriedades:
Text Name PassWordChar CharCase Left, Top, Heigth, Width Edit1 (em branco) edApelido #0 ecUpperCase 64, 19, 21, 177 Edit2 (em branco) edSenha * ecLowerCase 64, 53, 21, 177

Acrescente ao GroupBox dois objetos BitBtn (Additional) e altere suas propriedades:


Kind Caption Name Left, Top, Heigth, Width BitBtn1 bkOk &OK BtnOk 272, 18, 25, 89 BitBtn2 bkCancel &Cancelar BtnCancelar 272, 49, 25, 89

No evento OnClick do boto BtnCancelar, digite Application.Terminate; No evento OnClick do boto BtnOk, digite:
1 2 3 4 dm.tbUsuarios.Open; // abre a tabela tab_Usuarios frmPrincipal.StatusBar1.Panels[2].Text := ' Usurio:' + frmLogin.edApelido.Text + ' - '+ dm.tbUsuariosUsuDepto.AsSTring; if not (dm.tbUsuarios.Locate('UsuApelido', frmLogin.edApelido.Text, [loPartialKey ])) or (dm.tbUsuariosUsuSenha.Value <> frmLogin.edSenha.Text) then begin MessageDlg('Nome ou senha do usurio invlidos.'+#13+#13 + 'Se voc esqueceu sua senha, consulte '+ #13 + 'o administrador do sistema', mtError, [mbOK], 0); edSenha.Clear; // limpa o objeto edSenha edSenha.SetFocus; //Ajusta o foco para o objeto edSenha end else begin frmLogin.Hide; //Esconde a tela frmPrincipal.ShowModal; //chama a tela frmPrincipal no modo modal frmLogin.Release; // Remove a tela da memria frmLogin := Nil; // Atribui contedo nulo para a varivel // de tela frmLogin end;

5 6

7 8 9 10 11 12 13 14 15

OBS.: Se, ao tentar compilar o programa, for exibido um erro dizendo que loPartialKey no foi declarado, tecle [F1] e pea ajuda sobre loPartialKey. Quando o Delphi exibir a ajuda, anote o nome da Unit qual pertence este parmetro e inclua o nome da mesma (no caso, DB) na clusula Uses do formulrio em questo.

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza 11. Como criar relacionamento Master/Detail na aplicao?
Este tpico vai ensinar os procedimentos para criar um relacionamento Master/Detail na aplicao. Esse tipo de relacionamento se aplica sempre que temos um relacionamento 1:n. Como exemplo utilizaremos as tabelas adotPessoas e adotLocacoes, sendo que, adotPessoas ser Master, e adotLocacoes ser Detail.

Figura 17 Exemplo de relacionamento Master/Detail

Em um relacionamento Master/Detail, para cada registro da tabela Master, so relacionados apenas os registros da tabela Detail que tiverem os mesmos valores de chaves primria e estrangeira, respectivamente (adotPessoas.codigo = adotLocacoes.codigo). Procedimentos a serem executados: Selecione a tela dm ([Shift] + [F12]); Selecione a propriedade MasterSource da tabela detail adotLocacoes, e escolha o nome do DataSource da tabela master, dsPessoas; Selecione a propriedade MasterFields (chave primria da tabela master) na tabela adotLocacoes e digite codigo, que o campo que far a ligao entre as tabelas (chave-strangeira);

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza
Opcional - configurao da tela locaes:
o o o o Crie o formulrio Locaes, a partir de um formulrio padro; No grid inclua apenas as principais informaes sobre as locaes. Altere a propriedade Options -> dgRowSelect para True; Inclua uma rea com os campos para digitar os dados das locaes; Altere os campos que so chave-estrangeira (codigo e codigo_barra) por campos DBLookUpComboBox. Configure as propriedades DataSource e DataField com os dados da tabela que vai ser salva (Locacao) e as propriedades ListSource, ListField e KeyField com os dados da tabela LookUp (Pessoas e Copias, respectivamente).

OBS.: No campo ListField podem ser acrescentados mais de um campo do BD, separados por ponto-e-virgula;
o o Marque a propriedade ReadOnly do grid como True; Adicione no primeiro GroupBox um DBLookUpComboBox para pesquisar o nome do cliente. Configure as propriedades DataSource e DataField com os dados da tabela que vai ser salva (Locacao) e as propriedades ListSource, ListField e KeyField com os dados da tabela LookUp (Pessoas); Para que o nome do cliente aparea no ComboBox de pesquisa na primeira vez que acessar a tela, inclua no evento OnShow o cdigo: dblcbLocacao.KeyValue := dm.adotPessoas.Fields[0].value; Nos eventos OnShow e OnClose do form insira o cdigo para abrir e fechar as tabelas Locacao, Pessoas e Copias;

Execute a aplicao e chame a tela de Locaes. A partir de agora, quando um cliente for escolhido, s sero exibidos os registros das locaes correspondentes ao cadastro do cliente selecionado; D duplo-clique na propriedade MasterField para ver a janela de designer do relacionamento. O relacionamento tambm poderia ter sido feito selecionando-se as chaves primria e estrangeira e clicando no boto Add. Faa isto apenas se voc no se lembrar do nome da chave primria;

INSTITUTO FEDERAL CATARINENSE CURSO TCNICO EM INFORMTICA Disciplina: Programao Prof. Angelo Augusto Frozza

Figura 18 Janela Designer do relacionamento

You might also like