Sunteți pe pagina 1din 27

Colgio Virgem de Ftima LTPI Prof.

Dennis

Linguagem Tcnica de Programao


DELPHI

Colgio Virgem de Ftima LTPI Prof. Dennis

IDICE
1

Banco de dados........................................................................................................................................................................... 4
1.1
Elementos Bsicos ............................................................................................................................................................... 4
1.1.1
Campo .......................................................................................................................................................................... 4
1.1.2
Registro ........................................................................................................................................................................ 4
1.1.3
Tabelas ......................................................................................................................................................................... 4
1.1.4
Banco de Dados ........................................................................................................................................................... 4
1.1.5
SGBD - Sistema Gerenciador de Banco de Dados ...................................................................................................... 4
1.1.6
Dicionrio de Dados .................................................................................................................................................... 4
1.1.7
ndice ........................................................................................................................................................................... 4
1.1.8
Chave Primria ............................................................................................................................................................ 4
1.1.9
Chave Estrangeira ........................................................................................................................................................ 4
1.1.10
Campo Indexado .......................................................................................................................................................... 4
1.1.11
Modelo de Entidade e Relacionamento ....................................................................................................................... 4
1.2

Borland Database Engine .................................................................................................................................................... 5

1.3
Introduo............................................................................................................................................................................ 5
1.3.1
Situao Anterior ......................................................................................................................................................... 5
1.3.2
Problema ...................................................................................................................................................................... 5
1.3.3
Soluo ........................................................................................................................................................................ 5
1.4

Caractersticas ..................................................................................................................................................................... 5

1.5
Estrutura do BDE ................................................................................................................................................................ 6
1.5.1
Caractersticas .............................................................................................................................................................. 6
1.5.2
Utilizao ..................................................................................................................................................................... 6
1.6
Criao de um Banco de Dados .......................................................................................................................................... 7
1.6.1
dBase e Paradox ........................................................................................................................................................... 7
1.6.2
Interbase ....................................................................................................................................................................... 7
1.7
Configurao do Banco de Dados ....................................................................................................................................... 7
1.7.1
Utilitrio de Configurao ........................................................................................................................................... 7
2

Database Desktop....................................................................................................................................................................... 8
2.1

Introduo............................................................................................................................................................................ 8

2.2
Criao de Tabelas .............................................................................................................................................................. 8
2.2.1
Para Tabelas Paradox ................................................................................................................................................... 8

2.3

Manipulao Interativa ....................................................................................................................................................... 9

2.4

Utilitrios ............................................................................................................................................................................. 9

2.5

Criando e Executando SQL ................................................................................................................................................. 9

oes de SQL ......................................................................................................................................................................... 10


3.1

Introduo.......................................................................................................................................................................... 10

3.2

Utilizao........................................................................................................................................................................... 10

3.3
Consultas com SELECT ..................................................................................................................................................... 10
3.3.1
Selecionando colunas ................................................................................................................................................. 10
3.3.2
Selecionando Linhas .................................................................................................................................................. 11
3.3.3
Ordenando as linhas ................................................................................................................................................... 11
3.3.4
Valores calculados ..................................................................................................................................................... 11
3.3.5
Funes construdas ................................................................................................................................................... 12
3.3.6
Agrupando linhas ....................................................................................................................................................... 12
3.3.7
Condies de agrupamento ........................................................................................................................................ 12
3.3.8
Valores Nulos ............................................................................................................................................................ 13
3.3.9
Trabalhando com duas ou mais tabelas...................................................................................................................... 13
4

Database Explorer ................................................................................................................................................................... 13

Componentes de Banco de Dados ........................................................................................................................................... 14


2

Colgio Virgem de Ftima LTPI Prof. Dennis


5.1
Introduo.......................................................................................................................................................................... 14
5.2

Database Form Expert....................................................................................................................................................... 14

5.3

TTable ................................................................................................................................................................................ 15

5.4

TQuery ............................................................................................................................................................................... 16

5.5

TDataSource ...................................................................................................................................................................... 16

5.6

DataModule ....................................................................................................................................................................... 16

5.7

TDBText, TDBEdit, TDBMemo, TDBListBox, TDBComboBox, TDBImage ..................................................................... 17

5.8

TDBCheckBox.................................................................................................................................................................... 17

5.9

TDBRadioGroup ................................................................................................................................................................ 17

5.10

TDBGrid ............................................................................................................................................................................ 17

5.11

TDB7avigator.................................................................................................................................................................... 17

5.12

TDBLookupList, TDBLookupCombo ................................................................................................................................. 17

5.13 FIELD ................................................................................................................................................................................ 18


5.13.1
Definio.................................................................................................................................................................... 18
5.14
6

Consulta pela Chave usando o mtodo GotoKey ............................................................................................................... 18

Relatrios .................................................................................................................................................................................. 19
6.1

Impresso de Texto ............................................................................................................................................................ 19

6.2
Impresso Grfica ............................................................................................................................................................. 20
6.2.1
Propriedades .............................................................................................................................................................. 20
6.2.2
Mtodos ..................................................................................................................................................................... 20
6.2.3
Propriedades .............................................................................................................................................................. 20
6.2.4
Mtodos ..................................................................................................................................................................... 20
6.3
Impresso com Componentes ............................................................................................................................................ 21
6.3.1
Introduo .................................................................................................................................................................. 21
6.3.2
Componentes ............................................................................................................................................................. 21
6.3.3
QuickReport ............................................................................................................................................................... 22
6.3.4
QRBand ..................................................................................................................................................................... 23
6.3.5
QRLabel ..................................................................................................................................................................... 23
6.3.6
QRDBText ................................................................................................................................................................. 24
6.3.7
QRDBCalc ................................................................................................................................................................. 24
6.3.8
QRSysData ................................................................................................................................................................ 24
6.3.9
QRShape .................................................................................................................................................................... 25
6.3.10
QRMemo ................................................................................................................................................................... 25
6.3.11
QRDetailLink ............................................................................................................................................................ 25
6.3.12
QRGroup.................................................................................................................................................................... 25
6.3.13
QRPreview ................................................................................................................................................................. 26
6.3.14
Criando um Relatrio................................................................................................................................................. 27
6.3.15
Criando um Relatrio Mestre-Detalhe: ...................................................................................................................... 27
6.3.16
Criando um Formulrio de Visualizao ................................................................................................................... 27

Colgio Virgem de Ftima LTPI Prof. Dennis

1 Banco de dados
1.1

Elementos Bsicos

1.1.1 Campo
1.1.2 Registro
1.1.3 Tabelas
1.1.4 Banco de Dados
1.1.5 SGBD - Sistema Gerenciador de Banco de Dados
1.1.6 Dicionrio de Dados
1.1.7 ndice
1.1.8 Chave Primria
1.1.9 Chave Estrangeira
1.1.10 Campo Indexado
1.1.11 Modelo de Entidade e Relacionamento

Colgio Virgem de Ftima LTPI Prof. Dennis

1.2

Borland Database Engine

1.3

Introduo

O BDE um ncleo de Banco de Dados que fornece a capacidade de acesso a banco de dados para os
softwares Delphi, Paradox, dBase e C++, oferecendo um grande conjunto de caractersticas previamente
testadas para auxiliar desenvolvedores de aplicaes Cliente-Servidor.
Alm de fornecer utilitrios para acessar bancos de dados de maneira compartilhada, o BDE inclui um
conjunto de fontes de dados para acessar bases Paradox, dBase e arquivos texto. Tambm possvel acessar
qualquer banco de dados padro ODBC ou, atravs de SQL Links, acessar diretamente Interbase, Oracle,
Sybase e MS-SQL Server.
O BDE tambm composto de um conjunto de funes que compe uma API (Interface para Programao
de Aplicaes) que permite os desenvolvedores acessarem diretamente esses bancos de dados.
1.3.1 Situao Anterior

Linguagens diferentes
Caractersticas diferentes
Falta de portabilidade
Baixa conectividade
Necessidade de importao/exportao de dados

1.3.2 Problema
Dificuldade de manuteno
Dificuldade de formao de pessoal
1.3.3 Soluo
Utilizao de um padro aberto para banco de dados: IDAPI ou ODBC.
1.4

Caractersticas

Padronizao das mensagens de erro


Padronizao dos tipos de dados
Padronizao dos mtodos de acesso
Acesso a diferentes SGBDs simultaneamente na mesma aplicao atravs da mesma API, o IDAPI
(Integrated Database Aplication Program Interface)
Acesso aos dados via registro ou por SQL, independente do BD

Colgio Virgem de Ftima LTPI Prof. Dennis

1.5

Estrutura do BDE
Aplicaes

Utilitrios

IDAPI
dBase

Paradox

Oracle

MS-SQL
Server

Sybase

Interbase

ODBC
Socket

ODBC

Drivers
ODBC

1.5.1 Caractersticas

Orientado a Objetos
Possui Driver especficos para cada SGBD
Os arquivos do BDE devem ser distribudos junto com a aplicao
Compatvel com os principais SGBDs do mercado
Permite navegao em SQLs

1.5.2 Utilizao
Para se ter acesso, atravs do IDAPI, a um banco de dados que j existe so necessrios os seguintes passos:
1. Inclui-lo no arquivo de configurao do IDAPI
Para se criar um novo banco de dados e ter acesso a atravs do IDAPI so necessrios os seguintes passos:
1. Criar o banco de dados propriamente dito
2. Inclui-lo no arquivo de configurao do IDAPI
3. Criar as tabelas, campos e ndices

Colgio Virgem de Ftima LTPI Prof. Dennis

1.6

Criao de um Banco de Dados

Para criar um banco de dados novo, normalmente, necessrio dispor de alguma ferramenta do prprio
banco de dados.
1.6.1 dBase e Paradox
Normalmente bancos de dados desses tipos so organizados em um diretrio, ou seja, necessrio
somente a criao de um diretrio para armazenar os arquivos de tabelas e ndices.
1.6.2 Interbase
Caso seja necessrio a criao de um novo usurio para administrar o banco de dados, deve-se cadastr-lo
utilizando o programa Interbase Server Manager.
A criao do banco de dados propriamente dito feita no atravs do programa Interbase Windows ISQL
(Interbase Interactive SQL). O banco de dados armazenado em um arquivo com a extenso .GDB .
1.7

Configurao do Banco de Dados

A configurao do Banco de Dados a incluso de informaes sobre o banco de dados no arquivo de


configuraes do IDAPI.
A aplicao faz referncia ao banco de dados por um nome lgico.
O nome lgico cadastrado no arquivo de configurao, indicando qual o SGBD e qual o banco de dados
fsico ao qual ele faz referncia.
Normalmente tambm possvel armazenar no arquivo de configurao do IDAPI algumas informaes
especficas para o banco de dados fsico.
Pode-se trocar de banco de dados e de SGBD simplesmente modificando os dados armazenados no
arquivo de configurao do IDAPI.
O arquivo de definies na verso 1.0 normalmente recebe o nome IDAPI.CFG, enquanto na verso 2.0
normalmente recebe o nome IDAPI32.CFG.
A configurao pode ser feita utilizando-se o utilitrio especfico para configurao ou atravs dos utilitrios
de definio e manipulao de dados.
1.7.1 Utilitrio de Configurao
Pode aparecer com os nomes Database Engine Configuration, BDE Configuration Utility, IDAPI
Configuration Utility, BDE Configuration ou simplesmente Configuration Utility.
A interface composta por mltiplas pginas onde a pgina com o ttulo Aliases permite a definio de
um novo banco de dados no arquivo de configurao.
A configurao s efetivada salvando o arquivo ou saindo do utilitrio.

Colgio Virgem de Ftima LTPI Prof. Dennis

2.1

Database Desktop

Introduo

Fornece uma interface simples e completa para configurao, definio e manipulao de bancos de
dados no BDE.
2.2

Criao de Tabelas

feita selecionando a opo 7ew/Table no menu File.


Escolhe-se ento o gerenciador para a nova tabela
Em seguida aparece uma janela para o cadastramento dos campos, ndices e demais dados necessrios na
criao da tabela. Essa janela especfica para cada gerenciador (tipo de tabela).
2.2.1 Para Tabelas Paradox
1.
2.
3.
4.

Field Name - Nome do campo


Type - Tipo do campo, com o boto direito do mouse pode-se escolher dentre os possveis tipos
Size - Tamanho do campo, somente suportado por alguns tipos de campos
Key - Especifica os campos que faro parte da chave primria, os campos chaves devero ser os primeiros
campos a serem criados.
5. Table Properties - Permite controlar a seguintes propriedades da Tabela :

Validity Checks

Table Lookup
Secondary Indexes
Referential Integrity
Password Security
Table Language
Dependent Tables

Registra as regras de validaes para os campos :


Required Field - Especifica se o campo requerido, ou seja, obrigatrio a entrada de
um valor para esse campo
Minimum -Valor mnimo que esse campo pode assumir
Maximum - Valor mximo que esse campo pode assumir
Default - Valor default para o campo, em cada novo registro o campo receber esse
valor
Picture - Mscara a ser imposta ao campo
Indica que determinado campo somente poder conter valores iguais aos valores de um
campo de outra tabela.
Cria ndices secundrios
Cria integridade referencial (relacionamento entre duas tabelas)
Permite a criao de senhas, protegendo a tabela de acesso no autorizado
Especificar o driver de linguagem utilizado pela tabela
Mostra todas as tabela dependentes atravs da integridade referencial

Colgio Virgem de Ftima LTPI Prof. Dennis

2.3

Manipulao Interativa

feita selecionando a opo Open/Table no menu File.


Escolhe-se ento o banco de dados e a tabela em uma janela semelhante janela Abrir Arquivo.
Para incluir ou alterar os dados necessrio selecionar o item Edit Data
2.4

Utilitrios

Os utilitrios do Database Desktop permitem fazer rapidamente procedimentos normais de manuteno


de banco de dados independente de qual seja o gerenciador.
Os utilitrios permitem Adicionar registros de uma tabela em outra, copiar tabelas (estrutura e contedo),
remover tabelas (estrutura), esvaziar tabelas (contedo), visualizar a estrutura de uma tabela, renomear
tabelas (se o SGBD permitir), ordenar, alterar a estrutura, etc.
As tabelas utilizadas na adio de registros e na cpia de tabelas podem ser de Banco de dados diferentes
e de SGBDs diferentes.
2.5

Criando e Executando SQL

Pode-se criar instrues SQL atravs da opo [File/New/SQL File] e execut-las atravs do boto que
contm o BitMap de um raio

Colgio Virgem de Ftima LTPI Prof. Dennis

3.1

Noes de SQL

Introduo

A linguagem SQL (Structured Query Language), criada originalmente para ser a linguagem de consulta a
bancos de dados da IBM, conseguiu uma boa aceitao nos mais diferentes tipos de usurios, o que
acabou por torn-la um padro ANSI.
O SQL implementado hoje na maior parte dos SGBD dos mais variados fabricantes. Essa popularizao
lhe garantiu a escolha como a linguagem padro do IDAPI e do ODBC.
O IDAPI utliza um subset do ANSI-92 SQL.
3.2

Utilizao

A linguagem SQL permite sua utilizao de duas formas, uma interativa e outra embutida.
A forma interativa, mais comum, consiste na utilizao de linhas de comando que so prontamente
atendidas pelo processador de consultas. No Delphi pode-se utilizar o SQL interativamente atravs dos
utilitrios Database Explorer e Database Desktop.
A forma embutida consiste na colocao de comandos SQL em outras linguagens de alto nvel (COBOL,
DBASE IV, etc.). O Delphi permite a utilizao de SQL embutido.

3.3

Consultas com SELECT

3.3.1 Selecionando colunas


Sintaxe:
SELECT [DISTINCT] <lista_de_colunas>
FROM <lista_de_tabelas>
Na resposta aparecero as colunas na ordem que voc informou na <lista_de_colunas>.
Para que sejam mostradas todas as colunas da tabela basta que voc na <lista_de_colunas> coloque um
asterisco (*).
Em consultas em SQL, linhas iguais so apresentadas
A clusula DISTINCT indica que linhas repetidas no sero processadas.

10

Colgio Virgem de Ftima LTPI Prof. Dennis

3.3.2 Selecionando Linhas


Sintaxe:
SELECT <lista_de_colunas>
FROM <lista_de_tabelas>
WHERE <condio>
As condies da clusula WHERE representam comparaes entre dois itens. Esses itens podem ser o
nome de uma coluna, uma constante (numrica ou literal) ou uma expresso.
Tabela de operaes:
Operao
Igual a
Diferente de
Menor que
Menor ou igual a
Maior que
Maior ou igual a
Pelo menos uma de duas condies
Ambas as condies
Entre dois valores
Igual a um dos valores do conjunto
Apresenta um conjunto de caracteres

Operador
=
<>
<
<=
>
>=
OR
AND
BETWEEN x AND y
IN (x, y, z)
LIKE

3.3.3 Ordenando as linhas


Sintaxe:
SELECT <lista_de_colunas>
FROM <lista_de_tabelas>
[WHERE <condio>]
ORDER BY <lista_de_colunas> [<ASC/DESC>]
Quando usado o ORDER BY deve ser o ltimo comando da clusula SELECT.
O Default a ordem ascendente (ASC).
3.3.4 Valores calculados
O SQL tambm permite que voc obtenha dados a partir de expresses envolvendo dados da tabela. Basta
que para isso voc coloque a expresso como uma das colunas a ser exibida da clusula SELECT. Os
valores calculados tambm podem ser utilizados como parte de uma condio ou para ordenar uma tabela
a partir de uma expresso.

11

Colgio Virgem de Ftima LTPI Prof. Dennis

3.3.5 Funes construdas


O SQL, para facilitar o processo de recuperao de informao, possui uma srie de funes construdas.
As funes atuam, geralmente, em um conjunto de linhas. Se nenhum conjunto de linhas for selecionado,
o sistema assume que toda tabela um grupo.
Os valores so calculados apenas para as linhas selecionadas.
As funes SUM e AVG s podem ser utilizadas em colunas numricas.
Cada funo retornar um nico valor.
Funes
SUM (coluna)
MIN (coluna)
AVG (coluna)
MAX (coluna)
COUNT (*)
COUNT (DISTINCT coluna)
SUBSTRING (coluna FROM inicio FOR tamanho)
UPPER (coluna)
LOWER (coluna)

Descrio
Somatrio dos valores da coluna
Valor mnimo na coluna
Mdia dos valores da coluna
Valor mximo na coluna
Nmero de linhas selecionadas
Nmero de valores nicos
Seleciona uma parte de uma string
Converte para maisculo
Converte para minsculo

3.3.6 Agrupando linhas


Sintaxe:
SELECT <lista_de_colunas>
FROM <lista_de_tabelas>
[WHERE <condio>]
GROUP BY <lista_de_colunas>
[ORDER BY <lista_de_colunas> [<ASC/DESC>]]
3.3.7 Condies de agrupamento
Sintaxe:
SELECT <lista_de_colunas>
FROM <lista_de_tabelas>
[WHERE <condio>]
GROUP BY <lista_de_colunas>
HAVING <condio>
Atravs da clusula HAVING podemos estabelecer condies sobre o resultado obtido nos agrupamentos.
Esta clusula similar ao WHERE da clusula SELECT.

12

Colgio Virgem de Ftima LTPI Prof. Dennis

3.3.8 Valores Nulos


Sintaxe:
SELECT <lista_de_colunas>
FROM <lista_de_tabelas>
WHERE <coluna> IS [NOT] NULL
O valor nulo indica a ausncia de um valor.
Ateno: NULOS no so ZEROS nem BRANCOS.
Uma clusula WHERE pode fazer tratamento nas colunas de forma a diferenciar se determinada coluna
est com valor nulo ou no.
3.3.9 Trabalhando com duas ou mais tabelas
Sintaxe:
SELECT <var1>.<coluna1>, <var1>.<coluna2>, ...,
<var2>.<coluna1>, <var2>.<coluna2>, ...
FROM <tabela1> <var1>, <tabela2> <var2>, ...
[WHERE <condio>]
Sempre que ns desejamos trabalhar com duas ou mais tabelas, devemos informar isto atravs da clusula
FROM, colocando a lista de tabelas desejadas separadas por vrgula.
As colunas selecionadas aparecem na ordem indicada.
A ordem indicada independe das tabelas a que as colunas pertencem.
A clusula WHERE, geralmente, especifica alguma condio de relacionamento entre as duas tabelas. Se
no existir condies de relacionamento, todas as combinaes possveis entre as linhas das tabelas,
indicadas na clusula FROM, sero retornadas (Produto Cartesiano).
Se SELECT * for utilizado, todas as colunas das tabelas selecionadas sero mostradas.
No caso de existir colunas com o mesmo nome nas duas tabelas, ela dever ser qualificada com o nome
da tabela.

4 Database Explorer

Pode aparecer com os nomes Database Explorer ou SQL Explorer.


S est disponvel a partir da verso 2.0 do Delphi.
Funciona como Dicionrio de Dados e permite instrues SQL
Podemos obter informaes variadas sobre os Banco de Dados e suas tabelas, tais como : Diretrio,
Tabelas e Tipo de Banco de Dados e Estrutura, ndices, Regras de Validaes, etc para Tabelas.

13

Colgio Virgem de Ftima LTPI Prof. Dennis

5.1

Componentes de Banco de Dados

Introduo

A programao de aplicaes com banco de dados se resume a incluir janelas em uma aplicao comum,
onde essas janelas possuem acesso a banco de dados.
5.2

Database Form Expert


A maneira mais simples de se fazer uma janela com acesso a banco de dados atravs do Database
Form Expert. Essa opo encontra-se na verso 2.0 com o nome de Form Expert no menu Database.
Ao se chegar no Expert so feitas uma srie de perguntas que podem resultar em uma janela simples ou
Mestre/Detalhe. O acesso ao banco de dados pode ser feito no modo de registro (TTable) ou atravs de
SQL (TQuery).
Todos os campos selecionados aparecem na janela permitindo entrada de dados atravs de um Edit
(TDBEdit).
Cada Edit recebe um Label baseado no nome do campo na tabela selecionada.
Existe tambm na janela um componente para permitir a navegao e a manuteno dos dados
(TDBNavigator).
O componente utilizado para fazer a ligao entre os componentes de campo e a tabela ou query
chamado TDataSource.

14

Colgio Virgem de Ftima LTPI Prof. Dennis

5.3

TTable

Propriedades
Active
DatabaseName
TableName
ReadOnly
Exclusive
BOF
EOF
IndexName
IndexFieldNames
MasterSource
MasterField
State
RecordCount
Fields[n]
Mtodos
Open
Close
FieldByName
First
Next
Last
Prior
Insert
Delete
Edit
Post
Cancel
FindKey
FindNearest
SetKey
GotoKey
GotoNearest
EmptyTable

Descrio
Define se a tabela esta aberta ou fechada
Nome lgico do banco de dados ou nome de um diretrio
Nome da tabela
Define se pode ser feita atualizao na tabela
Define se a tabela pode ser compartilhada
Informa se est no incio da tabela
Informa se est no fim da tabela
Nome do ndice em uso
Nome dos campos de ordenao
Nome do DataSource mestre em um relacionamento
Campos do relacionamento
Estado da tabela (Inativa, Edio, Insero, Pesquisa, Clculo de
Campo)
Nmero de registros
Faz referncia ao n-simo campo da Tabela
Descrio
Abre a tabela
Fecha a tabela
Faz referncia a campo atravs do nome
Vai para o primeiro registro
Vai para o prximo registro
Vai para o ltimo registro
Vai para o registro anterior
Coloca a tabela no modo de insero
Remove o registro corrente
Coloca a tabela em modo de edio
Grava o registro corrente
Cancela a operao atual (insero ou alterao)
Procura um registro pela chave
Procura um registro pela chave posicionando no mais prximo
Entra em modo de procura
Procura um registro pela chave
Procura um registro pela chave posicionando no mais prximo
Apaga todos os registro da tabela, para isso a tabela no pode esta sendo
compartilhada

15

Colgio Virgem de Ftima LTPI Prof. Dennis

Evento
BeforeOpen
AfterOpen
BeforeClose
AfterClose
BeforeInsert
AfterInsert
BeforeEdit
AfterEdit
BeforeDelete
AfterDelete
BeforeCancel
AfterCancel
BeforePost
AfterPost
OnNewRecord
OnCalcField
5.4

Descrio
Ocorre no incio da execuo do mtodo Open
Ocorre aps a execuo do mtodo Open
Ocorre antes do fechamento da Tabela
Ocorre aps o fechamento da Tabela
Ocorre no incio da execuo do mtodo Insert
Ocorre aps a execuo do mtodo Insert
Ocorre no incio da execuo do mtodo Edit
Ocorre aps a execuo do mtodo Edit
Ocorre no incio da execuo do mtodo Delete
Ocorre aps a execuo do Mtodo Delete
Ocorre no incio da execuo do mtodo Cancel
Ocorre aps a execuo do mtodo Cancel
Ocorre no incio da execuo do mtodo Post
Ocorre aps a execuo do mtodo Post
Ocorre quando um novo registro adicionado a tabela
Ocorre quando necessrio saber o valor de um campo calculado

TQuery

Propriedades
RequestLive
SQL
DataSource
Prepared

Descrio
Define se pode ser feita atualizao nos valores da tabela resultante
Instruo SQL
Define o DataSource para se obter os valores das variveis na query
Informa se a instruo est preparada para ser executada

Mtodos
ExecSQL
Prepare

Descrio
Executa uma instruo, exceto SELECT
Prepara uma instruo SQL para ser aberta ou executada

5.5

TDataSource

Propriedade
DataSet

Descrio
Query ou Table ao qual faz referncia

Evento
OnDataChange
OnStateChange
OnUpdateData

Descrio
Ocorre quando o DataSet ou qualquer dos controles alterado
Ocorre quando o estado do DataSet alterado
Ocorre antes de uma atualizao

5.6

DataModule

Permite agrupar os componentes Table, Query e DataSource evitando a repetio destes em diferentes
formulrios de uma mesma aplicao. Depois de inserir um DataModule na Aplicao
[File/NewDataModule], insira, neste, os componentes Table, Query e DataSource, em seguida em qualquer
formulrio que possua DataControls faa referncia os Componentes Table, Query e DataSource inicando
antes o nome do DataModule : DataModule.Table1, DataModule.Query ou DataModule.DataSource1.

16

Colgio Virgem de Ftima LTPI Prof. Dennis

5.7

TDBText, TDBEdit, TDBMemo, TDBListBox, TDBComboBox, TDBImage

Propriedades
DataSource
DataField
5.8

TDBCheckBox

Propriedades
DataSource
DataField
ValueChecked
ValueUnchecked
5.9

Descrio
DataSource ao qual o controle est ligado
Campo do controle que exibido

Descrio
DataSource ao qual o controle est ligado
Campo do controle que exibido
Valor a ser armazenado quando est selecionado
Valor a ser armazenado quando no est selecionado

TDBRadioGroup

Propriedades
DataSource
DataField
Values

Descrio
DataSource ao qual o controle est ligado
Campo do controle que exibido
Valor a ser armazenado para cada boto de rdio

5.10 TDBGrid
Propriedades
DataSource

Descrio
DataSource ao qual o controle est ligado

5.11 TDBavigator
Propriedades
DataSource
VisibleButtons
ConfirmDelete

Descrio
DataSource ao qual o controle est ligado
Define os botes que sero visveis
Define se ser solicitado uma confirmao antes da excluso

5.12 TDBLookupList, TDBLookupCombo


Propriedades
DataSource
ListSource
ListField
KeyField
DataField

Descrio
DataSource ao qual o controle est ligado
DataSource que contm os valores a serem exibidos na lista
Campo de LookupSource que ser exibido
Campo de LookupSource que ser comparado
Campo de DataSource que comparado

17

Colgio Virgem de Ftima LTPI Prof. Dennis

5.13 FIELD
Propriedades
FieldName
DataType

Value
IsNull
EditMask ou
EditFormat
DisplayLabel
Size
Calculated
Required
DisplayFormat
MaxValue
MinValue
AsString,
AsInteger, AsFloat,
AsBoolean,
AsDateTime

Descrio
Campo ao qual o controle est ligado
Tipo do campo armazenado (ftBoolean, ftBCD, ftBlob, ftBytes,
ftCurrency, ftDate, ftDateTime, ftFloat, ftGraphic, ftInteger, ftMemo,
ftSmallint, ftString, ftTime, ftUnknown, ftVarBytes, ou ftWord)
Valor do campo
Indica se o valor do campo nulo
Mscara de edio que ser utilizada na alterao
Ttulo a ser exibido para o campo
Tamanho do campo
Indica se o campo calculado em tempo de execuo
Define se o campo obrigatrio
Mscara que ser utilizada na exibio
Valor mximo para o campo
Valor mnimo para o campo
Acessa o campo no respectivo formato

5.13.1 Definio
5.13.1.1 Eventos
OnValidate

Descrio
Ocorre sempre que o campo armazenado na tabela

5.13.1.2 Mtodo
Clear

Descrio
Limpa o campo

5.14 Consulta pela Chave usando o mtodo GotoKey


Ao pressionar o boto de consulta, deve-se executar o seguinte procedimento:
Tabela.SetKey;
Tabela.FieldByName (campo).AsString := valor;
if Tabela.GotoKey then
{ Encontrou o registro }
else
{ No encontrou o registro }
Caso a tabela j esteja no modo de edio ou insero, necessrio cancelar o processo de atualizao
antes de efetuar a pesquisa.
Um campo pode ser acessado atravs das propriedades AsBoolean , AsDateTime, AsFloat, AsInteger ou
AsString, dependendo do tipo do valor armazenado.

18

Colgio Virgem de Ftima LTPI Prof. Dennis

Relatrios

6.1

Impresso de Texto

A impresso de um relatrio contendo somente texto pode ser feita utilizando o mtodo tradicional do
Pascal, com poucas modificaes:
var
<relatrio>: TextFile;
begin
AssignPrn(<relatrio>);
Rewrite(<relatrio>);
Printer.Title := <ttulo do relatrio>;
Writeln(<relatrio>, ...);
.
.
.
CloseFile(<relatrio>);
end;
Para cancelar a impresso durante a gerao do relatrio pode-se utilizar o mtodo Abort do objeto
Printer.
O objeto Printer e o procedimento AssignPrn esto definidos na unit Printers.

19

Colgio Virgem de Ftima LTPI Prof. Dennis

6.2

Impresso Grfica

A impresso grfica pura pode ser feita utilizando-se o objeto Printer:


6.2.1 Propriedades
ome
Printing
Title
PageHeight
PageWidth
Orientation
Canvas
PageNumber

Descrio
Informa se existe algum documento sendo impresso pelo processo.
Ttulo do relatrio
Altura da pgina
Largura da pgina
Orientao (Landscape ou Portrait)
a pgina propriamente dita
Nmero da pgina sendo impressa

6.2.2 Mtodos
ome
BeginDoc
EndDoc
NewPage
Abort

Descrio
Inicia a impresso
Finaliza a impresso
Inicia uma nova pgina
Cancela uma impresso

A impresso propriamente dita de cada pgina feita no objeto Canvas:


6.2.3 Propriedades
ome
Font
Brush
Pen

Descrio
Tipo de letra que ser utilizado na escrita
Estilo e cor do preenchimento
Estilo e espessura da linha

6.2.4 Mtodos
ome
TextOut
MoveTo
LineTo
PolyLine
Arc
Pie
Rectangle
RoundRect
FillRect
FloodFill
Ellipse
Draw
StretchDraw
CopyRect

Descrio
Escreve um texto em uma determinada posio
Move o posio de desenho para uma determinada posio
Desenha uma linha da posio atual at a posio determinada
Desenha uma srie de linhas
Desenha um arco
Desenha um setor de um grfico tipo torta
Desenha um retngulo
Desenha um retngulo com bordas arredondadas
Desenha um retngulo preenchido
Preenche uma rea qualquer
Desenha uma elipse
Coloca um Bitmap, cone ou Metafile no Canvas
Coloca um Bitmap, cone ou Metafile no Canvas, alterando o tamanho
da figura
Copia uma rea do canvas para outro canvas

20

Colgio Virgem de Ftima LTPI Prof. Dennis

6.3

Impresso com Componentes

6.3.1 Introduo
A verso 2.0 do Delphi traz uma soluo visual para a elaborao rpida de relatrios, o QuickReport. A
soluo utiliza o editor de formulrios do prprio Delphi e se basea no fato de que a maior parte dos
relatrios composta por faixa de informaes.
6.3.2 Componentes
ome
6.3.2.1.1
kReport

QRBand
QRLabel
QRDBText
QRDBCalc
QRSysData
QRShape
QRMemo
QRDetailLink
QRGroup
QRPreview
QRPrinter

Descrio
Quic o controlador do relatrio.
Transforma o formulrio do Delphi em um relatrio.
ativado pelos mtodos Print e Preview.
Permite visualizar o relatrio em tempo de desenvolvimento ao se
selecionar a opo Preview no menu sensvel ao contexto.
Define as faixas de informaes do relatrio, que podem ser
Define rtulos a serem impressos
Imprime campos de um DataSet
Exibe o somatrio, mdia ou quantidade de registros, valor mximo e
mnimo em um campo
Imprime informaes do sistema como data, hora, nmero da pgina,
etc.
Imprime linhas e figuras
Imprime um rtulo com mais de uma linha
Utilizado na criao de relatrios mestre-detalhe
Define um grupo de informaes
Cria uma rea de exibio de relatrio, utilizada para preview
derivado de TPrinter e permite visualizar, salvar e carregar um
relatrio

21

Colgio Virgem de Ftima LTPI Prof. Dennis

6.3.3 QuickReport
Propriedades
CollumnMarginInches
CollumnMarginMM
Columns
DisplayPrintDialog
LeftMarginInches
LeftMarginMM
Orientation
RestartData
ShowProgress
Mtodos
Preview
Print

Descrio
Espao, em 1/10 de polegadas, entre colunas num relatrio MultiColuna.
O mesmo que CollumnMarginInches, sendo que em milmetros.
Nmero de colunas a serem impressas.
Exibe a caixa de dilogo de impresso quando o mtodo QuickReport.Print
executado.
Margem esquerda, em 1/10 de polegadas.
O mesmo que LeftMarginInches, sendo que em milmetros
Orientao do Papel (poPortait ou poLandscape)
Indica se o QuickReport ir para o primeiro registro do dataset ou inicia a
partir do registro corrente.
Indica se o formulrio de progresso ir aparecer na criao do formulrio. O
formulrio de progresso possui um boto Cancel.
Descrio
Exibe um preview do formulrio
Imprime o formulrio

22

Colgio Virgem de Ftima LTPI Prof. Dennis

6.3.4

QRBand

Propriedade
BandType
rbTitle
rbPageHeader
rbPageFooter
rbColumnHeader
rbDetail
rbSubDetail
rbGroupHeader
rbGroupFooter
rbSummary
Color
Enabled
Font
ForceNewPage
Frame
LinkBand
Ruler
Eventos
BeforePrint
AfterPrint

Descrio
Impresso uma vez no incio do relatrio
Impresso uma vez no incio de cada pgina
Impresso no rodap de cada pgina
Semelhante ao rbPageHeader exceto pelo fato que impresso para
cada coluna no caso de um relatrio multicoluna
Replicado para cada registro do DataSet
Usado como rbDetail em relatrios mestre-detalhe
Impresso como cabealho de grupo de informaes. Deve ser
indicado em um QRDetailLink
Impresso como rodap de grupo de informaes. Deve ser
indicado em um QRDetailLink
Impresso no fim do relatrio
Cor de fundo da faixa
Indica se o QRBand ser impresso
Fonte para os controles desse QRBand
Fora que a impresso seja feita numa nova pgina
Coloca molduras no QRBand
Liga QRBands entre si, forando que sejam impressos numa
mesma pgina
Coloca uma rgua, em tempo de projeto, no QRBand
Descrio
Quando o QRBand vai ser impresso. A impresso pode ser
cancelada atribuindo-se False ao parmetro PrintBand
Ocorre aps a impresso ou tentativa de impresso de um
QRBand. Se a impresso foi cancelada no evento BeforePrint o
parmetro BandPrinted tem o valor True

6.3.5 QRLabel
Propriedade
Alignment
AutoSize
Caption
Color
Font
Transparente

Descrio
Alinhamento do texto
Controle automtico do tamanha do componente
Texto a ser impresso
Cor de fundo
Fonte utilizada
Define se o componente ser transparent

Eventos
OnPrint

Descrio
Ocorre antes do componente ser impresso. O valor a ser impresso
esta no parmetro Value

23

Colgio Virgem de Ftima LTPI Prof. Dennis

6.3.6 QRDBText
Propriedade
Alignment
AutoSize
Color
DataSource
DataField
Font
Transparent
Eventos
OnPrint

Descrio
Alinhamento do texto
Define se o tamanho do componente ser ajustado
automaticamente de acordo com o seu contedo
Cor de fundo para o componente
Fonte de Dados
Campo
Fonte
Indica se o componente ser transparente
Descrio
Ocorre antes do componente ser impresso. O valor a ser impresso
esta no parmetro Value

6.3.7 QRDBCalc
Propriedade
AsInteger
AsReal
Operation

PrintMask
ResetBand

Descrio
Retorna o Valor corrente com inteiro
Retorna o Valor corrente como real
Operao de Calculo a ser realizada
qrcSum
- Somatrio de um campo
qrcCount
- Nmero de registro de um campo
qrcMax
- Valor mximo de um campo
qrcMin
- Valor mnimo de um campo
qrcAverange - Mdia de um campo
Mscara de sada do QRDBCalc
Zera os clculos sempre for impresso

Eventos
OnPrint

Descrio
Antes do componente ser impresso

6.3.8 QRSysData
Propriedade
Data
Alignment
AutoSize
Color
Font
Transparente
Eventos
OnPrint

Descrio
Informao a ser exibida (Hora, Data, Nmero da Pgina, Ttulo
do Relatrio, Contado de Detalhes, Registro Corrente)
Alinhamento do texto
Controle automtico do tamanha do componente
Cor de fundo
Fonte utilizada
Define se o componente ser transparent
Descrio
Ocorre antes do componente ser impresso. O valor a ser impresso
esta no parmetro Value

24

Colgio Virgem de Ftima LTPI Prof. Dennis

6.3.9 QRShape
Propriedade
Brush
Pen
Shape
Height
Width

Descrio
Cor e Traado da Figura
Caneta usada na pintura
Tipo da Figura
Altura da figura
Largura da figura

Eventos
OnPrint

Descrio
Ocorre antes do componente ser impresso. O valor a ser impresso
esta no parmetro Value

6.3.10 QRMemo
Propriedade
Alignment
AutoSize
Lines
WordWrap
Color
Font
Transparente

Descrio
Alinhamento do texto
Controle automtico do tamanha do componente
Texto a ser impresso
Quebra automtica de linha de acordo com o tamanho do
componente
Cor de fundo
Fonte utilizada
Define se o componente ser transparent

6.3.11 QRDetailLink
Propriedade
DataSource
DeatilBand
FooterBand
HeaderBand
Master
PrintBefore
Eventos
OnFilter

Descrio
Fonte de Dados na qual um relacionamento mestre-detalhe deve
ter sido defenido
QRBand detalhe
QRBand rodap
QRBand cabealho
QuickReport ou outro QRDetailLink. Um relacionamento mestredetalhe deve ser definido entre as tabelas envolvidas
Inidica se a informao mestre ser impresso antes ou depois dos
detalhes
Descrio
Ocorre a cada movimento do ponteiro de registros no dataset e o
parmetro PrintRecord pode ser utilizado para evitar a impresso
do registro corrente

6.3.12 QRGroup
Propriedade
DataSource
DataField
FooterBand
HeaderBand
Level

Descrio
Fonte de Dados
Campo que servir como base para o grupo
Rodap do grupo
Cabealho do grupo
Nvel do grupo

25

Colgio Virgem de Ftima LTPI Prof. Dennis

6.3.13 QRPreview
Propriedade
PageNumber
Zoom

Descrio
Escolha da pgina a ser exibida
Escolha do zoom

Mtodos
ZoomToFit
ZoomToWith

Descrio
Ajusta o zoom para caber todo o relatrio no formulrio
Ajusta o zoom horizontal para caber todo o relatrio no formulrio

26

Colgio Virgem de Ftima LTPI Prof. Dennis

6.3.14 Criando um Relatrio


1. Crie um novo formulrio;
2. Inclua um componente TQuickReport e defina a propriedade ReportTitle com o ttulo do relatrio para o
Gerenciador de Impresso;
3. Inclua um componente TQRBand e defina o BandType para rbDetail;
4. Inclua um componente TTabel e defina o banco de dados e a tabela;
5. Inclua um componente TDataSource e assinale o DataSet para a tabela inserida no 4 item;
6. Inclua componentes TQRDBText sobre o TQRBand e defina as propriedades DataSource e DataField;
7. Componentes TQRLabel podem ser includos para exibir rtulos para os campos;
8. Altere a propriedade DataSource do componente TQuickReport para assinalar o DataSource inserido no
5 item.
O relatrio criado pode ser exibido chamando o mtodo Preview ou impresso atravs do mtodo Print de
TQuickReport.
6.3.15 Criando um Relatrio Mestre-Detalhe:
Acrescente os passos abaixo para transformar um relatrio simples em mestre-detalhe:
Acrescente uma segunda tabela e defina como sendo o detalhe no relacionamento com a tabela j
existente;
Inclua um novo TDataSource e assinale para a nova tabela;
Inclua um novo TQRBand;
Acrescente um TQRDetailLink e defina a propriedade DataSource para o novo DataSource, a propriedade
Master para assinalar o TQuickReport e a propriedade DetailBand para o novo TQRBand;
Acrescente novos componentes TQRDBText e TQRLabel e o relatrio estar pronto.
6.3.16 Criando um Formulrio de Visualizao
Coloque um componente TQRPreview em um formulrio.
No formulrio principal, defina o evento:
procedure <formulrio principal>.OnPreview;
begin
<formulrio de visualizao>.ShowModal;
end;
No evento OnCreate do formulrio principal inclua a linha:
QRPrinter.OnPreview := OnPreview;

27

S-ar putea să vă placă și