Tutorial Lazarus e Banco - JC
-
Upload
joao-clayton-aires -
Category
Documents
-
view
93 -
download
4
description
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.