Tutorial Lazarus e Banco - JC

75
PROGRAMAÇÃO COMERCIAL

description

Material de apoio a programação

Transcript of Tutorial Lazarus e Banco - JC

  • PROGRAMAO

    COMERCIAL

  • 4

    Boas Vindas!

    Caro (a) Estudante

    Bem vindo (a) disciplina PROGRAMAO COMERCIAL.

    O texto composto de quatro (04) Aulas assim distribudas:

    Na Aula 1 - Apresentamos os componentes da IDE Lazarus

    que auxiliam a criao de aplicaes com acesso a base de

    dados, atravs do pacote ZeosLib.

    Na Aula 2 O processo de Conexo com Base de Dados

    usando pacote ZeosLib, bem como a interao os dados, listagem

    e insero de registro no Banco de Dados.

    Na Aula 3 Demonstrao das operaes bsicas com

    registros no banco de dados: Inserir, Editar, Salvar e Apagar. H

    tambm a apresentao do Componente MessageDlg do

    Lzarus.

    Na Aula 4 Demonstrao de uso do componente que permite

    a associao entre registro de tabelas diferentes, e finalizamos a

    disciplina com Gerao de Relatrios usando componente Fortes

    Report.

  • ndice Geral

    AULA 1 - COMPONENTE LZARUS PARA ACESSO A BANCO DE DADOS- 9

    1.1 - Aplicao com acesso a base de dados.........................................10

    1.2 - Principais componentes da paleta data controls .............................11

    1.3 - O componente Tdatasource ..........................................................13

    1.4 - Pacote de Zeoslib. ........................................................................14

    1.5 - Instalando sgbd Mysql 5 e cliente de acesso..................................17

    AULA 2 - Conexo com Base de Dados usando o pacote ZeosLib ...........32

    2.1 - O projeto.......................................................................................33

    2.2 - Iniciando o projeto.........................................................................35

    2.3 - Tela listagem de cargos ................................................................41

    2.4 - Tela de adicionar novo cargo.........................................................43

    2.5 - Linkando as telas ..........................................................................44

    2.6 - O componente data module...........................................................47

    2.7 - Componentes zeoslib ....................................................................48

    2.8 - Associando elementos data controls com data source....................51

    AULA 3 - Operaes bsicas com registros de bancos de dados............-56

    3.1 - Operaes Insert e post do dataset. ..............................................57

    3.2 - Operao Edit do dataset..............................................................55

    3.3 - Operao Delete do dataset ..........................................................62

    3.4 - O componente lzarus MessageDlg ..............................................63

    AULA 4 - Associao entre registros de tabelas, e Gerao de Relatrios-66

    4.1 - O componente DBLookupCombobox.............................................67

    4.2 - Pacote de componentes Fortes Report ..........................................70

  • 7

    ndices de Figuras

    Figura 1 Estrutura simplificado de Aplicao com Banco de Dados

    Figura 2 - Patela Data Controls do Lzarus Figura 3 Propriedades de Banco de Dados do DBEdit

    Figura 4 Paleta de Componentes Data Access Lzarus

    Figura 5 Propriedades de TDataSource Figura 6 Pasta do ZeosLib

    Figura 7 IDE Lzarus Figura 8 Instalao de Novo Pacote no Lzarus

    Figura 9 Compilao e Instalao de pacote no Lzarus

    Figura 10 Download do MySQL Figura 11 Instalao do MySQL

    Figura 12 Instalao do MySQL

    Figura 13 Instalao do MySQL

    Figura 14 Instalao do MySQL

    Figura 15 Configurao do MySQL

    Figura 16 Configurao do MySQL

    Figura 17 Configurao do MySQL

    Figura 18 Configurao do MySQL

    Figura 19 Configurao do MySQL

    Figura 20 Configurao do MySQL

    Figura 21 Configurao do MySQL

    Figura 22 Configurao do MySQL

    Figura 23 Acesso o MySQL com

    Figura 24 Tela do HeidiSQL Figura 25 Criando novo banco de dados com HeidiSQL

    Figura 26 Modelo ER da Aplicao de Cadastro de Empresa

    Figura 27 Modelo ER da Aplicao de Cadastro de Empresa

    Figura 28 Tela de Menu Environment Lzarus Figura 29 Edio de Opes do Lzarus

    Figura 30 Novo Projeto no Lzarus Figura 31 Adicionando StatusBar no Lzarus

    Figura 32 Edio de Menu na Aplicao.

    Figura 33 Menu de Aplicao. Figura 34 Menu de Aplicao.

    Figura 35 Menu de Aplicao.

    Figura 36 Menu de Aplicao.

    Figura 37 Menu de Aplicao. Figura 38 Cdigo Fonte para Fechar Formulrio.

    Figura 39 Formulrio de Listagem de Cargos.

    Figura 40 Formulrio de Lista de Cargos. Figura 41 Formulrio de Lista de Cargos.

    Figura 42 Formulrio de Cadastro de Cargo.

    Figura 43 Formulrio de Cadastro de Cargo.

    Figura 44 Exibindo Units. Figura 45 importanto units.

    Figura 46 Invocando outro Formulrio.

    Figura 47 Invocando outro Formulrio.

    Figura 48 Invocando outro Formulrio.

    Figura 49 Criando um objeto Data Module.

    Figura 50 Objeto Data Module. Figura 51 Field Editor de Campos do DataSet.

    Figura 52 Componente Data module. Figura 53 Editor de Colunas do DBGrid.

  • 8

    Figura 54 Editor de Colunas do DBGrid.

    Figura 55 Propriedades do DBEdit.

    Figura 56 HeidiSQL, Editando Tabela.

    Figura 57 HeidiSQL, Editando Tabela. Figura 58 Procedimento Insert do DataSet.

    Figura 59 Procedimento Post do DataSet.

    Figura 60 Formulrio Lista de Cargos.

    Figura 61 Procedimento Edit do DataSet.

    Figura 62 Editando Cargo. Figura 63 Editando Cargo.

    Figura 64 Procedimento Cancel do DataSet.

    Figura 65 Procedimento Delete do DataSet. Figura 66 Procedimento Delete do DataSet com MessageDlg.

    Figura 67 Mensagem de Confirmao com MessageDlg.

    Figura 68 Formulrio de Listagem de Funcionrios Figura 69 Formulrio de Cadastro de Funcionrios com DBLookupCombobox.

    Figura 70 Paleta de componentes do Fortes Report. Figura 71 Paleta de componentes do Fortes Report.

    Figura 72 Componente TRLReport do Fortes Report.

    Figura 73 Componente TRLReport do Fortes Report.

    Figura 74 Cdigo Fonte uniRelatorioSetores. Figura 75 Tela Menu Listagem de Setores.

    Figura 76 Tela Relatrio Listagem de Setores.

  • Componente Lzarus

    para Acesso a Banco de

    Dados Aula1

    Meta da Aula

    Apresentar os componentes da

    IDE Lazarus que auxiliam a criao

    de aplicaes com acesso a base

    de dados.

    Ao final desta aula, voc dever ser

    capaz de:

    1. Entender a arquitetura de uma

    Aplicao com Acesso a Banco de

    Dados;

    2. Conhecer componentes da Paleta

    Data Controls e o TDataSource da

    Paleta Data Access;

    3. Instalar a pacote de acesso a

    banco de dados Zeos e o SGBD

    MySQL 5 e Cliente de Acesso.

    Obje

    tivo

    s

  • 10

    1.1 APLICAO COM ACESSO A BASE DE

    DADOS

    Uma aplicao que no guarda a informaes com as quais ela

    trabalha aps ser fechada tem uso muito restrito. Por Exemplo, o

    aplicativo Calculadora do Windows cada vez que iniciado no

    resgata qualquer operao que tenha feita noutro momento.

    Para se guardar os dados de uma aplicao precisamos que um

    novo componente comumente chamado de Banco de Dados. De

    forma simples podemos definir Banco de Dados com sendo uma

    coleo de dados inter-relacionados sobre determinado assunto.

    Exemplos de aplicaes com banco de dados do dia-a-dia temos:

    Agenda Telefnica, Catlogo de uma Locadora, Cadastro de

    produtos de um comrcio bem como seus registro de venda.

    Internamento um Sistema de Banco de Dados Relacional

    organiza os dados nas chamadas Tabelas, e estas por si so

    composta por um conjunto de campos, ou atributos, onde cada

    linha desta tabela consiste num registro.

    Os mais famosos Sistemas de Banco de Dados gratuitos do

    mercado so o MySQL e PostgreSQL. No decorrer da nossa

    aplicao que ser desenvolvida nesta disciplina vamos utilizar o

    MySQL na sua verso 5.

  • 11

    Com uso de banco de dados a aplicao desenvolvida com o

    Lazarus ficar com a seguinte arquitetura:

    Aplicao

    Banco de

    Dados

    Figura 1 Estrutura simplificado de Aplicao com Banco de Dados

    1.2 PRINCIPAIS COMPONENTES DA PALETA

    DATA CONTROLS

    Na disciplina de Programao em Ambiente Grfico voc

    conheceu uma srie de componentes, principalmente das paletas

    Standart e Additional, que auxiliam da construo de interfaces

    (formulrios) para as aplicaes.

    So componentes como Labels, Edits, Memo e outros que so

    geralmente usados para entrada ou exibio de dados do

    programa.

    Para construo de aplicao com uso de banco de dados a IDE

    Lazarus nos disponibiliza a paleta Data Controls.

  • 12

    Figura 2 - Patela Data Controls do Lzarus

    Podemos observar uma relao entre os componentes desta

    paleta com os que voc j conhece. Exemplo, voc j conhece o

    componente TEdit, aqui temos o TDBEdit, outro elemento o

    TLabel cujo o correspondente o TDBedit.

    Como voc observou temos o prefixo DB nos elementos, que

    denota que estes componentes so prprios para uso em

    aplicao com acesso a banco de dados.

    Na aplicao que desenvolveremos vamos usar principalmente os

    componentes:

    Tabela 1 Alguns Componente da Paleta Data Controls

  • 13

    1.3 O COMPONENTE TDATASOURCE

    Voc acabou de conhecer os principais componentes de

    manipulao de dados com uma base de dado.

    O componente TDataSource trabalha exercendo a funo de

    comunicao entre DataSets (vamos ver mais afrente.) e os

    componentes DataControls. Todo DataSet (Table, Query, etc.)

    deve ser associado a um componente DataSource para que seus

    dados possam ser exibidos em componentes Data Controls.

    Ou seja, so eles que entregam os dados para os elementos Data

    Controls. Devido a isso, todo componente Data Controls em suas

    propriedades deve definir a qual DataSource e Campo este estar

    representando.

    Figura 3 Propriedades de Banco de Dados do DBEdit

    Podemos observar a propriedade DataSource que aponta para

    um Componente TDataSource chamado DSPost e ao Campo

    (propriedade DataField) titulo.

  • 14

    Ento o DBEdit1 est associado com campos titulo de uma

    DataSource DSPost, que se comunica com uma tabela de Posts

    de Blog.

    O Componente TDataSource o primeiro elemento da paleta

    Data Access, e tem poucas propriedades, dentre as quais a mais

    importante DataSet que define o nome da DataSet, ou tabela,

    ao qual este esta associado.

    Figura 4 Paleta de Componentes Data Access Lzarus

    Propriedades de um TDataSource:

    Figura 5 Propriedades de TDataSource

    A propriedade AutoEdit quando True possibilita que os dados

    entrem em modo de edio automaticamente quando o usurio

    clica em algum componente associado com DataSource (Ex.:

    TDBEdit, TDBGrid).

    1.4 - PACOTE DE ZEOSLIB.

    ZeosLib pacote composto por um conjunto de componentes que

    facilitam a comunicao com Banco de Dados como o MySQL.

  • 15

    Baixando e Instalando o pacote Zeoslib

    Acesse a pgina http://sourceforge.net/projects/zeoslib/files/ e

    faa o download da ltimo verso estvel do Zeos. Neste material

    usamos a v. 6.6.6.

    Aps o download descompacte a pasta para prosseguirmos para

    instalao do pacote no Lazarus.

    Figura 6 Pasta do ZeosLib

    Pronto. Agora abra a sua IDE Lazarus.

    Figura 7 IDE Lzarus

    Com o Lazarus aberto v no Menu Package e clique no item

    Open Package File (.lpk).

  • 16

    Figura 8 Instalao de Novo Pacote no Lzarus

    Aps clicar aparecer a janela para voc localizar o pacote a ser

    instalado, no caso o Pacote Zeos para Lazarus.

    Localize o diretrio onde voc descompactou o Zeos que foi

    baixado e navegue at chegar no componente para Lazarus, pelo

    seguinte caminho: ..\ZEOSDBO-6.6.6-stable\packages\lazarus e

    selecione o zcomponente.lpk.

    Aps selecionar o zcomponente ser exibido uma tela nesta

    clique em Compilar.

    Figura 9 Compilao e Instalao de pacote no Lzarus

  • 17

    Aps compilar com sucesso, clique no boto Install. Ser

    solicitado confirmao para aceite e seu Lazarus ser reiniciado

    para finalizar a Instalao do Pacote Zeos.

    Ao reiniciar dever aparecer uma nova paleta chamada Zeos

    Access.

    Esta paleta contm os componentes que nos permitem acessar

    as tabelas do banco de dados, nos habilitando a Inserir, Consulta,

    Atualizar ou at mesmo Excluir registro.

    Principais componentes do Pacote ZeosLib:

    Tabela 2 Componentes da Paleta Zeos

    1.5 INSTALANDO SGBD MYSQL 5 E CLIENTE DE

    ACESSO.

    Para desenvolvimento da aplicao em nossa disciplina vamos

    usar o banco de dado MySQL 5. Caso voc j o tenha instalado

    em seu computador necessrio apenas que voc copie o

    arquivo libmySQL.dll do diretrio de instalao do mySQL

    ...\MySQL\MySQL Server 5.0\bin para pasta

    C:\Winsows\System32 caso utilize sistema operacional

    Windows.

  • 18

    Baixando o instalador Mysql 5

    Acesse a pgina http://dev.mysql.com/downloads/mysql/ e

    selecione a MYSQL Community Server 5 como a figura abaixo

    mostra:

    Figura 10 Download do MySQL

    Instalando o MYSQL 5

    Fonte: (http://www.juliobattisti.com.br/tutoriais/almirrivas/php002.asp)

    Aps download proceda com a instalao.

    Na tela de boas vindas do instalador do MySQL clique em Next

  • 19

    Figura 11 Instalao do MySQL

    Na prxima janela selecione o tipo de instalao (Typical) e em seguida

    clique em Next

    Figura 12 Instalao do MySQL

    Confirme as escolhas da instalao e clique em Next

  • 20

    Figura 13 Instalao do MySQL

    Aguarde enquanto o MySQL instalado

    Figura 14 Instalao do MySQL

  • 21

    Salte o login no MySQL selcionando Skip Sign-Up e clique em Next

    Figura 15 Configurao do MySQL

    Selecione Configure the MySQL Server Now e clique em Next

    Figura 16 Configurao do MySQL

  • 22

    Na tela de boas-vindas da configurao clique em Next

    Figura 17 Configurao do MySQL

    Selecione Standard Configuration e em seguida clique em Next

  • 23

    Figura 18 Configurao do MySQL

    Selecione Install As Windows Service e em seguida clique em Next

    Figura 19 Configurao do MySQL

  • 24

    Selecione Modify Security Settings digite a senha na caixa de texto New root password e confirme a senha digitando-a

    novamente na caixa Confirm e em seguida clique em Next. Ateno: Guarde esta senha vamos precisar dela mais tarde.

    Figura 20 Configurao do MySQL

    Execute a configurao clicando em Execute

  • 25

    Figura 21 Configurao do MySQL

    Aps finalizar a configurao e clique em Finish.

    Figura 22 Configurao do MySQL

  • 26

    Clientes de Acesso ao MySQL.

    O Mysql por si s no vem com interface grfica para acessar o

    servidor de banco de dados. Existem vrias opes de clientes

    para o MySQL que nos permitem realizar a deversas operaes

    permitidas pelo banco, tais como: criar banco, criar tabelas,

    realizar consultas etc.

    Baixa e Instale a sua preferncia.

    HeidiSQL - http://www.heidisql.com/download.php

    SQLYog http://www.webyog.com/en/downloads.php

    MySQL GUI Tools - http://dev.mysql.com/downloads/gui-

    tools/5.0.html

  • 27

    Testando o MySQL com Heidi SQL

    Caso tenha instalado o HeidiSQL abra-o e ser exibida a seguinte

    tela.

    Figura 23 Acesso o MySQL com HeidiSQL

    Nela informe os dados referente ao seu MySQL.

    Network Type: Deixo TCP/IP

    Hostname / IP: informe onde estar instalado o MYSQL no caso

    na sua prpria mquina (127.0.0.1)

    User: user o usrio que foi solicitado durante a instalao (root)

    Password: a senha que foi informada durante a instalao.

    Port: por padro 3306, caso tenha mudado na instalao favor

    informar.

    Aps informar os dados e clique em Open e ser exibido a

    seguinte tela.

  • 28

    Figura 24 Tela do HeidiSQL

    Criando um Banco de Dados

    Clique com boto direito sobre ([email protected]) e escolha Create

    New > DataBase.

    Figura 25 Criando novo banco de dados com HeidiSQL

    E crie um banco chamado empresa. Vamos utilizar esse banco

    na aplicao que vamos construir no decorrer da disciplina.

    Nossa aplicao ser o cadastro de funcionrios em uma

    empresa.

    As tabelas inicialmente necessrias e seus atributos so:

  • 29

    Figura 26 Modelo ER da Aplicao de Cadastro de Empresa

    Temos no Diagrama ER acima a estrutura em que um

    Funcionrio tem alguns atributos e se associa com Tabela Cargo,

    alm disso, o funcionrio tem relacionamento com tabela Setor.

    O Script SQL para criao dessa estrutura no mySQL :

    CREATE TABLE Cargo (

    cargo_id INT NOT NULL,

    nome CHAR(60) );

    ALTER TABLE Cargo ADD CONSTRAINT PK_Cargo PRIMARY KEY

    (cargo_id);

    CREATE TABLE Setor (

    setor_id INT NOT NULL,

    nome CHAR(60) );

    ALTER TABLE Setor ADD CONSTRAINT PK_Setor PRIMARY KEY

    (setor_id);

    CREATE TABLE Funcionario (

    funcionario_id INT NOT NULL,

    cargo_id INT NOT NULL,

    setor_id INT NOT NULL, nome CHAR(60),

    cpf CHAR(14), data_nascimento DATE,

    rg CHAR(30) );

    ALTER TABLE Funcionario ADD CONSTRAINT PK_Funcionario

    PRIMARY KEY (funcionario_id,cargo_id,setor_id); ALTER TABLE Funcionario ADD CONSTRAINT FK_Funcionario_0

    FOREIGN KEY (cargo_id) REFERENCES Cargo (cargo_id);

    ALTER TABLE Funcionario ADD CONSTRAINT FK_Funcionario_1

    FOREIGN KEY (setor_id) REFERENCES Setor (setor_id);

  • 30

    Com seu HeidiSQL aberto selecione o banco Empresa e na Aba

    Query cole o Script acima e Execute para pode criar as tabelas.

    E por ltimo: copie o arquivo libmySQL.dll do diretrio de

    instalao do mySQL ...\MySQL\MySQL Server 5.0\bin para

    pasta C:\Winsows\System32 caso utilize sistema operacional

    Windows. Esse procedimento necessrio para que o Zeos

    consiga se conectar a nossa base de dados.

    EXERCCIOS

    1) O objetivo geral da Disciplina Programao Comercial

    apresentar e usar as principais ferramentas que auxiliam a

    criao de aplicaes com uso de banco de dados. Diante

    disso, monte o ambiente em nvel de banco de dados

    necessrio para construo da aplicao.

    a. Instale e Configure o SGBD MySQL 5;

    b. Instale o cliente de acesso ao mySQL HeidiSQL;

    c. J com o HeidiSQL e o MySQL instaldos crie o

    banco de dados que ser usado em nossa

    aplicao.

    2) Adicione o pacote Zeoslib a sua instalao do Lazarus.

    3) Faa um grfico demonstrativo com elementos envolvidos

    numa aplicao comercial com banco de dados e Zeos.

    Abuse dos detalhes.

  • 31

    RESUMO DA AULA

    Nesta conhecemos e aprendemos a configurar o ambiente

    necessrio para construo de Aplicaes comerciais usando a

    IDE Lzarus.

    NA PRXIMA AULA

    Na aula 2 daremos inicio a construo de uma aplicao de

    exemplo para demonstrar a utilizao do pacote Zeoslib.

  • Conexo com Base de

    Dados usando o pacote

    ZeosLib Aula2

    Meta da Aula

    Demonstrar o processo de

    Conexo com Base de Dados

    usando a Biblioteca Zeos bem

    como a interao os dados.

    Ao final desta aula, voc dever ser

    capaz de:

    1. Construir Formulrio de Cadastro com

    Campos associados com TDataSources;

    2. Usar o componente Data Module do

    Lazarus;

    3. Conectar a uma Base de Dados mySQL

    com o pacote Zeos;

    4. Usar os componentes DataSets para

    comunicao com tabelas do Banco de

    Dados;

    5. Listagem em Grids de Registros de Banco

    de Dados. Obje

    tivo

    s

  • 33

    2.1 - O PROJETO

    Vamos construir uma Aplicao Comercial que realiza o

    cadastro de Setores, Cargos e Funcionrio de Empresa.

    A Interface ser construda na IDE Lazarus com os

    conhecimentos que voc j tem e os demais que ir adquirir

    no decorrer desta disciplina.

    A Base de Dados ser o SGBD MySQL 5, j instalado na

    aula 1, com banco de dados tambm j criado na aula

    passada. Como j visto, inicialmente ser necessria a

    seguinte estrutura:

    Figura 27 Modelo ER da Aplicao de Cadastro de Empresa

    Novos atributos ou tabelas podero adicionas no decorrer no

    projeto.

    Na disciplina de Programao em Ambiente Grfico foi

    apresentado que a IDE Lazarus tem o recurso de ser exibido

    em vrios idiomas.

    Com objetivo de ambient-lo com os termos

    indispensveis(e j convencionados) no mercado de

  • 34

    trabalho e reforado com a j sabida necessidade de

    domnio mnimo da lngua Inglesa no decorrer desta

    disciplina vamos usar o Lazarus em seu idioma padro: O

    Ingls.

    Nomes de formulrios, telas, units e outros elementos

    tambm podem aqui conter termos comumente usados na

    comunidade desenvolvimento software, estes quase sempre

    em Ingls, porm de fcil compreenso. Caso haja dvidas,

    esclarea-a com seu tutor presencial ou distncia.

    Caso seu lazarus j esteja em Portugus proceda com

    mudana conforme abaixo:

    Figura 28 Tela de Menu Environment Lzarus

    Depois em:

    Figura 29 Edio de Opes do Lzarus

  • 35

    Com todo o ambiente pronto vamos iniciar a aplicao.

    2.2 - INICIANDO O PROJETO

    Tela Principal

    Com a IDE Lazarus aberta inicie um novo Projeto (File >

    New > Project > Application). Imediatamente salve seu

    projeto dentro de um diretrio chamado preferencialmente

    de Empresa.

    Lembre-se: Use nomes padronizados e significativos para

    todos os elementos em seu projeto, isso ajuda na

    organizao e futuras manutenes do Programa. No

    obrigatrio usar o mesmo padro usado no decorrer desta

    disciplina, o importante sempre estabelecer um padro.

    Primeiro o Lazarus pede o nome da Unit, bote uniPrincipal,

    depois o Projeto em si, coloque prjEmpresa.

    Figura 30 Novo Projeto no Lzarus

    Expanda o form1 at ocupar a rea disponvel. Seu projeto

    deve estar como acima.

  • 36

    Edite as propriedades do form1 conforme abaixo:

    Caption

    Name

    WindowState

    Sistema de Cadastro de Funcionrios

    frmPrincipal

    wsMaximized

    Adicionando Barra de Status

    Adicione um componentes TStatusBar disponvel na Paleta

    Common Controls. Depois De clique duplo sobre ela, e na

    tela que se abre adicione dois elementos com as seguintes

    propriedades:

    Figura 31 Adicionando StatusBar no Lzarus

    Item 1 da Barra de Status

    Alignment

    Text

    Width

    taLeftJustify

    Sistema de Cadastro de Funcionrios

    300

    Item 2 da Barra de Status

  • 37

    Alignment

    Text

    Width

    taCenter

    Desenvolvido Pro

    0

    Adicionando Menus

    Adicione ao frmPrincipal um componente TMainMenu,

    disponvel na paleta Standard, d um clique duplo sobre ele

    dever aparecer a tela como abaixo:

    Figura 32 Edio de Menu na Aplicao.

    D um clique simples o elemento New Item1 e edite as suas

    propriedades:

    Caption Aplicao

    Clique agora com o boto direito que selecione a primeira

    opo (Insert new Item (after)).

  • 38

    Figura 33 Menu de Aplicao.

    Clique agora sobre este novo item e edite as suas

    propriedades como abaixo:

    Caption Cadastro

    D um clique duplo agora sobre o item Cadastro e adicione

    um novo elemento (after), editando as suas propriedades

    como abaixo:

    Caption Relatrios

    Adicione mais um elemento, com as propriedades:

    Caption Sobre

    Aps todos esses passos o Menu deve estar assim:

  • 39

    Figura 34 Menu de Aplicao.

    Adicionando Submenus

    Agora vamos adicionar os SubMenus em cada menu

    Principal. Para isso d um clique duplo sobre o menu

    Aplicao e selecione a opo Create SubMenu, observe

    imagem abaixo.

    Figura 35 Menu de Aplicao.

  • 40

    No SubMenu que aparece edite sua propriedade Caption

    para Sair. O Menu deve ficar como abaixo:

    Figura 36 Menu de Aplicao.

    Agora que voc j sabe criar Menu e SubMenus, termine

    que fazer a rvore de Menu como detalha a tabela abaixo.

    Observao: para adicionar mais elementos no SubMenu

    selecione a opo Insert New Item(after).

    Aplicao Cadastro Relatrios Sobre

    Cargos Listagem de Cargos Sobre o projeto

    Setores Listagem de Setores

    Evento onClick do Item Sair

    Selecione o SubItem Sair no Menu Aplicao e d um

    clique duplo sobre este, isso far com que seja exibido o

    cdigo para o evento OnClick deste elemento.

    Figura 37 Menu de Aplicao.

  • 41

    Aparecer o Cdigo fonte:

    Digite Cl e pressione simultaneamente Ctrl + ,

    aparecer uma lista de opes, nela selecione a procedure

    Close. Esse procedimento tem a funo de fechar a tela

    atual.

    Figura 38 Cdigo Fonte para Fechar Formulrio.

    Salve a aplicao (Ctrl + S), Compile (Ctrl + F9) e Execute

    (F9) para testar o evento que acabamos de programar. Se

    voc seguiu corretamente os passos acima, assim que clicar

    no submenu Sair a aplicao ser finalizada.

    2.3 TELA LISTAGEM DE CARGOS

    Vamos construir agora a tela que lista os cargos

    cadastrados, e disponibiliza botes para Novo, Editar e

    Excluir.

    Adicione um novo Form (File > New Form) e define suas

    propriedades como abaixo.

    Name frmCargoLista

  • 42

    Caption

    Width

    Height

    Cadastro de Cargos

    500

    380

    Salve (Ctrl + S) com o nome de uniCargoLista.

    Adicione dois TGroupBox, disponvel na Paleta Standard.

    Figura 39 Formulrio de Listagem de Cargos.

    Modifique suas propriedades Caption para Opes e

    Listagem respectivamente, e redimensione-os como na tela

    acima.

    No primeiro GroupBox adicione quatro botes(TButton) e

    modifique suas propriedades como abaixo.

    Caption

    Name

    Witdh

    Novo, Editar, Excluir e Sair, repectivamente

    btnNovo, btnEditar, (....)

    65

    Agora, da paleta Data Controls adicione um componente

    TDBGrid, ltimo elemento da paleta.

  • 43

    Figura 40 Componente Data Controls DBGrid.

    Redimensione o DBGrid e defina a propriedade name como

    gridCargos.

    Seu formulrio deve estar assim:

    Figura 41 Formulrio de Lista de Cargos.

    2.4 - TELA DE ADICIONAR NOVO CARGO

    Vamos agora construir a tela para cadastro de novo cargo.

    Adicione novo Form, adicione um TGroupBox e depois

    TButton, edite todas as propriedades necessrio dos

    elementos(Form, GroupBox e Botoes) at que fique como

    abaixo:

  • 44

    Figura 42 Formulrio de Cadastro de Cargo.

    De o nome padronizado ao formulrio (frmCargoFormulario),

    bem como aos botes (btnSalvar e btnCancelar).

    Salve (Ctrl + S) a Unit. Lembre da padronizao dos nomes.

    Adicione uma TLabel da Paleta Standard e um TDBEdit da

    Paleta Data Controls. Edite todas propriedades necessrias

    para o formulrio ficar como abaixo.

    Figura 43 Formulrio de Cadastro de Cargo.

    Por enquanto, esto prontos nossas telas de Lista de Cargo

    e Formulrio de Cargo.

  • 2.5 - LINKANDO AS TELAS

    Como j temos algumas telas j desenhas precisamos agora

    fazer com uma tela chame a outros. 45

    Para que a partir de uma tela voc referencie outro Form

    necessrio adicionar a Unit daquele neste. Vamos entender

    isso na prtica.

    V para Unit uniprincipal, use o atalho View Units.

    _

    Figura 44 Exibindo Units.

    Na uniprinciapal v no incio do cdigo fonte, na seo uses,

    e no final da lista adicione a refere para unicargolista

    digitando uni depois pressione simultaneamente Ctrl +

    , dever exibido uma lista com opes, nesta

    selecione a unicargolista. Imagem abaixo:

    Figura 45 importanto units.

    Feito isso, agora volte para o formulrio (frmPrincipal), use o

  • atalho F12, este alterna entre Form e Unit. V no Menu

    Cadastro e d um clique duplo sobre o submenu Cargos,

    isso far abrir cdigo fonte referente ao evento onClick deste

    elemento.

  • 46

    J no cdigo fonte digite frm e pressione simultaneamente

    Ctrl + , na lista que se abre selecione

    frmCargoLista.

    Figura 46 Invocando outro Formulrio.

    Depois digite .show e selecione a procedure ShowModal.

    Figura 47 Invocando outro Formulrio.

    Pronto. Agora salve (Ctrl + S), Compile (Ctrl + F9) e Execute

    para Testar (F9). Se voc tiver seguido corretamente os

    passos assim que voc selecionar Em Cadastro > Cargos

    ser exibido a tela Como abaixo.

  • 47

    Figura 48 Invocando outro Formulrio.

    Clique no boto sair da tela que se abre. Ver que esto no

    ir fechar. Pois voc ainda no programou este evento.

    Aproveite e fao isso agora.

    Adicione o evento onClick no boto Editar(btnEditar) para

    invocar o formulrio de Cargo. Lembre-se de adicionar em

    uniCargoLista na seo uses referencia para Unit

    uniCargoFormulario.

    2.6 - O COMPONENTE DATA MODULE

    O Componente Data Module um elemento muito til em

    sistemas que usam banco de dados. Com ele possvel

    organizar de forma Centralizada todos os

    elementos/componente de interao com o banco de dados.

    Para adicionar um Data Module no nosso projeto v em File

    > New e Selecione Data Module na seo Module, como da

    imagem abaixo:

  • 48

    Figura 49 Criando um objeto Data Module.

    Altere sua propriedade Name para dmBanco. Salve e de o

    nome da Unit unidmbanco.

    Para acessar os componentes do Data Mudule, basta

    adicionar sua Unit: unidmbanco na seo Uses do

    Formulrio que for necessrio.

    Figura 50 Objeto Data Module.

  • 2.7 - COMPONENTES ZEOSLIB

    Estudamos na Aula 1, com instalar o pacote Zeos, que um

    a biblioteca que auxilia na construo de aplicaes com

    Banco de Dados. 49

    Vamos iniciar agora o uso desta biblioteca para Conectar

    com nossa base de dados j criada na aula passada.

    Componente TZConnection

    Para realizar a conexo em si, usamos o componente

    TZConnection, o primeiro componente da Paleta Zeos

    Access, apresentada na primeira aula.

    Certifique-se que o servidor MySQL esteja iniciado.

    Aps incluir o componente de conexo edite sua

    propriedades com na tabela abaixo:

    Database

    HostName

    User

    Empresa

    Localhost

    Root

    Password

    mysql-5

    conexao

  • Para testar a conexo, mude a propriedade Connected para

    true. Se tiver seguido corretamente os passos, deve

    conectar sem erros.

    Em caso de erros verifique as propriedades como acima e

    certifique-se que o Mysql esteja devidademtente iniciado e

    que copiou o arquivo libmysql.dll, conforme expresso na aula

    1. 50

    O Componente TZTable

    Para se trabalhar com os dados da tabelas do banco de

    dados precisamos de uma componente TZTable, que se

    comunica diretamente com elas. Permitindo operao de

    Insero, Listagem, Atualizao etc.

    Adicione um componente TZTable no Data Module e edite

    suas propriedades como abaixo:

    Connection

    Name

    TableName

    SortedFields

    Selecione conexao

    tbCargo

    Selecione cargo

    nome

  • Aps definir as propriedades acima mude a propriedade

    Active para True. Aps isso, d um clique duplo sobre o

    componente tbCargo e ser exibido o Field Editor, onde

    possvel editar propriedades de cada atributo da tabela.

    Para adicionar os campos, no Edit Fields, clique com o boto

    direito e selecione a opo Add Fields.

    Figura 51 Field Editor de Campos do DataSet. 51

    Para que os elementos Data Controls possam se comunicar

    com os atributos da tabela necessrio o uso do

    componente TDataSource, da Aba Data Access.

    Adicione um TDataAccess no Data Module e edite as

    propriedades como abaixo.

    AutoEdit

    DataSet

    Name

    False

    Selecione tbCargo

    DsCargo

  • A propriedade AutoEdit impede que nos formulrios os

    campos entre em modo de Edio automaticamente,

    inclusive em DBGrids. Dataset indica qual a tabela/consulta

    o DataSource esta associado.

    Figura 52 Componente Data module.

    Seu Data Module (dmBanco) deve estar como acima da

    figura.

    2.8 - ASSOCIANDO ELEMENTOS DATA

    CONTROLS COM DATA SOURCE

    Como j citado, para poder interagir com os dados do banco

    de dados os Elementos Data Controls precisar se comunicar

    atravs de componentes Data Sources. 52

    No formulrio frmCargoLista, selecione o DBGrid

    gridCargos, e modifique a propriedade DataSource,

    selecionando dmBanco.dsCargo.

    Para adicionar os campos para serem listados no Grid

    precisamos fazer isso explicitamente para cada campo. D

    um clique duplo sobre o Grid, deve aparece a uma pequena

    tela como da figura abaixo:

  • Figura 53 Editor de Colunas do DBGrid.

    Adicione um elemento clicando no boto Add, depois edite

    suas propriedades, selecionando em FieldName a opo

    cargoid, depois em Title, modifique a subpropriedade

    Caption para ID.

    Depois adicione outro elemento e ajustes as mesmas

    propriedades acima, porm agora para o campo nome.

    Altere tambm a propriedade width do campo nome para

    300.

    Seu Grid deve estar como na imagem abaixo.

  • 53

    Figura 54 Editor de Colunas do DBGrid.

    Vamos fazer a associao com TDataSource tambm no

    formulrio frmCargoFormulario.

    Abra o formulrio e selecione o TDBEdit correspondente ao

    nome do cargo (edNome) e defina as propriedades

    DataField e DataSource como na Ilustrao abaixo:

    Figura 55 Propriedades do DBEdit.

    DataField = nome

    DataSource = dmBanco.dsCargo.

    Campo com Auto Incremente

    Geralmente as chaves primeiras de tabelas em banco de

    dados so do tipo autoincremento, ou seja, voc no precisa

    se preocupar com os valores destes campos. Na nossa

  • 54

    aplicao isso ainda no est definido. Vamos abrir o

    HeidiSQL e definir essa propriedade.

    1) Acesse o nosso banco: empresa;

    2) Clique com o boto direito sobre a tabela cargo e

    selecione a opo Edit.

    Deve aparecer a seguinte tela:

    Figura 56 HeidiSQL, Editando Tabela.

    Clique sobre No Default, e selecione AUTO_INCREMENT.

    Figura 57 HeidiSQL, Editando Tabela.

    Faa isso somente com o campo cargo_id, a chave primeira

    da tabela Cargo. Depois clique em Save, no rodap da

    pgina para efetivar a alterao.

    Repita a operao acima com as demais tabelas do nosso

    banco de dados.

  • 55

    EXERCCIOS

    1) No decorre desta aula j iniciamos a construo da nossa

    aplicao. Tendo como exemplo o formulrio de Cadastro

    de Cargos apresentado, crie as Telas de Listagem de

    Setores, e o Formulrio de Cadastro de Setores.

    a. Use groupbox para organizar os elementos;

    b. Para os campos de dados use os componentes Data

    Controls;

    c. Faa toda a programao quanto a invocao de

    formulrio e fechamento de telas.

    2) No Data Module adicione os componentes Zeos

    necessrios para conexo com a tabela setores no banco

    de dados, adicione tambm um componente

    TDataSource;

    3) Ligue os elementos DataControls dos formulrios aos

    seus respectivos campos atravs do DataSource.

    4) Altere no banco de dados o campo setor_id para ser

    Auto-Incremento.

    RESUMO DA AULA

    Nesta aula conhecemos e aprendemos a usar alguns

    componentes do pacote ZeosLib. Foi tambm demonstrado

    como criar formulrio de cadastro, com campos que se

    associam com atributos de tabelas do banco de dados.

    NA PRXIMA AULA

    Veremos com realizar operaes bsicas de cadastro, tais

    como inserir, editar, gravar e apagar registros.

  • Operaes bsicas

    com registros de

    bancos de dados Aula3

    Meta da Aula

    Demonstrar as operaes bsicas

    com registros de bancos de dados:

    Inserir, Editar, Salvar e Deletar.

    Ao final desta aula, voc dever ser

    capaz de:

    1. Inserir novos registros no banco de dados

    usando a biblioteca Zeos;

    2. Editar e Excluir registros j existentes na

    base de dados;

    3. Usar o componente MessageDlg do

    Lzarus.

    Obje

    tivo

    s

  • 57

    3.1 - OPERAES INSERT E POST DO DATASET.

    Como j foi dito, com o componente Dataset TZTabel possvel

    realizar operaes no banco de dados, como por exemplo

    adicionar registros.

    Essas operaes esto disponibilizadas atravs de alguns

    procedures. As principais so: insert, post, cancel, edit e delete.

    Iniciando Insero com Insert

    Para inserir um novo registro no banco de dados, precisamos

    primeira botar o Dataset em modo de insero, para isso

    invocamos o procedure insert da tbCargo. Vamos fazer isso no

    evento onClick do boto Novo do formulrio frmCargoLista.

    Lembre-se: Para acessar os elementos da unit do DataModule

    necessrio adicionar a unidmbanco na seo uses da

    unicargolista, assim como nas demais Unit onde ser feito

    referencia para algum elemento do Data Module.

    No frmCargoLista, d um clique duplo sobre o boto Novo, isso

    far aparecer o cdigo fonte para o evento onClick deste boto,

    dentro dele coloque o cdigo a seguir, antes do cdigo que faz

    invocar o formulrio para novo cargo

    Figura 58 Procedimento Insert do DataSet.

  • 58

    .

    Lembre-se: Use o atalho Ctrl + para usar o recurso de

    Auto Completar do Lazarus.

    Confirmar incluso com Post

    No cdigo acima colocamos a Tabela Cargo em modo de edio

    e exibimos o formulrio para captura dos dados.

    Agora momento de programar a confirmao dessa incluso.

    Para isso, abra o frmCargoFormulario e de um clique duplo sobre

    o boto Salvar.

    Dentro do procedimento coloque o cdigo como abaixo:

    Figura 59 Procedimento Post do DataSet.

    Lembre-se: Adicione a Unit do Data Module e use o recurso auto-

    completar do Lazarus.

    Pronto com isso j possvel adicionar um Novo Cargo na nossa

    aplicao.

    Obs.: Observe no Data Module se a Conexo est com

    Connected = True e se na tbCargo est Active = true.

    Salve Tudo (Ctrl + S), Compile (Ctrl + F9) e Execute (F9) para

    testar.

  • 59

    3.2 OPERAO EDIT DO DATASET

    Uma vez j cadastro registros no banco de dados, necessrio

    permitir ao usurio rever algum dos dados referente a este

    registro. Para realizar essa operao O Zeos disponibiliza para o

    desenvolvedor atravs dos componentes da DataSet, aqui em

    especfico o componente TZTable, o procedimento edit, que bota

    o registro corrente em modo de edio.

    Aps o usurio realizar as modificaes desejadas o

    desenvolvedor deve invocar o procedimento post, para efetiv-las

    no banco de dados.

    Editando um registro do banco de dados

    V ao formulrio frmCargoLista e edite o evento onClick do boto

    btnEditar, de tal forma a por o dataSet tbCargo do data module

    em modo de edio e posteriormente exibir o formulrio

    frmCargoFormulario, conforme ilustraes a seguir:

    Figura 60 Formulrio Lista de Cargos.

    D um clique duplo para gerar o procedimento, aps isso coloque

    o cdigo fonte como abaixo:

  • 60

    Figura 61 Procedimento Edit do DataSet.

    Pronto isso suficiente para que o usurio edite os dados de

    qualquer registro da tabela cargo no banco de dados.

    Rode a aplicao, v em Cadastro > Cargos, na tela que se abre

    selecione alguma registro j cadastro, se no houver cadastre um,

    e clique n boto editar.

    Ver que ser exibido o mesmo formulrio usado para inserir

    registro, porm agora com os dados do registro selecionado.

    Figura 62 Editando Cargo.

    Aps modificar o registro clique em Salvar. Lembrando que este

    mtodo voc j programou antes para chamar o procedimento

    post que confirma alterao no banco de dados.

  • 61

    Figura 63 Editando Cargo.

    De volta ao grid voc ver que o registro foi realmente alterado.

    Cancelando o modo de edio

    Observando o formulrio de cargo frmCargoFormulario, temos o

    boto btnCancelar que ainda no programamos, vamos fazer

    isso agora.

    Lembrando que programamos que assim que for clicado o boto

    Editar, o dataset tbCargo entra em modo Edit, modo de edio, e

    aps ser alterar e confirmado com o post, o componente

    tbCargo sai do modo de edio, entrado no modo Browse, ou

    seja, modo de visualizao.

    Aps entrar em modo de edio, caso o usurio no deseja mas

    fazer a alterao no registro, para voc desenvolvedor botar

    novamente o dataSet em modo de edio (Edit mode),

    necessrio chamar o procedimento cancel do dataset.

    Vamos ento ao mtodo onClick do formulrio

    frmCargoFormulario e colocar o seguinte cdigo:

  • 62

    Figura 64 Procedimento Cancel do DataSet.

    O Cdigo acima aciona o mtodo Cancel do Dataset retornando-a

    para modo browse e fechar o formulrio retornando para o

    frmCargoLista.

    3.3 OPERAO DELETE DO DATASET

    Outra operao importante em qualquer aplicao comercial, a

    possibilidade apagar do banco de dados um determinado registro,

    seja por ter sido indevidamente cadastro ou por outro motivo

    qualquer.

    O Zeos atravs dos seus Datasets nos disponibiliza o

    procedimento delete, que encapsula a operao de delete l no

    banco de dados. Para invocar o procedimento delete

    necessrio que o DataSet esteja em modo browse.

    Vamos para o frmCargoLista e programar para apagar o registro

    corrente do banco de dados assim que o usurio clicar no boto

    btnExcluir.

    Coloque o seguinte cdigo no procedimento que aparece para o

    evento onClick do boto Excluir.

    Figura 65 Procedimento Delete do DataSet.

  • 63

    A partir de agora, assim que o usurio clicar no boto Excluir o

    registro corrente ser apagado, aps isso ser exibida a

    mensagem confirmando que o registro foi realmente deletado.

    3.4 O COMPONENTE LZARUS MESSAGEDLG

    No desenvolvimento de aplicaes comerciais temos algumas

    operaes irreversveis ou de difcil reverso, por parte do

    usurio, tais como: deleo de um registro, fechamento de caixa

    ao final do dia, processamento de folha de pagamento, realizao

    de renovao de matrcula em lote etc.

    Neste tipo de situao, para evitar transtornos ao usurio

    importante inform-lo, ou question-lo, sobre a operao que ele

    estar prestes a realizar. Apagar um registro, por exemplo,

    necessita de uma confirmao do usurio.

    O Lzarus nos disponibiliza o componente MessageDlg para

    realizar esses alertas e questionamentos ao usurio.

    O componente recebe vrios parmetros, que definem como este

    ser exibido, as mensagens, botes etc.

    Vamos adicionar na nossa aplicao uma solicitao antes de

    efetivar a deleo de um registro de cargo, veja o cdigo abaixo

    modificado do evento onClick no boto Excluir.

    Figura 66 Procedimento Delete do DataSet com MessageDlg.

    Parmetros do MessageDlg

  • 64

    aCaption = Primeiro parmetro, o ttulo da caixa de dilog, no

    exemplo acima Deleo de Cargo;

    aMsg = Segunda parmetros, a messagem que aparece no

    corpo da caixa de dilogo, geralmente alguma pergunta ao

    usurio ou informao. No exemplo: Tem certeza que deseja

    apagar este cargo?;

    DlgType = O tipo de dilog que ser exibida, inicia geralmente

    por mt. No exemplo usado o mtConfirmation, fazendo com que

    seja exibido um cone adequado. Alm de mtConfirmation, temos

    disponvel os tipos: mtError, mtInformation, mtWarning.

    Buttons = Quarto parmetro, deve ser informado que botes

    sero exibidos na dialog. O Lazarus permite voc configurar a

    vontade quais botes aparecero. No exemplo acima, foi

    informado mbYesNo, que informa ao Lazarus para exibir os

    botes Yes e No. Alm mbYesNo, temos: mbYes, mbOK,

    mbClose, mbClose, mbAbor mbYesNoCancel, etc.

    HelpCtx = ltimo parmetros, informa para onde deve ir caso se

    use boto de ajuda. Como no usamos help, boto 0.

    Veja como ficou a Mensagem de confirmao de excluso de

    usurio.

    Figura 67 Mensagem de Confirmao com MessageDlg.

  • 65

    Observe apareceu o cone de uma interrogao, pois usamos

    mtConfirmation, e tambm os botes Selecionados Yes e No,

    mbYesNo.

    Para decidirmos o que vamos fazer, comparamos o resultado

    atravs de algumas constantes que nos ajudam a identificar qual

    boto foi selecionado. No caso somente ser apagado o registro

    de cargo, caso o boto clicado seja o Yes.

    Para cada tipo de boto temos um mr correspondente. mrYes,

    mrNo, mrCancel, mrAbort etc.

    EXERCCIOS

    1) Nos exerccios da Aula 2, construmos os formulrios de

    cadastro de setores. Agora que voc j sabe os procedimento

    o para inserir/editar/deletar registro complete o cadastro dos

    setores. Cadastre pelo menos 3 setores de exemplo;

    2) Refatore o cdigo dos cadastros adicionado Confirmaes e

    Mensagens com o componente MessageDlg do Lzarus.

    Substitua todos os ShowMessage`s da aplicao por

    MessageDlg.

    RESUMO DA AULA

    Aprendemos nesta aula a parte de maior importncia numa

    aplicao comercial, as operaes com registros no banco de

    dados, com o conhecimento adquirido at aqui j temos pelo

    menos 75% da maioria das aplicaes comuns de mercado.

    NA PRXIMA AULA

    Na aula 4, a ltima da nossa disciplina, veremos como adicionar

    registro de tabela que tem campos que se relacionam com

    atributos de outra tabelas.

  • Associao

    de tabelas,

    Relatrios.

    entre registros

    e Gerao de

    Aula4

    Meta da Aula

    Demonstrar como feito a associao entre

    registros de tabelas, e Implementar

    mecanismos de gerao de relatrios.

    Ao final desta aula, voc dever ser

    capaz de:

    1. Usar o componente

    DBlookupCombobox da paleta Data

    Controls;

    2. Instalar e Criar relatrios usando os

    componentes do pacote Fortes

    Report.

    Obje

    tivo

    s

  • 67

    4.1 - O COMPONENTE DBLOOKUPCOMBOBOX

    Vimos at agora em nossas aulas como fazer formulrio que

    contm campos que se associam a uma tabela no banco de

    dados atravs dos diversos componentes do Lazarus.

    Como atividade da nossa ltima aula ficou para ser feito o

    cadastro de setores. Para prosseguirmos plenamente com esta

    aula e de extrema importncia j estar com os dois cadastros

    anteriores devidamente funcionais, tanto o de cargos quanto do

    de Setores.

    Como etapa final dos cadastros propostos na primeira aula, temos

    agora que cadastrar os funcionrios, que por sua vez se ligam

    tanto com Setores quanto com Cargos.

    Siga todos os passos j conhecidos na criao de:

    1) Uma TZTable do Zeos ligando a tabela funcionrio no

    banco de dados;

    2) Crie um TDataSource da aba Data Access para a tabela

    acima;

    3) Crie o formulrio para Lista de Funcionrio, da mesma

    forma como foi feito para Cargo, por exemplo.

    4) Ponha um Grid, associado com DataSource de funcionrio.

    5) Crie o formulrio para Cadastro de Novos Funcionrios,

    adicionado todos os componentes Data Controls

    necessrios.

    6) Adicionar todos os cdigos necessrios para essas

    funcionalidades.

    O Formulrio para Lista de Funcionrios deve estar parecido

    como abaixo:

  • 68

    Figura 68 Formulrio de Listagem de Funcionrios

    J na criao do formulrio para funcionrios surgiu uma nova

    dificuldade: Como relacionar funcionrio com Cargo e com Setor?

    Para isso vamos usar o componente Data Control

    DBLookupComboBox .

    Como este componente podemos fazer com aparea uma lista

    com elementos de uma tabela que devem se associam com

    cadastro atual. Ou seja, justamente o que estamos precisando.

    Figura 68 Formulrio de Listagem de Funcionrios

  • 69

    A figura acima demonstra o DBLookupComboBox j configurado

    para exibir a lista de nome dos cargos cadastros, possibilitando

    que o usurios associe um funcionrio a um cargo sem saber qual

    o cdigo do cargo. Da mesma forma faremos para pode

    selecionar o Setor onde funcionrio ser lotado.

    Figura 69 Formulrio de Cadastro de Funcionrios com

    DBLookupCombobox.

    Configurando o DBLookupComboBox

    Alm das propriedades comuns dos componentes Lazarus, e das

    propriedades do comuns aos componentes Data Controls, ou

    seja, DataSource e DataField, o DBLookupCombobox requer que

    outras propriedades sejam devidamente configuradas, veja

    detalhamento na tabela abaixo:

    ListSource O DataSource da lista que se deseja exibir

    do ComboBox

    ListField

    Define qual campo da tabela ser exibido

    no Combobox

  • 70

    KeyField Define qual o campos chave da tabela

    associada se relaciona com o campo que

    se estar cadastrando.

    As propriedades do DBLookupComboBox que se relacionar com

    cargo no nosso cadastro de funcionrios ficaram desta forma:

    Alm das propriedades j conhecidas:

    4.2 PACOTE DE COMPONENTES FORTES

    REPORT

    Um uma importante caracterstica que agrega valor a qualquer

    Aplicao Comercial sua capacidade de gerar relatrios para os

    seus usurios.

    Sejam eles listagem, resumo de movimentaes financeiras,

    listagem por agrupamentos em fim, relatrios em geral.

    Para adicionar essas funcionalidades vamos usar neste curso o

    Componentes FortesReport, com qual no teremos muitas

    dificuldades para gerar nossos relatrios, com as informaes j

    cadastradas no banco de dados.

    Primeiro baixo o pacote disponvel em

    http://sourceforge.net/projects/fortes4lazarus/

    Aps fazer download descompacte e proceda com a instalao da

    mesma forma como realizado para pacote Zeos.

  • 71

    Copie o arquivo rlreportshared.dll, da pasta do FortesReport

    ..\fortes324forlaz\ rlreportdll para ..\Windows\System32.

    Como FortesReport devidamente instalado aparecer uma nova

    aba no Lzarus chamada Fortes Report.

    Figura 70 Paleta de componentes do Fortes Report.

    Vamos usar alguns componentes desta aba para construir alguns

    relatrios simples.

    Os principais componentes do Pacote Fortes Report so:

    Tabela 3 Componentes da Paleta Fortes Report.

    O Fortes Report tem diversos outros componentes que permitem,

    por exemplo, gerar relatrio em PDF, HTML, Gerar cdigos de

    barras estticos ou dinmicos, exibir imagens, Textos Longos etc.

  • 72

    Relatrio Listagem de Setores Cadastrados

    Crie um novo formulrio para o nosso projeto no Lzarus, como

    nome frmListagemSetores, salve a unit com nome

    uniRelatorioSetores e adicione um componente TRLReport.

    Aps adicion-lo ver que ele funciona como uma folha de papel,

    toda em quadrinho para facilitar o posicionamento dos outros

    elementos.

    Nas propriedades do TRLReport expanda a propriedade

    AllowedBands e coloque em True as opes btColumnHeader,

    btDetail e btHeader.

    Vamos adicionar os segmentos do nosso relatrio, que j

    definimos ter: Cabealho, Cabealho de Coluna e uma seo de

    detalhes. Adicionar trs componentes TRLBand um para cada

    seo.

    Gerando a consulta para o relatrio

    O nosso relatrio necessita de uma consulta no banco de dados

    que fornecer os dados para serem exibidos.

    Para isso, adicionar ao Data Module um componete Zeos

    TZReadOnlyQuery, um nome de QryListagemSetores, na

    proprieadades SQL, digite: select * from Setor, adicione tambm

    um DataSource de nome dsListagemSetores e como dataset

    coloque da QryListagemSetores. Selecione a conexo na

    QryListagemCargos e torne a propriedade Active para True.

    Continuando relatrio

    Para o componente TRLReport na sua propriedade DataSource

    selecione o dsListagemSetores, recm criado.

    Nas trs TRLBands adicionadas modifique a propriedade

    BandType da primeira para btHeader, da segunda para

  • 73

    btColumnHeader e da ltima para btDetail. Modifique a altura

    das Bands para facilitar seu trabalho, deixe-as parecido como a

    imagem abaixo:

    Figura 71 Componente TRLReport do Fortes Report.

    Na Seo de cabealho adicione dois TRLLabel, para o primeira

    bote a identificao de uma empresa fictcia na propriedade

    Caption, GRUPO EMPRESARIAL SO JOS DA SILVA, para o

    a segunda bote Listagem de Setores, edite as suas propriedades

    de fonte para ficam com abaixo:

    Figura 72 Componente TRLReport do Fortes Report.

    Na seo de cabealho de coluna, adicionar mais dois TRLLabel,

    um com Caption com ID e outro com NOME DO SETOR.

    J na seo Detalhes, adicione dois componente TRLDBText,

    para rebecer os dados dinmicos do banco de dados. Edite as

    propriedades DataSource e DataField, para apontar,

  • 74

    dsListagemSetores e os campos para setor_id e nome,

    respectivamente.

    Adicione um componente TRLSystemInfo, ao lado direitro do

    Label Listagem de Setores, e modifique a propriedade info para

    ifFullDate.

    O relatrio deve estar como abaixo:

    Figura 73 Componente TRLReport do Fortes Report.

    Pronto nosso relatrio j estar pronto.

    Agora v ao formulrio frmPrincipal e de um clique no Menu

    Relatrio > Listagem de Setores, o lazarus exibir o cdigo da

    uniPrincipal, com o procedure do item de menu que foi clicado.

  • 75

    Figura 74 Cdigo Fonte uniRelatorioSetores.

    Antes de adicionar o cdigo de invocar o relatrio, v na seo

    uses desta Unit e adicionar a uniRelatorioSetores. Volte ao

    procedure que foi gerar anteriormente e adicione o cdigo que

    executar o relatrio que acabamos de desenhar.

    No cdigo acima, chamamos o formulrio, depois o componete

    TRLReport, e chamamos procedure PreviewModal dele.

    Pronto, agora Salve, Compile e Execute para testar.

    Com a aplicao rodando acesse o Menu Relatrios > Listagem

    Setor:

    Figura 75 Tela Menu Listagem de Setores.

  • 76

    Certifique-se que h setores cadastrados, e ser exibido um

    relatrio como abaixo:

    Figura 76 Tela Relatrio Listagem de Setores.

    EXERCCIOS

    1) Crie todos os formulrios necessrios para o cadastro de

    funcionrios, usando os componentes Data Controls.

    a. Use DBLookupCombobox para os atributos que se

    relacionam com outras tabelas.

    b. Use componente MessageDlg para confirmaes e

    Informaes.

    2) Adicione o pacote Fortes Reports sua instalao do

    Lzarus. Siga os passos descritos na aula.

    3) Seguindo os mesmo procedimentos que relatrio feito na

    aula, crie o relatrio de todos os Cargos Cadastrados.

    4) Crie o relatrio de Listagem de Todos os funcionrios

    ordenados por nome, Listando ao alm dos dados pessoais

    o setor ao qual estar vinculado, e o cargo.

    5) Desafio: Crie um relatrio listando os funcionrios por

    setor, usando o Fortes Report.