Você está na página 1de 75

PROGRAMAO

COMERCIAL

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

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

Aula

Meta da Aula
Apresentar os componentes da
IDE Lazarus que auxiliam a criao
de aplicaes com acesso a base
de dados.

Objetivos

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.

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
C:\Winsows\System32
Windows.

Server
caso

5.0\bin
utilize

para

sistema

pasta

operacional

18

Baixando o instalador Mysql 5

Acesse

pgina

http://dev.mysql.com/downloads/mysql/

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/guitools/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 (root@127.0.0.1) 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
PRIMARY KEY
ALTER TABLE
FOREIGN KEY
ALTER TABLE
FOREIGN KEY

Funcionario ADD CONSTRAINT PK_Funcionario


(funcionario_id,cargo_id,setor_id);
Funcionario ADD CONSTRAINT FK_Funcionario_0
(cargo_id) REFERENCES Cargo (cargo_id);
Funcionario ADD CONSTRAINT FK_Funcionario_1
(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

Aula

Meta da Aula
Demonstrar

processo

de

Conexo com Base de Dados


usando a Biblioteca Zeos bem
como a interao os dados.

Objetivos

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.

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

Sistema de Cadastro de Funcionrios

Name

frmPrincipal

WindowState

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

taLeftJustify

Text

Sistema de Cadastro de Funcionrios

Width

300

Item 2 da Barra de Status

37
Alignment

taCenter

Text

Desenvolvido Pro <Seu Nome>

Width

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 + <Space>,


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

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

Cadastro de Cargos

Width

500

Height

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

Novo, Editar, Excluir e Sair, repectivamente

Name

btnNovo, btnEditar, (....)

Witdh

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 +
<space>, 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

<space>,

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

componente

de

conexo

edite

sua

propriedades com na tabela abaixo:

Database

Empresa

HostName

Localhost

User

Root

Password

<a senha informada na instalao do


mySQL.>

Protocol

mysql-5

Name

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

Selecione conexao

Name

tbCargo

TableName

Selecione cargo

SortedFields

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

False

DataSet

Selecione tbCargo

Name

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

gridCargos, e

frmCargoLista,
modifique

selecione

DBGrid

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

Aula

Meta da Aula
Demonstrar as operaes bsicas
com registros de bancos de dados:
Inserir, Editar, Salvar e Deletar.

Objetivos

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.

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

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 + <space> 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 autocompletar 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

usurio

realizar

as

modificaes

desejadas

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

frmCargoFormulario e colocar o seguinte cdigo:

do

formulrio

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

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 entre registros


de tabelas, e Gerao de

Aula

Relatrios.

Meta da Aula
Demonstrar como feito a associao entre
registros

de

tabelas,

Implementar

mecanismos de gerao de relatrios.

Objetivos

Ao final desta aula, voc dever ser


capaz de:

1. Usar

componente

DBlookupCombobox da paleta Data


Controls;

2. Instalar e Criar relatrios usando os


componentes
Report.

do

pacote

Fortes

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

DBLookupComboBox

componente

Data

Control

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

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

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

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

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.