You are on page 1of 150

1

MANUAL DO USURIO

http://www.xmaker.com.br

Modular Software
Uberaba M.G.

COPYRIGHT

Todos os direitos reservados. Nenhuma parte deste material


poder ser reproduzida, transmitida, transcrita, armazenada em
meio recupervel ou traduzida para outras lnguas, no todo ou
em parte, em qualquer forma ou por quaisquer meios, seja
eletrnico, mecnico, magntico, tico ou manual, sem o
consentimento prvio e por escrito da Modular software.
A Modular Software reserva-se, outrossim, o direito de revisar
e fazer mudanas peridicas no contedo deste manual, sem a
obrigao de notificar a quaisquer pessoas ou instituies.
Alguns nomes de produtos que aparecem neste manual so
marcas registradas de seus respectivos proprietrios.

1. O QUE O X-MAKER?
O X-Maker um gerador de aplicativos para o ambiente
Windows, voltado para desenvolvedores de software. Utilizando
todo potencial da linguagem orientada a objetos, acelera o
processo de desenvolvimento de forma extremamente eficiente,
prtica e padronizada. Sua principal funo a manipulao de
banco de dados para armazenamento de informaes de
qualquer natureza, agregando todos os recursos possveis e
atuais do ambiente visual e com acesso nativo as bases de dados,
cria projetos altamente profissionais e confiveis.
Os arquivos fontes so gerados na linguagem Delphi 5, 6
ou 7, sendo, portanto necessrio que o usurio tenha instalado
em seu equipamento a verso Professional ou Enterprise do
Delphi. Somente essas verses possuem os recursos disponveis
para acesso as bases de dados utilizadas pelo X-Maker, so elas:
InterBase 5.x/6.x, FireBird 1.x, SyBase, MS-SQL Server,
MySql 3.20/3.23/4.00, PostGreSql 6.5/7.2 e ADO (Access,
Paradox, dBase, Oracle, etc.),. Outras bases de dados podero
ser utilizadas em futuras verses desse produto, temos como
meta a compatibilidade com os diversos gerenciadores de banco
de dados disponveis no mercado.
As verses disponveis do X-Maker so:

X-Maker Free Edition: Destinada aos novos usurios


que desejam conhecer essa ferramenta, essa verso trs
os mesmos recursos da verso Professional, porm,
limitada para pequenos projetos. Existe um limite de
definies, que so: Um Banco de Dados, doze Tabelas,
doze Formulrios, doze Relatrios, doze Etiquetas e doze
Grficos. No h limitaes de criao de projetos.

X-Maker Professional - Individual: Destinada aos


profissionais que iro utilizar o X-Maker como
ferramenta oficial de desenvolvimento.

X-Maker Professional - Corporativo: Destinada ao


trabalho em grupo, compartilha os projetos em uma rede
local, permitindo que vrios profissionais trabalhem em
um mesmo projeto ao mesmo tempo.

Agilidade, praticidade e confiabilidade so os pontos


principais na construo de aplicaes atravs dessa ferramenta,
seja ela de pequena ou de grande complexidade. possvel criar
um projeto sem nenhum esforo de programao.
As Empresas desenvolvedoras e organizaes encontraro
nessa ferramenta um ganho significativo de produo e
padronizao, a reduo de custos de desenvolvimento e
manipulao de projetos ser uma meta alcanada, outro ponto
importante a independncia de um desenvolvedor especfico, o
trabalho em grupo ser valorizado.
Os profissionais liberais encontraro todos os recursos
necessrios para uma produo mais ativa e dinmica na criao
de softwares. Para aqueles que no se consolidaram no
desenvolvimento de aplicaes em ambiente Windows, podero
iniciar a migrao sem traumas ou incertezas.
Pensando no crescimento e aperfeioamento dos
estudantes, instrutores e professores da linguagem de
programao Delphi, a verso Free Edition ir proporcionar um
novo universo de conhecimento e experincias na criao de
projetos.

1.1. Pr-requisitos
As exigncias mnimas de software e hardware para que
seu sistema execute corretamente o X-Maker so:

Microsoft Windows (98 ou verso posterior).


Delphi 5, 6 ou 7 na verso Professional ou Enterprise
instalado na mquina.
Microcomputador com processador Pentium (ou
superior), 64 megabytes de memria, 120 megabytes de
espao livre em disco.
Um adaptador de vdeo, mouse suportado pelo Windows.

1.2. Instalando o X-Maker


A instalao do X-Maker em seu computador feita pelo
programa Instalar, gravado no Cd-Rom de "Instalao" ou
atravs do arquivo disponvel em nosso site para download.
1.2.1 Para instalar o X-Maker atravs do Cd-Rom:
1. Insira o Cd-Rom de Instalao do X-Maker.
2. O programa Instalar ser inicializado automaticamente.
Caso
a
inicializao
no
seja
inicializada
automaticamente, d um duplo clique no cone Meu
Computador no Desktop e um duplo clique na unidade
de Cd-Rom, execute o programa Instalar.
3. Siga as instrues mostradas na tela.
1.2.2 Para instalar o X-Maker atravs do arquivo de
download:
1. Faa o download do arquivo em nosso site
http://www.xmaker.com.br na seo de Downloads.
2. Execute o arquivo em seu computador.
3. Siga as instrues mostradas na tela.

1.2.3 Pasta de Instalao:


A pasta de Instalao do X-Maker padro
C:\XMAKER3 - sugerimos que esta pasta seja mantida. Esta
recomendao est relacionada a uma limitao do sistema
operacional relativa ao comprimento mximo de linhas de
comando executado via MS-DOS, pois a compilao do projeto
pelo X-Maker se faz atravs de linhas de comandos do MSDOS. Recomenda-se que a nova pasta esteja localizada
imediatamente abaixo da pasta raiz escolhida, Exemplos:
C:\XMaker3 - D:\XMaker3 F:\Xmaker3 -
1.2.4 FireBird:
O FireBird o gerenciador de banco dados utilizado pelo
X-Maker. Sua instalao necessria para o funcionamento
correto do X-Maker. Caso o InterBase 6.x ( ou superior ) esteja
instalado em seu computador a instalao do FireBird no ser
necessria, por ser compatvel com o FireBird. Qualquer verso
do Interbase inferior a 6.x dever ser desinstalada antes da
instalao do FireBird.

2. INTERFACE DO X-MAKER
Atravs de uma interface prtica e amigvel possvel
construir um aplicativo atravs de 06 passos intuitivamente
coordenados. A seguir iremos dar um enfoque geral das opes
disponveis no menu principal, barra de ferramentas e barra de
assistente.
Viso geral:

2.1. Menu Principal do X-Maker

Arquivo: Contm as opes para criao e abertura de


projetos e edio de arquivos fontes.

Editar: Comandos bsicos de manipulao dos arquivos


fontes abertos (rea de transferncias, pesquisas,
substituies e posicionamentos).

Exibir: Configurao do ambiente de trabalho e


utilitrios para o projeto (dirio de anotaes, calendrio
e calculadora).

Projeto: Opes de definies do projeto (Propriedades,


Tabelas, Formulrios, Relatrios e Menu Principal).

Fontes: Restaurao de mdulos, compilao e execuo


do projeto.

Configurao: Configurao dos parmetros de


compilao, propriedades do editor e definio de
campos predefinidos.

Ajuda: Acesso ajuda do X-Maker, Delphi e


informaes complementares.

2.2. Barra de Ferramentas

Novo Projeto: Permite a criao de um novo projeto.

Abrir Projeto: Faz a abertura de projetos j existentes.


Fechar Projeto: Fecha o projeto que esteja aberto.
Novo Arquivo: Cria um novo arquivo fonte para edio.
Abrir Arquivo: Faz a abertura de um arquivo fonte j
existente.
Salvar Arquivo (F2): Salva as modificaes realizadas em
um arquivo fonte em edio.
Salvar Todos: Salvam as modificaes realizadas em todos
os arquivos fontes em edio.
Fechar Arquivo: Fecha um arquivo fonte em edio.
Propriedades: (1 Passo) Define as propriedades do projeto,
tais como: Ttulo, Empresa Projetista, Programadores,
Analistas, verso, data de incio, cone e configuraes
adicionais.
Tabelas: (2 Passo) Definio dos bancos de dados, tabelas,
campos, ndices, integridades, relacionamentos, processos
diretos/inversos e lanamentos.
Formulrios: (3 Passo) A manipulao dos registros
realizada atravs de formulrios de Entrada de Dados, a
montagem do Layout no ser mais problema, com recursos
exclusivos o X-Maker ir facilitar todo o processo de criao
atravs da Auto Formatao e drag and drop (arrasta e solta)
dos componentes inseridos no formulrio.
Relatrios: (4 Passo) A extrao de informaes
realizada atravs de relatrios, etiquetas e grficos. Com um

10

poderoso editor de relatrios esses processos sero obtidos


de forma simples e eficiente.
Menu: (5 Passo) Consiste na definio das chamadas dos
formulrios e relatrios criados.
Compilar: (6 Passo) parte final de criao do projeto,
todos os mdulos criados e personalizados sero compilados
para a gerao do executvel final.
Executar: Executa o projeto previamente compilado.
Delphi: Executa o Delphi, conforme a verso definida na
propriedade do projeto e abre o projeto para livre
manipulao.
Dirio: Possibilita ao projetista a realizar anotaes e
lembretes que sero vinculados ao projeto.

2.3. Barra de Assistente

Propriedades: (1 Passo) Define as propriedades do


projeto, tais como: Ttulo, Empresa Projetista,
Programadores, Analistas, verso, data de incio, cone e
configuraes adicionais.

Tabelas: (2 Passo) Definio dos bancos de dados,


tabelas, campos, ndices, integridades, relacionamentos,
processos diretos/inversos e lanamentos.

Formulrios: (3 Passo) A manipulao dos registros


realizada atravs de formulrios de Entrada de Dados, a
montagem do Layout no ser mais problema, com

11

recursos exclusivos o X-Maker ir facilitar todo o


processo de criao atravs da Auto Formatao e drag
and drop (arrasta e solta) dos componentes inseridos no
formulrio.

Relatrios: (4 Passo) A extrao de informaes


realizada atravs de relatrios, etiquetas e grficos. Com
um poderoso editor de relatrios esses processos sero
obtidos de forma simples e poderosa em recursos.

Menu: (5 Passo) Consiste na definio das chamadas


dos formulrios e relatrios criados.

Compilar: (6 Passo) parte final de criao do projeto,


todos os mdulos criados e personalizados sero
compilados para a gerao do executvel final.

12

3. CONCEITOS BSICOS
O X-Maker utiliza alguns conceitos bsicos na definio
de projetos, algum desses conceitos j dever ser de seu
conhecimento, com pequenas variaes de nomes ou definies,
a compreenso dos mesmos facilita a utilizao da ferramenta.

3.1. Banco de Dados


a estrutura que ir armazenar uma coleo de Tabelas, a
sua definio necessria antes da definio de qualquer Tabela,
em Propriedades do Projeto possvel escolher o gerenciador de
Banco de Dados que ser utilizado, a definio do Banco de
Dados estar subordinada a essa informao.
Login e senha de acesso, parmetros de conexo, nome do
Banco de Dados e localizao so definidos conforme
informaes contidas na Propriedade do Projeto, toda tabela tem
que ter um Banco de Dados associado, e um Banco de Dados
pode conter uma ou todas as tabelas do projeto.

3.2. Tabelas
Atravs de um ou mais campos ns formamos a definio
de um Tabela, essas Tabelas iro conter uma estrutura
predefinida de informaes para que o projeto final possa criar
as Tabelas em disco para armazenar todos os registros de um
sistema.
As Tabelas so constitudas de campos, chave primria e
chaves secundrias (ndices). Uma chave primria definida por
um ou mais campos, sendo que seus valores no podero ser

13

duplicados na incluso de registros. Como exemplo podemos


citar uma tabela de cadastro de clientes, ao cadastrar o cdigo
0001 esse cdigo no poder ser mais utilizado por outro cliente
enquanto o mesmo existir.

3.3. Campos
So utilizados na definio da estrutura das tabelas. Os
campos so definidos atravs de um conjunto de atributos, tais
como: nome, tipo, tamanho, tipo de edio, mscara, ttulo, etc.
As informaes contidas na definio dos campos so de
extrema importncia, pois os componentes que sero utilizados
na formatao da tela de Entrada de Dados esto subordinados
aos atributos dos campos, principalmente o atributo de Tipo de
Edio.

3.4. Campo Calculado


um tipo de campo especial, por tratar-se de um campo
virtual, esse campo no gravado fisicamente na Tabela. A
utilizao desse tipo de campo aconselhvel para
demonstrao de clculos que dependem de outros campos e que
so variveis. Como exemplo podemos citar um campo de valor
total de produtos, esse campo conter um clculo de
multiplicao entre os campos de quantidade e preo unitrio.

3.5. Integridades & Relacionamentos


A integridade de uma base de dados est vinculada a um
relacionamento correto e coerente entre as tabelas, existem
registros que dependem de outros registros para serem criados e

14

existem registros que no podem ser excludos se estiverem


sendo referenciados em outras tabelas. O X-Maker proporciona
os seguintes relacionamentos:

Relacionamento: Trata-se de um relacionamento


simples, ou seja, no ser utilizado para criao de
integridade referencial. Esse tipo de relacionamento
permite a utilizao de campos Extras, campos de
tabelas relacionadas podero ser visualizados como se
pertencessem a uma mesma tabela. Exemplo: A Tabela
de Vendas possui um relacionamento com a Tabela de
Clientes, e os campos da Tabela Clientes podero ser
agregados a Tabela de Vendas. Isso no uma
duplicidade de informao ou campos, os campos
escolhidos da Tabela de Clientes no sero gravados
fisicamente na Tabela de Vendas.

Restrita: Somente os registros que no estivem sendo


referenciados em outras Tabelas podero ser excludos.
Exemplo: A Tabela de Clientes possui uma referncia da
Tabela de Atividades Comerciais, ao excluir uma
Atividade Comercial o sistema ir checar se a mesma
no est sendo referenciada em algum ou alguns dos
registros da Tabela de Clientes.

Cascata: Indica que ao excluir um determinado registro


todos os registros relacionados em uma outra tabela
sero excludos tambm. Exemplo: A Tabela de Notas
Fiscais possui uma Tabela relacionada de Itens da Nota
Fiscal, o campo de relacionamento o nmero da Nota
Fiscal, ao excluir uma Nota Fiscal todos os registros da
Tabela de Itens da Nota Fiscal que possurem o mesmo
nmero da Nota Fiscal sero excludos.

15

3.6. Processos Diretos/Inversos


Os processos diretos/inversos permitem a atualizao das
tabelas relacionadas, o processo direto est vinculado incluso
e modificao dos registros e o processo inverso est vinculado
excluso e modificao. Como exemplo podemos citar uma
Tabela de Vendas que dever atualizar a Tabela de Estoque, ao
vender um produto a quantidade do estoque baixada (processo
direto), ao excluir um produto vendido quantidade do estoque
estornada (processo inverso).

3.7. Dicionrio de Dados


O dicionrio de dados um poderoso recurso, pois
possibilita ao projetista compartilhar de uma mesma definio
de Banco de Dados, Tabelas, Campos, ndices e
Relacionamentos. O projetista poder dividir o programa em
vrios projetos, ao definir cada novo projeto o Dicionrio de
Dados poder ser habilitado, o primeiro projeto criado ser o
principal, todas as definies de dados sero armazenados e
compartilhados a partir do mesmo.

16

4. CONTEDO DAS PASTAS


A partir da pasta de instalao do X-Maker, esta pasta
indicada pelo usurio na instalao (a pasta padro
C:\XMaker3), outras pastas so criadas para diversas
finalidades.

C:\XMaker3\Comp : Contm os pacotes de


componentes utilizados nos projetos, os pacotes so
separados por pastas, para a linguagem Delphi voc
encontrar a pasta Delphi, a medida que outras
linguagem forem sendo suportadas outras pastas sero
adicionadas.

C:\XMaker3\Delphi : Contm os arquivos fontes


utilizados na criao de um novo projeto, todos os
arquivos so copiados para pasta do novo projeto, esses
arquivos podem ser personalizados pelo projetista.

C:\XMaker3\Ajuda: Contm os arquivos de ajuda


interna do X-Maker.

C:\XMaker3\Exemplos : Contm os projetos de


exemplos para estudo e exemplificao da utilizao do
X-Maker, os projetos so separados por pastas.

C:\XMaker3\Imagem : Contm uma coletnea de mais


de 700 bitmaps (bmp) e cones (ico), para utilizao nos
projetos.

C:\XMaker3\Projetos : Esta pasta criada para


armazenamento de novos projetos, inicialmente no
possui nenhum arquivo, serve apenas como uma

17

sugesto de pasta de localizao dos projetos, sua


utilizao opcional.

C:\XMaker3\Firebird : Contm o instalador do


Firebird 1.5 e o utilitrio IBConsole, esse utilitrio
utilizado para manipular tabelas criadas pelo Firebird.

18

5. CONFIGURANDO O X-MAKER
Uma configurao padro acompanha o X-Maker na sua
instalao, essa configurao pode ser alterada a qualquer
momento pelo projetista. Atravs do X-Maker possvel
compilar e gerar o executvel do projeto, para isso necessrio
informar a localizao do compilador do Delphi e os parmetros
adicionais, em Configuraes do Menu Principal existe uma
opo para cada verso do Delphi.

A compilao e criao do executvel do projeto esto


totalmente vinculadas configurao correta do compilador e
parmetros adicionais.

19

Compilador: Informe a localizao (path) e o


executvel responsvel pela compilao, utilize o
compilador DCC32.EXE.

Parmetros: Os parmetros adicionais so utilizados


pelo compilador (DCC32.EXE) possvel realizar vrias
configuraes extras de compilao, a opo /U
utilizada para informar a localizao de componentes
extras.

Ajuda: Informe a localizao (path) e o arquivo de ajuda


do Delphi, isso torna possvel visualizao da ajuda do
prprio Delphi dentro do X-Maker.

5.1. Compilando e Executando pelo Delphi


possvel compilar e executar o projeto diretamente no
Delphi, para isso necessrio instalar os componentes utilizados
nos projetos.
Para instalar os componentes do X-Maker no Delphi (5, 6
ou 7) deve-se executar o Delphi e seguir os seguintes passos:

Menu File: Clique na opo Open e localize a pasta de


instalao do X-Maker, acesse a pasta Comp\Delphi
Exemplo: C:\XMaker3\Comp\Delphi .

Componente do FreeReport: Abra o arquivo


correspondente a verso do Delphi.
o FREEREP5.DPK: Free Report para Delphi 5.
o FREEREP6.DPK: Free Report para Delphi 6.
o FREEREP7.DPK: Free Report para Delphi 7.

20

Instalando: Clique no boto Install. Ao fechar a janela


de instalao confirme qualquer mensagem de
confirmao de atualizao.

Componente do X-Maker: Abra o arquivo


correspondente a verso do Delphi.
o XMaker5.DPK: X-Maker para Delphi 5.
o XMaker6.DPK: X-Maker para Delphi 6.
o XMaker7.DPK: X-Maker para Delphi 7.

Instalando: Clique no boto Install. Ao fechar a janela


de instalao confirme qualquer mensagem de
confirmao de atualizao.

Finalizando:
Acesse
o
menu
do
Delphi
Tools\Environment Options selecione a aba Library
no campo Library Path, verifique se existe o seguinte
path C:\XMaker3\Comp\Delphi (C:\XMaker3
Corresponde a pasta de instalao do X-Maker) se no
existir faa a incluso do mesmo.

5.2. Propriedades do Editor


Essa opo fica disponvel quando algum arquivo fonte
fica aberto. possvel personalizar algumas propriedades do
editor.

21

Auto Identificao: Permite que o prprio Editor


identifique o tipo de arquivo est sendo aberto para o
tratamento visual adequado.

Arrastar Selecionado: reas selecionadas no texto


podero ser arrastadas para outros pontos no prprio
texto.

Converte Tabs para Espaos: Ao pressionamento da


tecla TAB a quantidade de espaos ser convertida para
o caractere de espao.

Scroll em Final de Linha: Ao posicionar o cursor na


ltima linha um rolamento realizado automaticamente
para uma melhor visualizao do texto.

22

Tamanho de um TAB: Informe a quantidade de


espaos que ser dado ao pressionamento da tecla TAB.

Barra Visvel: Visualizao da barra lateral no Editor,


nesta barra mostrado o nmero de cada linha no texto.

Mostra N de Linhas: Mostra o nmero de linhas na


barra lateral do editor.

5.3. Campos Predefinidos


O X-Maker traz alguns campos predefinidos em sua
instalao, esses campos so utilizados na definio de Tabelas.
Os campos predefinidos auxiliam e agilizam o processo de
definio.

23

6. CONHECENDO AS ETAPAS DE
DEFINIO DE UM PROJETO
Para o uso correto da ferramenta necessrio conhecer
todas as etapas de definio, o domnio das funcionalidades de
cada objeto disponvel permite uma segurana muito grande
para o projetista. A barra de Assistente do X-Maker contm as
06 etapas (passos) de criao de um projeto, sua utilizao
torna-se totalmente intuitiva e prtica, a Barra de Ferramentas e
o Menu Principal possui os mesmos atalhos da barra de
Assistente.

24

Barra de Ferramentas

Menu Principal

25

6.1. 1 Passo Propriedades do Projeto

Este o primeiro passo para criao de um projeto,


destinado personalizao do projeto.

Data no Formato Sculo: A visualizao dos campos


tipo Data em Entrada de Dados e Relatrios podero ser
vistos no formato dd/mm/aa ou dd/mm/aaaa
(formato sculo), vale lembrar que essa visualizao est

26

subordinada a configurao do Windows em Painel de


Controle Opes Regionais e de Idioma.

Confirma Sada: Uma mensagem de confirmao de


sada ser executada ao finalizar o projeto final, a mesma
poder ser desabilitada pelo projetista. O usurio do
projeto final tambm poder alterar essa opo no menu
Exibir em Ambiente.

Mltiplas Instncias: Permite que o executvel seja


executado mais de uma vez em um mesmo
microcomputador ao mesmo tempo.

Hint Estilo Balo: Exibe as mensagens na forma de


balo. O usurio final poder alterar essa opo no menu
Exibir em Ambiente.

Menu Estilo XP: Exibe o menu no padro do Windows


XP, cores e formato. O usurio final poder alterar essa
opo no menu Exibir em Ambiente.

Controle de Acesso: Habilita o controle de acesso ao


projeto.

Selecionar Empresa: Permite ao usurio final


selecionar a Empresa Usuria na abertura do programa.
O usurio final poder alterar essa opo no menu Exibir
em Ambiente.

Desativar Menu Lateral: O X-Maker gera menu lateral


e superior, somente o lateral poder ser desativado.

Desativar Barra de Ferramentas: Desativa a barra de


ferramentas.

27

Banner Vertical: Exibe um banner lateral em degrade


com o ttulo do projeto.

Senha Inicial: Para projetos que iro utilizar o Controle


de Acesso possvel definir uma senha para acesso
inicial, o usurio padro MASTER.

Linguagem: Define a linguagem e verso a ser utilizada


para compilao.

Banco de Dados: Define o banco de dados a ser


utilizado pelo projeto.

Conexo: Componente de conexo com o banco de


dados.

Compartilhamento Dicionrio de Dados: Habilita a


pasta de localizao do dicionrio do projeto.

Compartilhamento Pasta do Dicionrio: Informe a


pasta de localizao do dicionrio do projeto. Como
padro o X-Maker utiliza a mesma pasta do projeto.

Compartilhamento Servidor do Dicionrio: Informe


o servidor utilizado para armazenamento do dicionrio
do projeto, essa opo somente para a verso
corporativa. Exemplo: Servidor, 195.195.1.1, etc.

Compartilhamento Pasta do Projeto no Servidor:


Informe a pasta de localizao das definies do projeto,
a pasta fsica do servidor.

Compartilhamento Servidor do Projeto: Informe o


servidor utilizado para armazenamento das definies do

28

projeto, essa opo somente para a verso corporativa.


Exemplo: Servidor, 195.195.1.1, etc.

Apresentao (2): Define uma imagem de apresentao


durante a inicializao e abertura do projeto final.

Imagem de Fundo (3): Define uma imagem de fundo


para o projeto final, o usurio poder alterar a imagem
no projeto final atravs do Menu Principal Exibir em
Ambiente.

6.2. 2 Passo Tabelas

Este o segundo passo para a criao de um projeto, as


Tabelas so estruturas formadas por campos, chave primria e,

29

opcionalmente, por chaves secundrias. Outros recursos de


definio so os relacionamentos de integridade referencial,
excluses em cascatas e restritas, processos diretos/inversos e
lanamentos.
Definio dos botes e teclas de atalho:
Salva a definio em edio, uso genrico.
Cancela a definio em edio, uso genrico.
Insere uma nova definio, tecla de atalho: Insert, uso
genrico.
Exclui uma definio, tecla de atalho: Delete, uso
genrico.
Importa estruturas j definidas (tabelas, campos,
ndices, integridades, relacionamentos, processos e
lanamentos) em outras bases de dados ou outros projetos.
Importa definies de campos do projeto em edio.
Possibilita um maior ganho de produtividade, campos j
definidos podero ser reaproveitados.
Edio de campo Calculado, todo campo Calculado
possui uma codificao definida pelo prprio projetista.
Define a chave estrangeira dos campos com o tipo de
edio: Lista Externa (Estrangeira). Personaliza o estilo de
pesquisa e campos a serem visualizados.
Insere campos das tabelas relacionadas, campos de
tabelas relacionadas podero ser visualizados como se
pertencessem a uma mesma tabela. Exemplo: A Tabela de
Vendas possui um relacionamento com a Tabela de Clientes,
e os campos da Tabela Clientes podero ser agregados a
Tabela de Vendas. Isso no uma duplicidade de
informao ou campos, os campos escolhidos da Tabela de

30

Clientes no sero gravados fisicamente na Tabela de


Vendas.
Define a ordem de apresentao dos campos dentro das
opes de Consulta dos formulrios de Entrada de
Dados.
De um duplo clique ou tecle F2 para editar qualquer definio j
existente.
Dica:
Para forar uma gerao dos arquivos fonte das Tabelas,
selecione qualquer Tabela e clique F2 para entra no modo de
edio. Ao fechar a janela de Tabelas & Campos os arquivos
fonte sero regerados.
6.2.1 Definindo Atributos da Tabela

31

Atravs dessa janela possvel definir todos os atributos


de uma Tabela.

Nome: Informe o nome da Tabela, esse nome ser usado


para criao do arquivo fonte (unit) e para criao da
Tabela dentro do Banco de Dados.

Nome Fsico da Tabela: possvel criar vrias


instncias de uma mesma tabela, se o projetista define
uma tabela cujo nome Clientes e depois cria uma
outra tabela com o nome de Clientes_2 e essa tabela
possui o Nome Fsico: Clientes, isso indica que no
ser criada fisicamente uma tabela no banco de dados de
nome Clientes_2, pois ele uma outra instncia da
tabela Clientes. Em resumo Clientes e Clientes_2
so uma mesma tabela.

Ttulo: Informe o ttulo da Tabela, esse ttulo utilizado


para o uso interno do projeto.

Banco de Dados: Essa informao obrigatria, toda


Tabela tem que estar vinculada a um Banco de Dados,
para definir um Banco de Dados clique no boto

Filtragem de Inicializao: Utilize essa opo para


definir uma seleo de registros a serem abertos na
inicializao do projeto, o X-Maker trabalha no conceito
Client/Server, e a abertura de todos os registros no
aconselhvel devido ao trfego de informaes em rede.
Em uma tabela de Vendas o projetista poder definir
uma filtragem dos registros cuja data da venda seja igual
data atual do sistema, o usurio final poder redefinir
ou mesmo limpar esse filtro aps a inicializao e o
sistema ficar mais dinmico.

32

Filtragem Fixa: Possui as mesmas caractersticas da


Filtragem de Inicializao porm o usurio final no
poder altera-la ou mesmo limpa-la. Um exemplo prtico
a utilizao de um sistema Multiempresa em que
cada tabela ir conter um campo de identificao da
Empresa Usuria, a tabela ser filtrada pelo nmero da
Empresa Usuria selecionada no momento da
inicializao.

Ordenao Inicial: Informe o(s) campo(s) de ordem


inicial da tabela, como padro toda tabela ordenada
pela chave primria definida, o projetista poder alterar
este padro.

6.2.2 Definio do Banco de Dados

33

O Banco de Dados ir gerenciar as Tabelas do projeto, sua


utilizao obrigatria.
Salva o banco de dados em edio.
Cancela a edio do banco de dados.
Insere um novo banco de dados, tecla de atalho:
Insert.
Exclui o banco de dados selecionado, tecla de atalho:
Delete.

Conexo Padro: Indica se o Banco de Dados ir


utilizar o banco de dados padro definido em
propriedades do projeto. possvel ter acessos diferentes
em um mesmo projeto, exemplo: Firebird e MySql,
MySql e SyBase, etc.

Bco. Dados: Tipo de Banco de Dados a ser utilizado,


essa opo utilizada quando a Conexo Padro no
est habilitada.

Alias: Esse nome para uso interno da codificao dos


arquivos fontes.

Servidor: o nome fsico do Banco de Dados. O


usurio final do projeto poder alterar o Servidor.

Login de Conexo: Habilita o uso de Login de Conexo


para conectar-se a Base de Dados na abertura do projeto
final. Sugerimos que deixe essa opo desmarcada o
tratamento interno de Controle de Acesso do projeto
bem completo e prtico.

34

Usurio: Informe o usurio (Login) para conexo com a


Base de Dados, cada gerenciador de Banco de Dados
possui um tratamento especfico de acesso.

Senha: Informe a senha (Password) para conexo com a


Base de Dados.

HostName: Informe o nome ou nmero do I.P do


servidor de localizao do Banco de Dados. O usurio
final do projeto poder alterar o HostName.

Parmetros: possvel informar os parmetros


adicionais para conexo, os mesmos dependem do
gerenciador utilizado.

Dica:
possvel definir vrios Bancos de Dados, um Banco de
Dados pode conter um conjunto de Tabelas, a utilizao de mais
de um Banco de Dados pode ser utilizado quando o projeto final
realizar o tratamento de multiempresas. Como exemplo
podemos citar um projeto para gerenciamento de uma Loja de
Confeces, essa loja possui Matriz e Filiais, algumas Tabelas
sero utilizadas de forma compartilhada (Clientes, Fornecedores
e Contas a Pagar / Receber), para obter essa operao ser
necessrio criar um Banco de Dados para armazenar as Tabelas
que sero Compartilhadas e um outro Banco de Dados para as
Tabelas no compartilhadas. Em configuraes da Empresa
Usuria no projeto final possvel definir uma localizao
diferente para cada Banco de Dados criado.

35

6.2.3 Importando Estruturas Externas


possvel importar uma estrutura j existente em outras
Bases de Dados ou projetos, clique no boto

Escolha a estrutura a ser importada, para as estruturas XMaker, dBase e Paradox basta informar a pasta de localizao
das tabelas, para as demais estruturas outras informaes
adicionais sero necessrias, tais como usurio (login) e senha
(password). Clique no boto

para ativar a pesquisa.

36

6.2.4 Campos da Tabela


A definio dos campos precedida de vrios atributos,
cada campo pode armazenar um tipo de dado diferente, uma
definio lgica e coerente respeitando todos os atributos torna a
aplicao final mais apresentvel e com maior entendimento. As
informaes contidas sero utilizadas na criao do Layout dos
Formulrios e Relatrios.

6.2.5 Botes Associados:


Importa definies de campos do projeto em edio.
Possibilita um maior ganho de produtividade, campos j
definidos podero ser reaproveitados.
Edio de campo Calculado, todo campo Calculado
possui uma codificao definida pelo prprio projetista.

37

Define a chave estrangeira dos campos com o tipo de


edio: Lista Externa (Estrangeira). Personaliza o estilo de
pesquisa e campos a serem visualizados.
Insere campos das tabelas relacionadas, campos de
tabelas relacionadas podero ser visualizados como se
pertencessem a uma mesma tabela. Exemplo: A Tabela de
Vendas possui um relacionamento com a Tabela de Clientes,
e os campos da Tabela Clientes podero ser agregados a
Tabela de Vendas. Isso no uma duplicidade de
informao ou campos, os campos escolhidos da Tabela de
Clientes no sero gravados fisicamente na Tabela de
Vendas.
Define a ordem de apresentao dos campos dentro das
opes de Consulta dos formulrios de Entrada de
Dados.

6.2.5.1 Nome
Informe o nome que ser utilizado para tratamento interno
dos arquivos fontes e para criao em disco da Tabela. Utilize o
boto para importar uma estrutura predefinida.

6.2.5.2 Tipo
Informe o tipo de dado para armazenamento na Tabela.
As opes disponveis so:

Alfanumrico: Permite o armazenamento de valores


alfanumricos (letras, algarismos e caracteres especiais)
o seu tamanho mximo fixo. Exemplos: Nome,
Endereo, Cidade, etc.

38

Nmero Inteiro: Permite o armazenamento de valores


do conjunto dos nmeros inteiros (positivos e negativos).
Exemplos:
Cdigos,
Quantidade,
Nmero
de
Dependentes, etc.
Nmero Fracionrio: Permite o armazenamento de
valores do conjunto dos nmeros reais (inteiros ou
fracionrios, positivos ou negativos). O nmero de casas
decimais de um campo fracionrio determinado pela
mscara. Exemplos: Salrio, Total das Vendas, Saldo em
Caixa, etc.
Data: Permite o armazenamento de valores que
representam datas vlidas. O formato da data
determinado em Propriedades do Projeto.
Memo: Permite o armazenamento de valores
alfanumricos de tamanho varivel. Exemplos:
Observaes,
Referncias
Comerciais,
Dados
Adicionais, etc.
Imagem: Permite o armazenamento de imagens.
Exemplos: Foto, Logotipo, etc.

6.2.5.3 Chave
Indica se o campo faz parte da chave primria, uma chave
primria composta por um ou mais campos da Tabela.

6.2.5.4 Tamanho
Informe o tamanho mximo para armazenamento no
campo, no considerar o sinal de negativo (-), o separador de
decimais (,) e outros caracteres separadores utilizados na
mscara.

39

Exemplo: CNPJ alfanumrico de tamanho 14 a mscara


99.999.999/9999-99 os pontos (.) e barra (/) no so
considerados para calcular o tamanho do campo.

6.2.5.5 Autoincremento
Indica que o campo ser incrementado automaticamente
(seqencialmente), somente campos do tipo: Nmero inteiro,
Fracionrio e data podero utilizar essa opo. A seqncia
subordinada a posio do campo na Tabela.

6.2.5.6 Edio
Informe o tipo de edio de controle, o formulrio de
entrada de dados ir utilizar o tipo de edio para inserir os
componentes na tela. Os tipos disponveis so:

Edit (Edio Padro): Caixa de edio de livre


digitao, respeitando as restries impostas pela
mscara.
Exemplo:

Combo Drop (Lista Interna): Caixa de lista de opes


predefinidas, permite ao usurio a escolha do item
atravs de uma lista. Os valores vlidos so informados
no
atributo
Valores
Vlidos.
Exemplo:

Rdio Button (Optativo): Caixa de opes onde todos


os itens disponveis ficam visveis para escolha. Os
valores vlidos so informados no atributo Valores

Vlidos. Exemplo:
Check Box (Conferncia): Caixa optativa de marca e
desmarca. Os valores vlidos so informados no atributo

40

Valores Vlidos, apenas dois valores so informados,


um para marcado e outro para desmarcado. Exemplo:

Lista Externa (Estrangeira): Campo vinculada a uma


tabela relacionada, o estilo de pesquisa poder ser
personalizado (Combo Box ou Formulrio de Pesquisa).

6.2.5.7 Calculado
Indica que o campo do tipo Calculado, o X-Maker
permite que o campo seja virtual (no gravado fisicamente na
Tabela) ou no virtual ( gravado fisicamente na Tabela). Sua
utilizao vlida quando se deseja mostrar um clculo ou
frmula especfica.
Exemplo: Ao definir uma Tabela de Itens da Venda, os
campos Quantidade e Preo Unitrio sero utilizados para
formar o campo de Total Geral, ao definir a Tabela o projetista
no sabe quais sero os valores informados pelo usurio no
momento da venda, para isso utiliza-se uma codificao de
multiplicao entre os campos de Quantidade e Preo Unitrio
criando assim o campo de Total Geral.

6.2.5.8 Mscara
Informe a mscara de apresentao do campo para
formulrios e relatrios. Os caracteres usados como mscara no
so armazenados na Tabela e no ocupam espao adicional.
As mscaras so utilizadas apenas para os campos cujo
tipo de edio seja: Edit (Edio Padro).

41

O X-Maker cria uma lista de opes de mscaras


disponveis conforme o tipo e tamanho do campo. Clique no
boto vinculado ao atributo.

6.2.5.8.1 Campos Numricos e Fracionrios:

9 Se nesta posio o valor for 0 (zero), ser mostrado


o 0 (zero) mesmo que seja zero esquerda.
Z Se nesta posio o valor for 0 (zero), ser mostrado
o 0 (zero) exceto se este for um zero esquerda. Neste
caso, o 0 (zero) substitudo por um espao em
branco.
- O caractere - (negativo) ser mostrado sempre que o
campo for negativo e para valores positivos ser
mostrado um espao em branco.

6.2.5.8.2 Campos Alfanumricos:

9 Indica que nesta posio somente algarismos sero


aceitos entre 0 (zero) e 9 (nove).

A Indica que nesta posio somente letras e espaos


sero aceitos. Os caracteres sero convertidos para
maisculo.

a Indica que nesta posio somente letras e espaos


sero aceitos. Os caracteres sero convertidos para
minsculo.

X Indica que nesta posio qualquer caractere ser


aceito. Os caracteres sero convertidos para maisculo.

x Indica que nesta posio qualquer caractere ser


aceito. Os caracteres sero convertidos para minsculo.

42

* Indica que os prximos caracteres da mscara seguiro


o caractere anterior ao *. usado para simplificar e
agilizar a digitao, como exemplo pode citar um campo
de Nome do Cliente com tamanho de 50, a mscara
utilizada ser o X invs de digitar o X cinqenta vezes,
basta digitar o X*, o X-Maker ir gerar o X cinqenta
vezes no arquivo fonte.

6.2.5.9 Ttulo
Informe o ttulo do campo, esse ttulo utilizado no
formulrio de entrada de dados e relatrios.

6.2.5.10

ndice

Informe o nmero da ordem de apresentao do campo


durante a consulta no formulrio de Entrada de Dados.

6.2.5.11

Invisvel

Informe se o campo no ser visvel durante a consulta no


formulrio de Entrada de Dados.

6.2.5.12

Ajuda

Informe a mensagem de ajuda do campo, essa mensagem


utilizada no formulrio de entrada dados (Hint).

6.2.5.13

Valor Padro

Informe o valor de inicializao do campo, este valor ser


utilizada na incluso de um registro em formulrio de dados.
Um exemplo prtico a definio de Data de Cadastro na

43

Tabela de Clientes, ao incluir um novo Cliente a data de


Cadastro ir trazer como padro data do sistema operacional.
Para campos de Data sugerimos a utilizao do valor
padro DataAtual, e para campos que iro armazenar a hora,
sugerimos a utilizao do valor padro HoraAtual. No existe
um tipo de campo do tipo Hora disponvel no X-Maker, para
isso defina o campo como Alfanumrico de Tamanho 06 e
Mscara 99:99:99.

6.2.5.14

S. Atribui Sempre Atribui

Informe se o campo que possui autoincremento ser


sempre atualizado a cada mudana de campo durante a digitao
e no ir permitir que o usurio altere a seqncia definida.

6.2.5.15

Pr-Validao

Informe uma condio lgica para edio do campo no


formulrio de Entrada de Dados. O campo somente ser
editvel se a condio retornar verdadeiro ou se no existir
nenhuma condio definida.
Exemplo: TabGlobal.DClientes.TIPO_PESSOA.Conteudo = 'F'
Neste exemplo o campo CPF somente ser editvel se o tipo
de pessoa for Fsica. Para deixar o campo sem edio insira o
valor lgico Falso, exemplo: False

6.2.5.16

Ao

Informe a Ao a ser executada aps a Pr-Validao,


esta ao executada quando a Pr-Validao retorna
Falso. Seguindo o exemplo acima do campo CPF o
projetista poder definir se o campo ser No Editvel ou
Invsivel quando o usurio escolher o tipo de pessoa
Jurdica.

44

6.2.5.17

Limpar Campo

Informe se o campo ser limpo quando a Pr-Validao


retornar Falso. Seguindo o exemplo acima do campo CPF o
projetista poder definir se o contedo do campo ser eliminado
quando o usurio escolher o tipo de pessoa Jurdica.

6.2.5.18

Validao

Informe uma funo de validao para o campo. Essa


funo ser vinculada ao evento OnExit (Ao Sair) do campo no
formulrio de entrada de dados, ou seja, quando o cursor mudar
de campo ou o usurio clicar em Salvar. Para utilizar mais de
uma validao em um mesmo campo utilize o ponto-e-vrgula,
exemplo: DATAVALIDA;VALORNULO
As funes de validao so mdulos codificados, que so
armazenados no arquivo fonte Validar.Pas presente na pasta
do projeto.
O projetista poder inserir e modificar as funes de
validaes fornecidas pelo X-Maker. Basta editar o arquivo
fonte Validar.Pas e realizar as modificaes necessrias. As
modificaes realizadas na pasta do projeto pertencem nica e
exclusivamente ao projeto em questo, caso voc queira realizar
uma modificao no Validar.Pas para que todos os projetos
que forem criados a partir dessa personalizao faam uso desse
arquivo fonte, altere na pasta de origem dos arquivos fontes,
C:\XMaker3\Delphi\Validar.Pas.
Lembrando
que
C:\XMaker3 a pasta bsica de instalao, se o X-Maker
estiver instalado em outra pasta considere a pasta correta.
A lista interna das funes disponveis para validao
esto no arquivo C:\XMaker3\Validacao.Lst trata-se de um

45

arquivo texto comum que poder ser editado por qualquer editor
de texto. Personalizaes nesse arquivo so reconhecidas. A
edio desse arquivo justificvel quando o projetista cria novas
funes de validao no arquivo fonte Validar.Pas.
Funes de validao disponveis no Validar.Pas:

function DATAVALIDA(Dado: string): Boolean; //


Valida data no formato ddmmaa ou no formato
ddmmaaaa

function VUF(Dado: string): Boolean;


siglas dos estados

function VCNPJ(Dado: string): Boolean; // Valida o


CNPJ

function VCPF(Dado: string): Boolean; // Valida o


CPF

function VPIS(Dado: String): Boolean; // Valida o PIS

function VHORA(Dado: string): Boolean;


Hora

function VHORAMIN(Dado: string): Boolean;


Valida a Hora e Minutos

function VHORAMINSEG(Dado: string): Boolean; //


Valida a Hora, Minutos e Segundos

function ANOATUAL(Dado: string): Boolean;


Valida o Ano Atual

// Valida as

// Valida a
//

//

46

function MESATUAL(Dado: string): Boolean;


Valida o Ms Atual

function MESANOATUAL(Dado: string): Boolean; //


Valida o Ms a Ano Atual

function MESANOVALIDO(Dado: string): Boolean; //


Valida o Ms e Ano

6.2.5.19

//

Procurar em

Informe se o campo ser pesquisado e validado em outra


Tabela, a mesma dever ser definida em Relacionamentos,
somente tabelas relacionadas podero ser pesquisadas. Campos
com o tipo de edio: Lista Externa (Estrangeira) podero
utilizar esta opo para garantir a consistncia dos dados.

6.2.5.20

Msg. de Erro Mensagem de Erro

Informe uma mensagem de erro a ser apresentada para o


usurio quando os atributos de Validao ou Procurar em
retornarem Falso, o X-Maker gera uma mensagem padro
quando este atributo estiver vazio.

6.2.5.21

Valores Vlidos

uma lista de valores com suas respectivas descries.


Esta lista utilizada para campos cuja Edio seja: Lista Interna
(Combo Drop), Optativo (Rdio Button) ou Conferncia (Check
Box).

47

Os valores contidos em Valor sero gravados na Tabela,


as descries Descrio sero mostradas no formulrio de
entrada de dados e na consulta.
Ao fechar a caixa de Tabela de Valores Vlidos o
atributo
ser
preenchido
da
seguinte
forma
, todos os valores vlidos so separados
por (ponto-e-vrgula).
O tipo de Edio: Conferncia (Check Box) s poder
conter dois valores vlidos. O primeiro valor indica que o
componente estar marcado, o segundo valor indica que o
componente estar desmarcado.
6.2.6 Definio da Chave Estrangeira
Os campos definidos como Lista Externa (Estrangeira)
devero ser associados corretamente,

48

6.2.7 Edio de Campo Calculado


Os campos definidos como Campo Calculado so
codificados conforme a linguagem utilizada no projeto.

A codificao dividida em duas janelas de texto, a 1


janela de texto destinada para as declaraes de variveis
locais, a 2 janela de texto destinada para a codificao que ir
gerar um retorno atravs da varivel Result.
A utilizao da varivel Result obrigatria, e o tipo de
informao a ser atribuda depende do tipo do campo
(alfanumrico, inteiro, fracionrio ou data). A atribuio de um
campo nmero ou data em um campo alfanumrico ou vice-eversa, sem as devidas converses, causa um erro de compilao.

49

Codificar um Campo Calculado exige um conhecimento


bsico de programao.
6.2.8 ndices (Chaves Secundrias)
Os ndices so utilizados para agilizar o processo de
localizao, filtragem e ordenao em formulrios de entrada de
dados e relatrios. Sua utilizao no obrigatria e uma falta
de coerncia torna o acesso base de dados mais lenta, a
quantidade de ndices definidos em uma Tabela interfere na
velocidade de atualizao da mesma.
Para os campos que sero mais utilizados em processos de
localizao, filtragem e ordenao aconselhvel a utilizao de
ndices.
Um ndice composto por um ou mais campos, de forma
crescente (padro) ou decrescente, campos nmero resultam em
ndices mais velozes.
Uma Tabela pode conter vrios ndices, os campos Memo
e Imagem no podero ser utilizados na criao de um ndice.

50

6.2.9 Integridades & Relacionamentos


A integridade de uma base de dados est vinculada a um
relacionamento correto e coerente entre as tabelas, existem
registros que dependem de outros registros para serem criados e
existem registros que no podem ser excludos se estiverem
sendo referenciados em outras tabelas. O X-Maker proporciona
os seguintes relacionamentos:

Relacionamento: Trata-se de um relacionamento


simples, ou seja, no ser utilizado para criao de
integridade referencial. Esse tipo de relacionamento
permite a utilizao de campos Extras, campos de
tabelas relacionadas podero ser visualizados como se
pertencessem a uma mesma tabela. Exemplo: A Tabela
de Vendas possui um relacionamento com a Tabela de
Clientes, e os campos da Tabela Clientes podero ser
agregados a Tabela de Vendas. Isso no uma
duplicidade de informao ou campos, os campos
escolhidos da Tabela de Clientes no sero gravados
fisicamente na Tabela de Vendas.

Restrita: Somente os registros que no estivem sendo


referenciados em outras Tabelas podero ser excludos.
Exemplo: A Tabela de Clientes possui uma referncia da
Tabela de Atividades Comerciais, ao excluir uma
Atividade Comercial o sistema ir checar se a mesma
no est sendo referenciada em algum ou alguns dos
registros da Tabela de Clientes.

Cascata: Indica que ao excluir um determinado registro


todos os registros relacionados em uma outra tabela
sero excludos tambm. Exemplo: A Tabela de Notas
Fiscais possui uma Tabela relacionada de Itens da Nota
Fiscal, o campo de relacionamento o nmero da Nota

51

Fiscal, ao excluir uma Nota Fiscal todos os registros da


Tabela de Itens da Nota Fiscal que possurem o mesmo
nmero da Nota Fiscal sero excludos.

Relacionado
com:
relacionamento.

Campos: Lista dos campos


relacionamento das Tabelas.

Campo(s) de associao: Para relacionar os campos


necessrio selecionar um campo de cada lista em
Campos, depois clicar no boto Inserir
Relacionamento. Os campos devem possuir a mesma
estrutura (tipo e tamanho), no h necessidade de
possurem o mesmo nome. Um relacionamento
composto por um ou mais conjunto de campos.

Informe

Tabela

para

disponveis

para

52

6.2.10 Processos Diretos/Inversos


Os processos diretos/inversos permitem a atualizao das
tabelas relacionadas, o processo direto est vinculado incluso
e modificao dos registros e o processo inverso est vinculado
excluso e modificao. Como exemplo podemos citar uma
Tabela de Vendas que dever atualizar a Tabela de Estoque, ao
vender um produto a quantidade do estoque baixada (processo
direto), ao excluir um produto vendido quantidade do estoque
estornada (processo inverso).

53

Processo Direto.

Processo Inverso.

54

6.2.11 Lanamentos
Os lanamentos podero ser utilizados para gerar um novo
registro em outra tabela aps a incluso.

Neste exemplo um novo registro na tabela de Clientes


inserido aps a incluso de um novo Fornecedor. O Cliente
ir conter o mesmo Cdigo e Nome.

55

6.3. 3 Passo Formulrios

Este o terceiro passo para criao de um projeto, atravs


desta opo o projetista ir definir todos os formulrios a serem
utilizados pelo projeto.
Aps a definio das Tabelas necessrio criar uma
interface para que o usurio do seu projeto final passa entrar

56

com informaes. O X-Maker possui um Editor de Layout


muito prtico e eficiente, a criao de janelas de entrada de
dados nunca foi to fcil e amigvel.
O X-Maker possibilita a criao de 04 tipos de
formulrios, so eles:

Entrada de Dados: o tipo mais usado para definio,


esse tipo de formulrio trabalha no padro MDI ou
Interface de Mltiplos Documentos. um modelo mais
sofisticado, pois possibilita o acesso s outras reas do
programa e a abertura de outros formulrios ao mesmo
tempo. Todas as janelas podero ser minimizadas e
maximizadas.

Entrada de Dados Filho: Esse tipo de formulrio


trabalha no padro Modal, ou seja, outras reas do
programa no podero ser acessadas enquanto o mesmo
estiver aberto. As definies de formulrios (Entrada de
Dados) que iro utilizar um Grid de Relacionamento iro
utilizar uma Entrada de Dados Filho para vincular a
manipulao dos dados da Tabela relacionada. Como
exemplo podemos citar a definio de uma Nota Fiscal
(Entrada de Dados) que ir conter um Grid de
Relacionamento para a chamada dos Itens da Nota Fiscal
(Entrada de Dados Filho).

Avulso MDI: A definio de formulrio avulso


destinada para a manipulao direta no Delphi, ou seja, o
X-Maker ir criar um formulrio vazio para que o
projetista possa manipul-lo atravs do prprio Delphi.
Esse tipo de formulrio trabalha no padro MDI ou
Interface de Mltiplos Documentos.

57

Avulso Normal: Possui os mesmos propsitos do


Avulso MDI, porm o padro utilizado o Modal, ou
seja, outras reas do programa no podero ser acessadas
enquanto o mesmo estiver aberto.

Finalidade de cada boto:


Inclui um novo formulrio.
Exclui um formulrio selecionado.
Edita as propriedades do formulrio.
Layout do formulrio.
Importa formulrio definido em outro projeto.
Confirma a incluso ou modificao de um formulrio.
Cancela a incluso ou modificao de um formulrio.
6.3.1 Finalidade de cada atributo:

Nome: Informe o nome do formulrio, este nome ser


utilizado para criao do arquivo fonte.

Tipo: Informe o tipo de formulrio, os tipos disponveis


so: Entrada de Dados, Entrada de Dados Filho, Avulso
MDI e Avulso Normal.

Ttulo: Informe o ttulo do formulrio, o ttulo ser


atribudo no Caption do formulrio.

Tabela: Informe a Tabela a ser manipulada pelo


formulrio. Os formulrios de Entrada de Dados e
Entrada de Dados Filho so utilizados para a criao de
uma interface de manipulao das Tabelas.

58

Os formulrios so ordenados por nome, utilize a opo


Localizar para um posicionamento mais rpido no formulrio
desejado, esta opo vlida quando o projeto conter um
nmero muito grande de formulrios.
6.3.2 Definindo o Layout do formulrio
O X-Maker possui um poderoso e prtico editor de layout
de formulrios. Com o recurso exclusivo de auto formatao o
projetista ter um ganho de produtividade muito grande, outro
ponto importante a manipulao do arquivo fonte gerado em
uma mesma tela. Toda codificao gerada automaticamente a
cada manipulao dos componentes disponveis.

Um prottipo do formulrio criado para facilitar a


referncia visual dos componentes, a janela Object Inspector
permite a manipulao direta dos componentes, criao de

59

pginas e/ou acesso aos eventos disponveis. O arquivo fonte


poder ser editado atravs do boto Editar arquivo fonte, para
que o projetista possa interagir diretamente na codificao.
O X-Maker trabalha diretamente no arquivo fonte, os
arquivos .Pas e .Dfm do Delphi, ou seja, toda leitura e
gravao do layout do formulrio e realizado diretamente nesses
arquivos. Esse recurso avanado permitiu uma grande interao
como o Delphi, pois qualquer manipulao do formulrio
atravs do Delphi preservada no X-Maker. Algumas reas so
restritas, essas reas sero comentadas no tpico de Estrutura
do Arquivo Fonte, e a descaracterizao do layout no poder
ser feita pelo projetista. Para formulrios totalmente
personalizados sugerimos a utilizao de formulrios do tipo:
Avulso MDI ou Avulso Normal.

60

6.3.2.1 Janela Object Inspector

Coletnea de componentes extras


disponveis para insero nas pginas.
Estes componentes no so utilizados
para manipulao dos campos da
Tabela.

Coletnea de componentes para


manipulao dos campos da Tabela.
Salva o layout em definio.
Define o estilo de abertura do
formulrio.
Grid de relacionamento, tabelas de
relacionamento excluso em cascata
podero ser manipuladas em um
mesmo formulrio.
Insere campo(s) da tabela no
formulrio.
Recurso de Auto formatao das
pginas, todos os campos selecionados
sero posicionados corretamente nas
pginas.
Edita o arquivo fonte do
formulrio, o projetista poder interagir
com o fonte gerado.

61

Define o TabOrder seqncia de


digitao dos campos pelo usurio
final.
Configurao das pginas do
formulrio.
rea de manipulao dos objetos.
O X-Maker permite a
criao de at 11 pginas
por formulrio, ao
utilizar o recurso de
auto formatao novas
pginas podero ser
criadas automaticamente
dependendo da
quantidade de campos
da Tabela.

Dica:
Para alternar entre a janelas (Propriedades e Prottipo) utilize a
tecla F11.

62

6.3.2.2 Incluso de Grid de Relacionamento


Em formulrios de entrada de dados possvel a utilizao
de um Grid de Relacionamento, para operaes do tipo MestreDetalhe. Exemplo: Notas Fiscais e Itens da Notas, Vendas e
Itens da Venda, Oramentos e Itens do Oramento, etc.

Neste exemplo de definio de um formulrio de vendas


possvel identificar sua real utilizao. O Grid far o acesso a
Tabela de Itens da Venda, o campo de ligao ser o N da
Venda que um campo em comum entre as Tabelas.

63

Para inserir um Grid de Relacionamento clique no boto


na janela Object Inspector, depois clique em qual rea da
tela o componente ser inserido.
Somente tabelas definidas com o relacionamento
Excluso em Cascata podero ser utilizadas. Faa a definio
em Assistente -> Tabelas.

Edio direta: Informe se o Grid ter uma edio direta,


ou seja, no ser necessrio utilizar um formulrio
filho para manipulao dos dados.

Formulrio: A manipulao dos registros poder ser


realizada atravs de um formulrio filho. Antes de
inserir um Grid de Relacionamento em um formulrio de
Entrada de Dados faa a definio de um formulrio de
Entrada de Dados Filho da Tabela relacionada.

64

6.3.2.3 Movimentar e Redimensionar Componentes


da Tela
Os componentes inseridos em Pginas da janela de
prottipo podero movimentados, arrastados, copiados,
recortados, colados, excludos e redimensionados. possvel
mover um ou vrios componentes de uma pgina para outra,
utilize o recurso de recortar (Ctrl+X).

Mouse: Utilize o mouse para arrastar, redimensionar e


selecionar os componentes.

Teclado: Selecione os componentes pelo mouse e use o


teclado para movimentar ou redimensionar os
componentes.
o Ctrl + Setas: Movimenta os componentes
selecionados em uma posio.
o Ctrl + Shift + Setas: Movimentam os
componentes selecionados em oito posies.
o Shift + Setas: Redimensiona os componentes
selecionados.
o Del: Exclui os componentes selecionados.
o Ctrl + C: Copia os componentes selecionados.
o Ctrl + V: Cola os componentes selecionados.
o Ctrl + X: Recorta os componentes selecionados.

65

Propriedades dos Objetos


Clique com o boto da direita do mouse para obter uma lista
de propriedades extra de configurao.

6.3.2.4 Finalidade do boto Tabelas no formulrio

Este boto utilizado para criao de um menu de atalhos


para acesso a outros formulrios do projeto, normalmente so
formulrios que possuem algum tipo de vinculo com o
formulrio em questo. Como exemplo podemos citar um
formulrio de Cadastro de Produtos do Estoque, ao cadastrar um
produto so exigidas algumas informaes do tipo: Grupo,
Famlia, Fornecedor e Unidade, e existe uma Tabela e
formulrio para cada uma dessas informaes. Para criar um
acesso mais rpido e esses formulrios o projetista poder
utilizar o boto Tabelas.

66

Inicialmente este boto possui a propriedade Visible


desabilitada, para habilitar clique no boto
e escolha a
opo Rodap Manuteno ou Rodap Consulta.

Clique no boto Tabelas e habilite a propriedade Visible


na janela Object Inspector.

Faa a edio do evento BtnRelac_1Click, clique em


OnClick na janela Object Inspector.

67

Insira a codificao entre os blocos {09} e {99}, utilize o


mtodo AddMenuItem para atribuir um novo item ao menu da
tabelas relacionadas.

68

Exemplo:
AddMenuItem(PopRelacionados, 'Atividades',
'mnuAtividades', True , 0, 6001);

Parmetros do Mtodo AddMenuItem:


PopRelacionados = Objeto PopMenu a ser utilizado.
Atividades = Ttulo a ser apresentado no menu.
mnuAtividades = Nome interno do componente, no poder
ser utilizado nome de outro componente utilizado no formulrio.
Como padro o projetista poder utilizar a sigla mnu + o nome
do formulrio.
True = Habilitado e False = Desabilitado.
0 = Nmero do cone de imagem de apresentao.
6001 = Nmero de seqncia de identificao utilize a seqncia
6001, 6002, 6003, etc. para os demais formulrios.
Salve a codificao do evento e faa a edio do arquivo fonte,
clique no boto: Editar arquivo fonte.
V
para
o
bloco
PopRelacionadosClick.

de

codificao

do

evento

69

Insira a codificao entre os blocos {10} e {99}, utilize o


boto form na barra de ferramentas do Mini Editor para
inserir a codificao de chamada do formulrio desejado.
Exemplo:
{10-Incio do Bloco Modular. Modificaes no
sero preservadas}
if MenuItem.Tag = 6001 then
begin
FormAtividades :=
TFormAtividades.Create(Application);
Try
FormAtividades.ShowModal;
Finally
FormAtividades.Free;
end;
end
{99-Final do Bloco Modular. Modificaes no
sero preservadas}

70

necessrio referenciar as units dos formulrios utilizados


na clusula uses.

O projetista poder utilizar o boto Tabelas para outras


finalidades ou at mesmo remove-lo, fica a critrio do projetista.
6.3.3 Janela do Mini Editor
O projetista tem a sua disposio o arquivo fonte do
formulrio que est sendo definido, o arquivo atualizado a
cada mudana no layout.

71

Vejamos as funes da barra de ferramentas do editor:


Modo interativo de criao de expresses a serem inseridas
no arquivo fonte.
Insere campo de qualquer tabela definida no projeto.
Sintaxe das principais estruturas de codificao do Delphi.
Codificao correta de chamada de formulrios.
Permite recortar uma rea selecionada (Ctrl+X).
Permite copiar uma rea selecionada (Ctrl+C).

72

Permite colar uma rea copiada ou recortada (Ctrl+V).


Localiza uma expresso no arquivo (Ctrl+F).
Procura uma prxima expresso encontrada (Ctrl+L).
Procura e substitui uma expresso no arquivo (Ctrl+R).
Posicione o cursor em uma linha desejada (Alt+G).
Cancela a edio.
Confirma as alteraes.

6.3.3.1 Estrutura do Arquivo Fonte


Para uma melhor utilizao e aproveitamento dos arquivos
fontes gerados necessrio que o projetista conhea melhor a
estrutura utilizada.
A estrutura segue os padres estabelecidos pelo Delphi,
vrios eventos foram criados para atender as exigncias de
tratamento das Tabelas.
Os arquivos fontes possuem vrios blocos de utilizao
interna do X-Maker, esses blocos no sero preservados em
eventuais personalizaes atravs do Delphi ou algum outro
meio.
Os blocos so identificados como linhas de comentrios,
iniciados em {XX-Incio do Bloco Modular. Modificaes no
sero preservadas} e finalizados em {99-Final do Bloco
Modular. Modificaes no sero preservadas}. XX
representa o nmero do bloco, um arquivo fonte pode ter vrios
blocos (01, 02, 03, etc).

73

Os blocos so utilizados de forma estratgica a fim de no


comprometer a liberdade de codificao do projetista.
Grande parte das funes e procedimentos utilizados em
um formulrio de entrada de dados e entrada dados filhos esto
codificados na unit RotinaEd.Pas.
6.3.4 Principais eventos

6.3.4.1 Inicializao (FormShow)


Este evento utilizado para fazer a ligao entre os
componentes e os campos da Tabela, algumas configuraes
visuais so tratadas tambm neste evento. O evento chamando
quando o formulrio executado pela primeira vez, quando o
formulrio fechado e executado novamente conta-se como

74

sendo a primeira vez. O projetista dever respeitar os blocos 05


e 06.

6.3.4.2 Abertura de Tabelas (AbreTabelas)


Todas as Tabelas do projeto so abertas na inicializao do
projeto final, o projetista no ir encontrar neste evento as
codificaes de abertura da Tabela manipulada pelo formulrio.
Este evento foi mantido visando uma possvel necessidade do
usurio em realizar uma abertura de Tabela de forma Local no
formulrio.

6.3.4.3 Confirma Incluso (ConfirmaInclusao)


Cada vez que o usurio do projeto final pedir uma incluso
de registro, o evento ConfirmaInclusao ser chamado, este
evento retorna uma expresso lgica permitindo ou no a
incluso. Como padro o evento retorna sempre verdadeiro, o
projetista poder criar uma condio para manipular o retorno.

6.3.4.4 Confirma Modificao


(ConfirmaModificacao)
Cada vez que o usurio do projeto final pedir uma
modificao do registro, o evento ConfirmaModificacao ser
chamado, este evento retorna uma expresso lgica permitindo
ou no a modificao. Como padro o evento retorna sempre
verdadeiro, o projetista poder criar uma condio para
manipular o retorno.

6.3.4.5 Confirma Excluso (ConfirmaExclusao)


Cada vez que o usurio do projeto final pedir uma
excluso de registro, o evento ConfirmaExclusao ser
chamado, este evento retorna uma expresso lgica permitindo

75

ou no a excluso. Como padro o evento retorna sempre


verdadeiro, o projetista poder criar uma condio para
manipular o retorno.

6.3.4.6 Confirma Gravao (ConfirmaGravacao)


Cada vez que o usurio do projeto final pedir para salvar
um registro, o evento ConfirmaGravacao ser chamado, este
evento retorna uma expresso lgica permitindo ou no que o
registro seja salvo. Como padro o evento retorna sempre
verdadeiro, o projetista poder criar uma condio para
manipular o retorno.

6.3.4.7 Ao Entrar Manuteno (TelaManutencao)


Toda vez que a tela de manuteno do formulrio for
ativada o evento TelaManutencao ser chamado, ao navegar
entre os registros com a tela de manuteno ativa o evento ser
chamado tambm. Esse evento muito til para realizar
alteraes de propriedades visuais em tempo de execuo.
Exemplo: um Cadastro de Clientes, aonde o tipo de pessoa
(Fsica ou Jurdica) determina o preenchimento de certos
campos, o projetista ter que codificar essas particularidades
exigidas. Os campos a serem habilitados ou desabilitados sero
codificados nesse evento.

6.3.4.8 Ao Entrar Consulta (TelaConsulta)


Toda vez que a tela de consulta do formulrio for ativada o
evento TelaConsulta ser chamado.

76

6.3.4.9 Atribui Valores (AtribuiValoresPadrao)


Quando o usurio do projeto final pedir uma incluso de
registro o evento AtribuiValoresPadrao ser chamado, o XMaker utilize este evento para atribuir a funo de autoincremento de um campo. O projetista poder utilizar este
evento para atribuir valores aos campos da Tabela.

6.3.4.10

Antes de Salvar (AntesdeSalvar)

Este evento ser chamado antes de salvar um registro


atravs do boto Salvar do formulrio. O projetista poder
realizar codificaes de atribuio de campos ou para quaisquer
outros fins.

6.3.4.11

Antes de Incluir (AntesdeIncluir)

Este evento ser chamado antes de entrar no modo de


incluso de registro, atravs do boto Incluir da barra de
ferramentas.

6.3.4.12

Antes de Modificar (AntesdeModificar)

Este evento ser chamado antes de entrar no modo de


modificao de registro, atravs do boto Modificar da barra
de ferramentas.

6.3.4.13

Antes de Excluir (AntesdeExcluir)

Este evento ser chamado antes de entrar no modo de


excluso de registro, atravs do boto Excluir da barra de
ferramentas.

77

6.3.4.14

Depois de Incluir (DepoisdeIncluir)

Este evento ser chamado depois da incluso de um


registro, atravs do boto Incluir da barra de ferramentas.

6.3.4.15

Depois de Modificar (DepoisdeModificar)

Este evento ser chamado depois da modificao de um


registro, atravs do boto Modificar da barra de ferramentas.

6.3.4.16

Depois de Excluir (DepoisdeExcluir)

Este evento ser chamado depois da excluso de um


registro, atravs do boto Excluir da barra de ferramentas.

6.3.4.17

Finalizao (FormClose)

Este evento ser chamado quando o usurio do projeto


final fechar o formulrio.

78

6.4. 4 Passo Relatrios, Etiquetas e


Grficos.

Este o quarto passo para criao de um projeto, atravs


desta opo o projetista ir definir todos os relatrios, etiquetas e
grficos a serem utilizados pelo projeto.

79

Em um projeto a extrao de resultados realizada atravs


dessa opo, possvel criar vrios tipos de relatrios, o
projetista ter toda liberdade de criao atravs do Editor de
Layout.

Relatrios: O projetista poder definir vrios tipos de


relatrios para diversas finalidades, com exemplo
podemos citar a criao de relatrios de Tabela de
Preos, Lista de Clientes, Contas a Receber, Contas a
Pagar, Fluxo de Caixa, etc.

Etiquetas: Esse tipo de definio muito utilizado na


criao de Mala Direta ou etiquetas para os produtos do
estoque com a utilizao do cdigo de barras.

Grficos: So utilizados para uma visualizao mais


sinttica dos dados, existe uma variedade de modelos
disponveis.

No projeto final o usurio sempre ir visualizar os


relatrios antes de imprimir, isso garante ou usurio optar entre
apenas visualizar na tela ou enviar para impressora. Outro
recurso muito til e a exportao dos relatrios para PDF, BMP,
JPG, EMF, WMF, TXT, HTM, CSV e RTF.
A seguir iremos usar apenas o termo Relatrio, pois na
realidade uma Etiqueta ou Grfico gerado como Relatrio pelo
X-Maker.
6.4.1 Finalidade de cada boto:

Inclui um novo relatrio.

80

Exclui um relatrio selecionado.


Edita as propriedades do relatrio.
Layout do relatrio.
Importa relatrio definido em outro projeto.
Confirma a incluso ou modificao de um relatrio.
Cancela a incluso ou modificao de um relatrio.
6.4.2 Finalidade de cada atributo:

Nome: Informe o nome do relatrio, esse nome ser


utilizado para criao do arquivo fonte.

Tipo: Informe o tipo de relatrio, os tipos disponveis


so: Relatrio, Etiqueta e Grfico.

Ttulo: Informe o ttulo do relatrio, o ttulo ser


atribudo no Caption do formulrio.

Tabela: Informe a Tabela a ser manipulada pelo


relatrio.

Os relatrios so ordenados por nome, utilize a opo


Localizar para um posicionamento mais rpido no relatrio
desejado, essa opo vlida quando o projeto conter um
nmero muito grande de relatrios.
Dica:
O X-Maker no predetermina os nomes a serem utilizados
em formulrios e relatrios, o projetista tem a liberdade de
escolha, porm sugerimos a utilizao de nomes tais como:
Rel_001, Rel_002, Rel_003, etc. Eti_001, Eti_002, Eti_003, etc.

81

Gra_001, Gra_002, Gra_003, etc., como em todo projeto os


relatrios so maioria isso torn-se uma boa escolha.
6.4.3 Definindo o Relatrio
A definio do relatrio composta pelos campos a serem
listados, Relacionamentos, Filtragem, Ordenao e Layout.

possvel definir uma filtragem (seleo) de registros,


quando um relatrio no possui nenhuma filtragem todos os

82

registros so listados de forma incondicional. A filtragem pode


ser fixa, predeterminada pelo projetista, ou informada pelo
usurio do projeto final. A escolha da filtragem depende do tipo
de resultado a ser extrado.

Na opo Operao est contida os operadores lgicos


disponveis, sua utilizao tem que ser coerente, pois os
resultados extrados dependem da sua boa utilizao.

= Igual: Indica que apenas os registros cujo campo


selecionado, forem iguais ao valor fixo ou varivel sero
listados. Exemplo: Nome = Maria somente os registros
que iniciarem com o nome Maria sero listados.

<> Diferente: Indica que apenas os registros cujo campo


selecionado, forem diferentes do valor fixo ou varivel

83

sero listados. Exemplo: Nome <> Maria somente os


registros que forem diferentes de Maria sero listados.

< Menor que: Indica que apenas os registros cujo campo


selecionado, forem menores que o valor fixo ou varivel
sero listados. Exemplo: Nome < Maria somente os
registros que forem menores que Maria sero listados.
Para campos Alfanumricos, conforme exemplo, a
comparao alfabtica. Os campos numricos e datas
so comparados por valores.

<= Menor ou Igual: Indica que apenas os registros cujo


campo selecionado, forem menores ou iguais ao valor
fixo ou varivel sero listados. Exemplo: Nome <=
Maria somente os registros que forem menores ou
iguais a Maria sero listados.

> Maior que: Indica que apenas os registros cujo campo


selecionado, forem maiores que o valor fixo ou varivel
sero listados. Exemplo: Nome > Maria somente os
registros que forem maiores que Maria sero listados.

>= Maior ou Igual: Indica que apenas os registros cujo


campo selecionado, forem maiores ou iguais ao valor
fixo ou varivel sero listados. Exemplo: Nome >=
Maria somente os registros que forem maiores ou
iguais a Maria sero listados.

% Contm: Indica que apenas os registros cujo campo


selecionado, conterem o valor fixo ou varivel sero
listados. Exemplo: Nome LIKE %SOUSA% somente
os registros que conterem a expresso SOUSA sero
listados. A procura independe da posio da expresso
no campo, esse recurso muito utilizado para
localizao de sobrenomes em uma Tabela de Clientes.

84

? Vazio: Indica que apenas os registros cujo campo


selecionado, forem vazios sero listados. Exemplo:
Nome IS NULL somente os registros que no possurem
Nomes cadastrados sero listados.

A opo Composio Lgica utilizada quando mais de uma


expresso de filtro for utilizado.

E: Atribui o operador AND entre as expresses de


filtro. Exemplo: Nome = Maria AND Cidade =
UBERABA somente os registros que iniciarem com o
nome Maria e forem da Cidade de UBERABA sero
listados.

OU: Atribui o operador OR entre as expresses de


filtro. Exemplo Nome = Maria OU Nome = Jose
somente os registros que iniciarem com o nome
Mariaou o nome Jose sero listados.

Todos os componentes de edio utilizados em Dilogo


podero ser utilizados na expresso de filtragem, possibilitando
assim que o prprio usurio defina os valores de seleo.
Dica:
muito comum a confuso do uso das Composies
Lgicas, um exemplo clssico seria a criao de um relatrio
para listar os salrios iguais a R$ 1.000,00 e R$ 1.200,00. Se
projetista definir o filtro como: SALARIO = 1000 E SALARIO
= 1200 nenhum registro seria listado, pois o campo SALARIO
no poderia valer R$ 1.000,00 e R$ 1.200,00 ao mesmo tempo,
em um mesmo registro, o certo seria: SALARIO = 1000 OU
SALARIO = 1200.

85

A ordenao dos registros a serem listados definida pelo


projetista, a chave de ordenao poder ser composta ou no.
Chaves compostas indicam que mais de um campo sero
utilizados na formao do ndice.

6.4.4 Layout do Relatrio


A definio do layout do relatrio realizada atravs de
uma interface visual, o componente utilizado o FreeReport
(http://www.fast-report.com/en/) trata-se de um poderoso e
prtico componente de gerao de relatrios. Outros
componentes sero implementados em prximas verses do XMaker, proporcionar o mximo de opes e versatilidades para o
projetista o nosso maior objetivo.

86

O editor possui uma estrutura predefinida comporta por:


Cabealho de Pgina, Cabealho de Coluna, Dados Mestre,
Sumrio do Relatrio e Rodap de Pgina.
Na barra de ferramentas o boto
atribuio dos campos no relatrio.

responsvel pela

87

Selecione os campos a serem atribudos e determine o seu


posicionamento em Ordem. A opo Inclua cabealhos traz
os ttulos definidos em Tabelas para a coluna de cabealho, a
opo Incluir banda no necessria, pois como padro o
Layout utilizar uma faixa predefinida, a seguir iremos explicar
a utilizao das bandas.

6.4.4.1 Bandas
As Bandas so reas especficas que podero conter
campos ou objetos a serem impressos. Cada banda responsvel
por um recurso diferente no relatrio, temos como exemplo as
reas de cabealho (topo do relatrio), rodap, cabealho de
colunas, registros da tabela, grupo de quebra, etc.
Utilize o boto
Banda.

na barra lateral para inserir uma nova

88

Exemplo de Bandas.
Barra de Ferramentas Lateral
Insere um campo/texto em uma Banda, o
campo/texto poder conter um campo da Tabela, texto
ou frmula de clculo.
Este boto utilizado para inserir uma nova banda
no relatrio
Insere uma imagem (bmp, ico, wmf ou emf) em
uma Banda, normalmente utilizado para mostrar um
Logotipo no relatrio.
Insere uma nova pgina de relatrio, sua utilizao
justificvel para relatrios mais complexos com
muitos objetos de definio.
Insere um desenho de uma linha, possibilita a
criao de linhas.
Insere uma caixa de texto com sombras, cria um
efeito de fundo no relatrio.
Insere um grfico, seis modelos de grficos esto

89

disponveis.
Insere um cdigo de barras, muito utilizado para
impresso de etiquetas de produtos.
Insere um objeto Check Box.
Insere um objeto de desenho com vrios formatos.
Insere uma caixa de texto.
Insere um objeto de compartilhamento com outros
aplicativos, tais como o Word, Excel, Corel Draw e
outros.
Clculos em Relatrios
possvel a criao de clculos entre campos em relatrios, ao
inserir um campo/texto
uma janela de edio ser
apresentada, na caixa de texto possvel realizar codificaes.

90

Todo campo da Tabela referenciado como


[DVendas."PRO_CODIGO"] o DVendas representa o nome
da tabela. O nome PRO_CODIGO corresponde ao campo da
Tabela, sendo utilizado assim o nome definido em Tabelas.
Os operadores matemticos podero ser utilizados para
clculos entre campos ou valores fixos.
Exemplo
1:
[[DProdutos."PRO_VENDA"]
*
[DProdutos."PRO_QUANTIDADE"]]
Exemplo 2: [[DProdutos."PRO_VENDA"] * 0.5]
A utilizao de colchetes [ ] obrigatrio, pois indica
que o seu contedo representa um campo da Tabela ou varivel.
Os clculos tero que utilizar os colchetes [ ] tambm,

91

conforme exemplo. A no utilizao dos colchetes [ ] indica


que o seu contedo ser impresso como texto.
Alguns comandos do Delphi podero ser utilizados, tais
como: ifthenelse, whiledo, repeatuntil. A utilizao
de blocos begin..end; tambm so aceitos.
Algumas funes internas podero ser utilizadas, so elas:

Sum:
Totaliza
campos
numricos,
sintaxe:
Sum(<field>),
exemplo:
[SUM([DProdutos."PRO_CUSTO"] )]
Count: Quantifica a quantidade de registros listados,
sintaxe: Count(<dataset>), exemplo: [Count(DProdutos)]
Str: Converte nmero em string, sintaxe: Str(<value>)
Copy: Retorna uma parte de uma string, sintaxe:
Copy(<string>, <from>, <count>)
If: Retorna uma string conforme condio, uma
condio lgica ir determinar o retorno de uma String1
ou String2, sintaxe: If(<expression>, <string1>,
<string2>)
FormatFloat: Converte um nmero em uma string
formatada, sintaxe FormatFloat(<formatstr>, <value>), o
<formatstr> segue os padres do Delphi de formatao.
FormatDateTime: Converte uma data/hora em uma
string formatada, sintaxe: FormatDateTime(<formatstr>,
<value>)
StrToDate: Converte uma string em data, sintaxe:
StrToDate(<value>)
StrToTime: Converte uma string em hora, sintaxe:
StrToTime(<value>)
UpperCase: Converte os caracteres de uma string em
caracteres maisculos, sintaxe: UpperCase(<value>)

92

LowerCase: Converte os caracteres de uma string em


caracteres minsculos, sintaxe: LowerCase(<value>)
Int: Retorna a parte inteira de um nmero, sintaxe:
Int(<value>)
Frac: Retorna a parte fracionria de um nmero, sintaxe:
Frac(<value>)
Round:
Arredonda
um
nmero,
sintaxe:
Round(<value>)
Mod: Retorna o resto da diviso entre dois nmeros,
sintaxe: value1 Mod value2
Input: Mostra uma caixa de texto, onde o usurio poder
digitar
qualquer
informao
extra,
sintaxe:
Input(<caption> [,<default>])
MascValor: Formata um nmero inteiro ou fracionrio e
retorna
em
String,
sintaxe:
MascValor(<valor>,<mscara>),
exemplo:
[MascValor([DProdutos."PRO_CUSTO"],
ZZZ.ZZ9,99)]
ConstStr: Retorna uma String replicada N vezes,
sintaxe:
ConstStr(<string>,<qtde>),
exemplo:
[ConstStr(-,80)]
RetiraBrancos: Retira os espaos em branco de uma
String, sintaxe: RetiraBrancos(<string>), exemplo:
[RetiraBrancos([Dprodutos.PRO_DESCRICAO])]
PadR: Alinha uma String esquerda, dentro de um
tamanho
determinado,
sintaxe:
PadR(<string>,<tamanho>),
exemplo:
[PadR([Dprodutos.PRO_DESCRICAO], 80)]
PadL: Alinha uma String direita, dentro de um
tamanho
determinado,
sintaxe:
PadL(<string>,<tamanho>),
exemplo:
[PadL([Dprodutos.PRO_DESCRICAO], 80)]
Center: Centraliza uma String, dentro de um tamanho
determinado, sintaxe: Center(<string>,<tamanho>),

93

exemplo:
[Center([Dprodutos.PRO_DESCRICAO],
80)]
Space: Cria uma String em branco de tamanho
determinado, sintaxe: Space(<tamanho>), exemplo:
[Space(80)]
PorExtenso: Retorna um nmero por extenso, em
portugus, sintaxe: PorExtenso(<valor>), exemplo:
[PorExtenso([Dproduto.PRO_PRECO])]
StrZero: Converte um nmero inteiro em String com
zeros

esquerda,
sintaxe:
StrZero(<nmero>,<tamanho>),
exemplo:
[StrZero([Dproduto.PRO_CODIGO], 05)]
FormatMaskText: Formata uma String conforme a
mscara
informada,
sintaxe:
FormatMaskText(<mscara>,
<string>),
exemplo:
[FormatMaskText(XXXX,
[Dprodutos.PRO_UNIDADE])]
MascTexto: Formata uma String conforme a mscara
informada, sintaxe: MascTexto(<string>, <mscara>),
exemplo: [MascTexto([DClientes."CEP"], '99999-999')]
MascData: Formata uma data conforme a mscara
informada, sintaxe: MascData(<data>, <mscara>),
exemplo:
[MascData([DVendas."VEN_DATA"],
'dd/mm/yy')]
CalcC_0: Arredonda uma expresso de clculo e retorna
sem casas decimais, sintaxe: CalcC_0(<valor 1>, <valor
2>, <operador>), exemplo: [CalcC_0(99.56, 85.56, +)]
CalcC_1: Arredonda uma expresso de clculo e retorna
com uma casa decimal, sintaxe: CalcC_1(<valor 1>,
<valor 2>, <operador>, exemplo: [CalcC_1(99.56,
85.56, -)]
CalcC_2: Arredonda uma expresso de clculo e retorna
com duas casas decimais, sintaxe: CalcC_2(<valor 1>,

94

<valor 2>, <operador>, exemplo: [CalcC_2(99.56,


85.56, *)]
CalcC_3: Arredonda uma expresso de clculo e retorna
com trs casas decimais, sintaxe: CalcC_3(<valor 1>,
<valor 2>, <operador>, exemplo: [CalcC_3(99.56,
85.56, /)]
CalcC_4: Arredonda uma expresso de clculo e retorna
com quatro casas decimais, sintaxe: CalcC_4(<valor 1>,
<valor 2>, <operador>, exemplo: [CalcC_4(99.56,
85.56, +)]
CalcC_5: Arredonda uma expresso de clculo e retorna
com cinco casas decimais, sintaxe: CalcC_5(<valor 1>,
<valor 2>, <operador>, exemplo: [CalcC_5(99.56,
85.56, -)]

Dica:
A pasta C:\XMaker3\Comp\Delphi, contem o arquivo de
ajuda do FreeReport, o nome do arquivo FRUSER.HLP.
6.4.5 Configurando Etiquetas
A configurao da quantidade de colunas por etiqueta
realizada atravs do Menu Arquivo em Opes da Pgina.

95

Defina o nmero de colunas da etiqueta em Colunas.


6.4.6 Configurando o Grfico
De um duplo clique no objeto de grfico do relatrio.

96

Todas configuraes esto disponveis nesta janela, em


Dados na opo Nome do objeto informe os objetos a serem
totalizados e visualizados no grfico.

Memo7: Neste exemplo representa o cdigo do produto.


Memo11: Representa o total das vendas.

Para obter no nome do objeto clique no objeto desejado e


veja na opo Name do Object Inspector.

97

6.5. 5 Passo Menu

Este o quinto passo para criao de um projeto, atravs


desta opo o projetista ir definir o menu lateral, superior e
barra de ferramentas para acesso aos formulrios e relatrios do
projeto.

98

As opes disponveis para definio so:

Sub-Menu: Insere um grupo de separao das opes,


sua utilizao torna o projeto mais organizado e
apresentvel.

Formulrios e Relatrios: Insere um formulrio ou


relatrio definido no projeto.

Rotina Avulsa: Insere um bloco de codificao livre, ou


seja, o projetista poder utilizar uma codificao
especfica.

Programa Externo (EXE): Insere a chamada de um


programa externo, exemplo: Word, Excel, etc.

Barra de Ferramentas
Caixa de opes
Formulrios, Relatrios, etc.).

(Sub-Menu,

Apaga uma opo selecionada, ao


apagar um Sub-Menu todas opes
subordinadas sero apagadas tambm.
Edita uma opo selecionada.
Redefine o Menu Superior & Barra de
Ferramentas, o projetista poder inserir novas
opes ou mover as opes de acesso atravs
do prprio Delphi, sendo necessrio uma
atualizao de leitura para atualizao do
prprio X-Maker.

99

Rotina Avulsa
Ao inserir uma rotina avulsa o boto
o projetista.

ficar disponvel para

O projetista poder realizar uma codificao especifica


dentro do bloco predeterminado, a codificao segue os padres
estabelecidos pela linguagem Delphi.

100

6.6. 6 Passo Compilao

Este o sexto e ltimo passo para criao de um projeto,


todos os arquivos fontes estaro gerados e configurados para
criao do arquivo executvel.
A compilao do projeto realizada via comandos do MSDOS, durante a compilao o X-Maker estar verificando
qualquer tipo de erro nos arquivos fontes gerados que empeam
a criao do executvel.
Em caso de erro em algum arquivo fonte, o Editor de texto
ser executado e o arquivo que gerou o erro ser aberto, o cursor
estar posicionado na linha indicada pelo compilador com uma
tarja vermelha.

101

A opo
todos os mdulos do projeto

fora a recompilao de

Para executar o projeto automaticamente aps a


compilao, marque a opo
.
Outros fatores podero atrapalhar o processo de
compilao, uma delas a configurao errada do compilador e
parmetros utilizados. Veja o tpico Configurando o X-Maker
para certificar-se se o compilador est configurado da forma
correta. Por tratar-se de uma compilao via comandos do MSDOS, deve-se considerar as restries de uso do MS-DOS,
configuraes do Autoexec.bat e Config.sys podero
interferir na execuo.
A compilao poder ser realizada diretamente no Delphi,
veja o tpico Configurando o X-Maker em Compilando e
Executando pelo Delphi. No h diferenas entre os meios de
compilao, o resultado ser o mesmo.

102

7. FONTES GERADOS PELO X-MAKER


O X-Maker possui vrios mdulos predefinidos para
controle geral do aplicativo gerado. Alguns mdulos so
constantemente alterados, so os mdulos de definies de
Banco de Dados, Tabelas e Campos.
Segue abaixo uma tabela com todos os mdulos gerados e
manipulados pelo X-Maker.
Funo do Mdulo
Formulrio Principal
Definio da Base de
Dados
Abertura de Tabelas
Atributos de Campos
das Tabelas
Estrutura de Campos
das Tabelas
Classe de Definio das
Tabelas
Lista de Tabelas
Formulrio de Pesquisa
Formulrio Adapter

Mdulo Fonte
Princ.Pas; Princ.Dfm; Princ.Res
BaseD.Pas; BaseD.Dfm; BaseD.Dti
Abertura.Pas; Abertura.Dfm
Atributo.Pas
Estrutur.Pas
Tabela.Pas

LTab.Pas; LTab.Inc
GridPesquisa.Pas; GridPesquisa.Dfm
Princ_Adapter.Pas;
Princ_Adapter.Dfm
Emp_Adapter.Pas;
Seleciona Empresa Emp_Adapter.Dfm
Adapter
Campo_Adapter.Pas;
Campo Adapter
Campo_Adapter.Dfm
Splash.Pas; Splash.Dfm
Tela de Apresentao
Rotinas.Ps
Rotinas Internas
RotinaEd.Ps
Rotinas de Edio
Rotinas de Validao de Validar.Pas

103

Campos
Declarao de Variveis
Pblicas
Componentes Extras
Chamada de
Formulrios Internos
Calendrio
Calculadora
Agenda de Telefones
Edio da Agenda
Acesso de Usurios
Configurao de
Senhas
Edio de Usurios
Edio de Grupos de
Usurios
Configurao de
Empresas Usurias
Seleo de Empresas
Usurias
Configurao do
Ambiente de Trabalho
Configurao da
Filtragem em Tabelas
Bate Papo em Rede
Cpia de Segurana
Restaurao de Cpia
de Segurana
Utilitrio de
Compactao de Dados
Formulrio de
Mensagem de Processo
Visualizador de
Relatrios

Publicas.Pas
Extras.Pas
Interno.Pas
Calend.Pas; Calend.Dfm
Calculad.Pas; Calculad.Dfm
Agenda.Pas; Agenda.Dfm
AgEdit.Pas; AgEdit.Dfm
Acesso.Pas; Acesso.Dfm
Senhas.Pas; Senhas.Dfm
EdUsr.Pas; EdUsr.Dfm
EdGrp.Pas; EdGrp.Dfm
CfgEmp.Pas; CfgEmp.Dfm;
CfgEmp.Res
SelEmp.Pas; SelEmp.Dfm
Ambiente.Pas; Ambiente.Dfm
Filtro.Pas; Filtro.Dfm
BatePapo.Pas; BatePapo.Dfm
Backup.Pas; Backup.Dfm
Restaura.Pas; Restaura.Dfm
CabIntF.Pas; CabStComps.Pas;
CabStConsts.Pas; CabiNet.Dll
Aguarde.Pas; Aguarde.Dfm
Fr_View.Pas;Fr_View.Dfm;Fr.Inc

104

Configurao de
Impresso
Sobre
Tabelas do Projeto
Campos e Atributos
Modelo Entrada de
Dados
Modelo Entrada de
Dados Filho
Modelo Avulso MDI
Modelo Avulso
Normal
Modelo Relatrios
Modelo Grficos
Modelo Etiquetas

OpcRel.Pas;OpcRel.Dfm
Sobre.Pas; Sobre.Dfm
DXXXX.Pas (XXXX = Nome da
Tabela)
ATRL9999.Pas (9999 = N Seq.
Tabela)
Modelo1.Pas;Modelo1.Dfm
Modelo2.Pas;Modelo2.Dfm
Modelo3.Pas;Modelo3.Dfm
Modelo4.Pas;Modelo4.Dfm
Modelo5.Pas;Modelo5.Dfm
Modelo6.Pas;Modelo6.Dfm
Modelo7.Pas;Modelo7.Dfm

Todos os mdulos podero ser personalizados pelo projetista. O


X-Maker possui um sistema de segurana que possibilita a
recuperao de mdulos, essa opo est no Menu Principal
Fontes na opo Regerar ....

105

Selecione os mdulos a serem regerados (recuperados) e


clique no boto Gerar. Faa a compilao do projeto, marque
a opo Compilar Todos os Mdulos.
Ao redefinir um formulrio ou relatrio o X-Maker cria
automaticamente uma cpia do arquivo fonte. Uma pasta
chamada Copia criado dentro da pasta do projeto, exemplo:
C:\Xmaker3\Projetos\Vendas\Copia, o arquivo fonte copiado
possui o mesmo nome de origem.

106

7.1. Estrutura do componente Tabela


O componente Tabela utilizado para manipular as
tabelas do projeto, o mdulo fonte o Tabela.Pas. Todo
acesso s tabelas dever ser realizado atravs deste componente,
sua utilizao padroniza e facilita o uso dentro do projeto.
Segue abaixo as principais propriedades do componente
Tabela.
Propriedade
NomeTabela: String

Definio / Utilizao
Retorna o nome da tabela.
Exemplo: DCLIENTES.NomeTabela;
Retorno: CLIENTES = Conforme
exemplo.
Retorna o ttulo da tabela.
Titulo: String
Exemplo: DCLIENTES.Titulo;
Retorno: Ficha Cadastral de Clientes =
Conforme exemplo.
Retorna o nome interno (componente) da
Name: String
tabela.
Exemplo: DCLIENTES.Name;
Retorno: DCLIENTES = Conforme
exemplo.
<Campos>.Contedo: Todos os campos da tabela so acessados
atravs do componente.
<valor do campo>
Exemplo: DCLIENTES.Nome.Contedo
:= Modular Software;
Neste exemplo o campo Nome est
recebendo o valor Modular Software,
cada campo receber o dado conforme
sua origem, que so: Alfanumrico,
Numrico, Data, Memo ou Imagem.
Inclui um novo registro em branco na
Inclui(Campos:

107

TListaCampos):
Boolean

Modifica: Boolean

Exclui: Boolean

Salva: Boolean

Cancela: Boolean

LimparTabela:

tabela, o parmetro Campos,


utilizado no formulrio de entrada de
dados, uma lista contendo os campos
utilizados na tela para atribuio dos
valores padres.
Em um formulrio avulso ou outro tipo
de finalidade utilize e opo NIL como
parmetro.
Exemplo: DCLIENTES.Inclui(Nil);
Retorno: True = Incluso autorizada,
False = Incluso no autorizada.
Habilita o registro para edio.
Exemplo: DCLIENTES.Modifica;
Retorno: True = Edio autorizada, False
= Edio no autorizada.
Exclui o registro atual.
Exemplo: DCLIENTES.Exclui;
Retorno: True = Excluso efetivada com
sucesso, False = No foi possvel excluir.
Salva o registro que est em modo de
incluso ou edio. Essa propriedade
utiliza o recurso de Commit, ou seja,
ela assegura que informao seja gravada
em disco e no somente no buffer de
memria.
Exemplo: DCLIENTES.Salva;
Retorno: True = Registro salvo com
sucesso, False = Erro ao salvar o registro.
Cancela uma operao de incluso ou
edio do registro.
Exemplo: DCLIENTES.Cancela;
Retorno: True = Cancelamento efetivado,
False = Cancelamento abortado.
Exclui todos os registros da tabela, sua

108

Boolean

DeletaTabela

CriaTabela

Existe: Boolean

Abrir: Boolean

AtualizaSql;

utilizao dever ser ponderada, pois ao


realizar esta operao a tabela ficar
vazia, sem nenhum registro.
Exemplo: DCLIENTES.LimparTabela;
Retorno: True = Registros apagados com
sucesso, False = Erro ao excluir os
registros.
Exclui a tabela fisicamente do banco de
dados.
Exemplo: DCLIENTES.DeletaTabela;
A tabela no pode estar em uso, utilize a
propriedade Close antes de excluir a
tabela.
Cria a tabela fisicamente no banco de
dados, somente se a tabela no existir.
Exemplo: DCLIENTES.CriaTabela;
Verifica se a tabela existe fisicamente no
banco de dados.
Exemplo: DCLIENTES.Existe;
Retorno: True = A tabela existe, False =
A Tabela no existe.
Abre a tabela para uso, a manipulao
dos registros somente possvel aps a
abertura da mesma.
Exemplo: DCLIENTES.Abrir;
Retorno: True = Tabela aberta com
sucesso, False = No foi possvel abrir a
tabela.
O projeto abre todas as tabelas em sua
inicializao.
Atualiza a visualizao dos registros no
buffer de memria, os registros
podero ser filtrados e ordenados.
Exemplo: DCLIENTES.AtualizaSql;

109

Filtro: TStringList

FiltroRelac:
TStringList

ChaveIndice: String

Sempre que uma tabela receber uma


expresso de filtro ou de ordenao essa
propriedade ter que ser utilizada.
Recebe uma lista de expresses para
filtro.
Exemplo:
DCLIENTES.Filtro.Add(CODIGO
=
100);
A sintaxe utilizada para filtragem
definida pelo SQL. Para atualizar os
registros com o novo filtro, utilize a
propriedade AtualizaSql.
Recebe uma lista de expresses para
filtro.
Exemplo:
DCLIENTES.FiltroRelac.Add(CODIGO
= 100);
Segue os mesmos padres da propriedade
Filtro.
O X-Maker utiliza este filtro extra para
os Grids de Relacionamentos em
formulrios de entrada de dados.
utilizado para no gerar conflito na opo
de filtragem do formulrio de entrada de
dados filho.
Define o conjunto de campos para
ordenao da tabela.
Exemplo: DCLIENTES.ChaveIndice :=
NOME;
Para mais de campo para composio da
chave utilize a ,(vrgula).
Exemplo: DCLIENTES.ChaveIndice :=
NOME, SALARIO;

110

Mtodo Ptabela
Pesquisa de registros, clculos, extrao de dados, atualizaes e
excluses.
Unit
Tabela.Pas
Descrio
O Ptabela pode ser utilizado de cinco (5) forma diferentes,
isso possvel, pois utilizada uma sobrecarga de mtodos.
1) Pesquisar um registro em uma tabela:
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor
de Valores]: Variant): Boolean;
1 Parmetro: Tabela = Tabela a ser pesquisada.
2 Parmetro: [Vetor de Campos] = Vetor de campos da tabela
para composio do filtro, para mais de um campo utilize a
vrgula (,) exemplo: [CAI_DOCUMENTO,
CAI_PARCELA].
3 Parmetro: [Vetor de Valores] = Vetor de valores a serem
atribudos no filtro, em conformidade com o parmetro acima,
para mais de um campo utilize a vrgula (,) exemplo: [100, 1].
Exemplo:

111

if not Ptabela(TabGlobal.Dclientes, [CLI_CODIGO],


[TabGlobal.Dvendas.CLI_CODIGO.Conteudo]) then
MessageDlg(Cliente no encontrado ..., mtWarning, [mbOk],
0);

2) Pesquisa registros realiza clculos e retorna os valores


desejados:
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Clculos]: Variant, Filtro:
String, Resultado: Variant): Boolean;
1 Parmetro: Tabela = Tabela a ser pesquisada.
2 Parmetro: [Vetor de Clculos] = Vetor de clculos, para
mais de um campo utilize a vrgula (,) exemplo:
['SUM(QUANT)', 'SUM(PRECO * QUANT)'].
3 Parmetro: Filtro = Expresso de filtragem.
4 Parmetro: Resultado = Varivel do tipo "Variant",
previamente declarada, ir conter o resultado dos clculos (2
Parmetro).
Exemplo:
var
CamposResultado: Variant;
begin
if Ptabela(TabGlobal.Ditvendas, ['SUM(QUANT)',
'SUM(PRECO * QUANT)'], 'NUMERO =
'+IntToStr(TabGlobal.DVENDAS.Numero.Conteudo),

112

CamposResultado) then
begin
Quant.Value := CamposResultado[0];
Total.Value := CamposResultado[1];
end;
end;
3) Pesquisa registros e retorna os valores desejados:
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor
de Valores]: Variant, [Vetor de Campos p/retorno]: String,
Resultado: Variant): Boolean;
1 Parmetro: Tabela = Tabela a ser pesquisada.
2 Parmetro: [Vetor de Campos] = Vetor de campos da tabela
para composio do filtro, para mais de um campo utilize a
vrgula (,) exemplo: [CAI_DOCUMENTO,
CAI_PARCELA].
3 Parmetro: [Vetor de Valores] = Vetor de valores a serem
atribudos no filtro, em conformidade com o parmetro acima,
para mais de um campo utilize a vrgula (,) exemplo: [100, 1].
4 Parmetro: [Vetor de Campos p/retorno] = Vetor de campos
da tabela para retorno em "Resultado", para mais de um campo
utilize a vrgula (,) exemplo: [CAI_DATA,
CAI_HISTORICO].
5 Parmetro: Resultado = Varivel do tipo "Variant",
previamente declarada, ir conter o resultado do contedo dos
campos (4 Parmetro).

113

Exemplo:
var
CamposResultado: Variant;
begin
if Ptabela(TabGlobal.Dclientes, ['CLI_CODIGO'],
[TabGlobal.Dvendas.CLI_CODIGO.Conteudo], ['CLI_NOME',
'CLI_ENDERECO'], CamposResultado) then
begin
Nome.Value := CamposResultado[0];
Endereco.Value := CamposResultado[1];
end;
end;
4) Pesquisar um registro em uma tabela e atualiza campos
(update):
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor
de Valores]: Variant, Update: String): Boolean;
1 Parmetro: Tabela = Tabela a ser pesquisada.
2 Parmetro: [Vetor de Campos] = Vetor de campos da tabela
para composio do filtro, para mais de um campo utilize a
vrgula (,) exemplo: [CAI_DOCUMENTO,
CAI_PARCELA].
3 Parmetro: [Vetor de Valores] = Vetor de valores a serem
atribudos no filtro, em conformidade com o parmetro acima,
para mais de um campo utilize a vrgula (,) exemplo: [100, 1].

114

4 Parmetro: Update = Expresso em SQL para atualizao


(Update).
Exemplo:
if not PTabela(TabGlobal.DESTOQUE, ['CODIGO'],
[TabGlobal.DITVENDAS.PRODUTO.Conteudo],
'QUANTIDADE = QUANTIDADE '+FracToStr(TabGlobal.DITVENDAS.QUANT.Conteudo))
then
MessageDlg(Falha na atualizao ..., mtError, [mbOk], 0);
5) Pesquisar um registro em uma tabela e exclui:
Sintaxe:
Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor
de Valores]: Variant, Excluir: Boolean): Boolean;
1 Parmetro: Tabela = Tabela a ser pesquisada.
2 Parmetro: [Vetor de Campos] = Vetor de campos da tabela
para composio do filtro, para mais de um campo utilize a
vrgula (,) exemplo: [CAI_DOCUMENTO,
CAI_PARCELA].
3 Parmetro: [Vetor de Valores] = Vetor de valores a serem
atribudos no filtro, em conformidade com o parmetro acima,
para mais de um campo utilize a vrgula (,) exemplo: [100, 1].
4 Parmetro: Excluir = Varivel para confirmao da excluso.
Exemplo:

115

if not Ptabela(TabGlobal.Dclientes, [CLI_CODIGO],


[TabGlobal.Dvendas.CLI_CODIGO.Conteudo], True) then
MessageDlg(Erro na excluso do registro ..., mtError, [mbOk],
0);

7.2. Rotinas Diversas Rotinas.Pas


7.2.1 Funo ConstStr

Declarao
function ConstStr(Ch: string; N: byte): string;

Descrio
Prenche uma varivel string Ch com uma seqncia de
caracteres de tamanho N.

Exemplo
LbLinha.Caption := ConstStr(-,50);

7.2.2 Funo DiretorioComBarra

Declarao
function DiretorioComBarra(NomeDir: string): string;

Descrio
Insere a ltima barra invertida ao nome do diretrio
NomeDir, caso seja necessrio.

116

Exemplo
Pasta := DiretorioComBarra(DirWindows);

7.2.3 Funo DiretorioSemBarra

Declarao
function DiretorioSemBarra(NomeDir: string): string;

Descrio
Retira a ltima barra invertida do nome do diretrio
NomeDir, caso seja necessrio.

Exemplo
Pasta := DiretorioSemBarra(DirWindows);

7.2.4 Funo RetiraHK

Declarao
function RetiraHK(S: string): string;

Descrio
Retira os caracteres & e ... de uma string S.

Exemplo
titulo := RetiraHK(mnu_clientes.Caption);

117

7.2.5 Funo ArrayOfString

Declarao
function ArrayToString(OpenArray: array of string;
Separador: char): string;

Descrio
Copia o contedo de um array OpenArray para uma
varivel string, acrescentando o caractere separador
entre cada elemento.

Exemplo
lista := ArrayToString(listbox1.items, ;);

7.2.6 Funo StringToArray

Declarao
procedure StringToArray(St: string; Separador: char;
Lista: TStringList);

Descrio
Copia os diversos elementos de uma string St que
esto separados pelo caractere Separador para uma
lista do tipo TStringList.

Exemplo

118

StringToArray(Azul;Branco;Amarelo, ; , Lista);
7.2.7 Funo DirWindows

Declarao
function DirWindows: string;

Descrio
Retorna a pasta de instalao do sistema operacional
Windows.

Exemplo
Pasta := DirWindows;

7.2.8 Funo RetiraBrancos

Declarao
function RetiraBrancos(Str: string): string;

Descrio
Retira todos os caracteres brancos de uma varivel string
Str.

Exemplo
Pasta := RetiraBrancos(DirWindows);

119

7.2.9 Funo ExecutaForm

Declarao
procedure ExecutaForm(FormClass: TFormClass; var
Reference);

Descrio
Executa formulrios do tipo MDI.

Exemplo
ExecutaForm(TFormClientes,FormClientes);

7.2.10 Funo CopiaArquivo

Declarao
function CopiaArquivo(Origem, Destino: string):
Boolean;

Descrio
Copia o arquivo Origem para o arquivo Destino.
Retorna True caso a cpia seja bem sucedida.

Exemplo

Ok := CopiaArquivo(C:\Projeto\Base.Gdb,
D:\Base.Gdb);

120

7.2.11 Funo CopiaArquivoMascara

Declarao
function CopiaArquivosMascara(Orig, Dest, Masc:
string): Boolean;

Descrio
Copia todos os arquivos da pasta Origem para a pasta
Destino, conforme a mscara. Retorna True caso todas
as cpias sejam bem sucedidas.

Exemplo

Ok := CopiaArquivoMascara(C:\Projeto\, D:\,
*.Gdb) ;
7.2.12 Funo PadR

Declarao
function PadR(InStr: string; TotalLen: Integer): string;

Descrio
Alinha o contedo da varivel string InStr esquerda,
dentro de um tamanho definido em TotalLen.

Exemplo
S := PadR(Sistema.Titulo, 40);

121

7.2.13 Funo PadL

Declarao
function PadL(InStr: string; TotalLen: Integer): string;

Descrio
Alinha o contedo da varivel string InStr direita,
dentro de um tamanho definido em TotalLen.

Exemplo
S := PadL(Sistema.Titulo, 40);

7.2.14 Funo Center

Declarao
function Center(InStr: string; TotalLen: Integer):
string;

Descrio
Centraliza o contedo da varivel string InStr, dentro
de um tamanho definido em TotalLen.

Exemplo
S := Center(Sistema.Titulo, 40);

122

7.2.15 Funo Space

Declarao
function Space(TotalLen: Integer): string;

Descrio
Preenche uma varivel string com espaos em branco
conforme o tamanho contido em TotalLen.

Exemplo
S := Space(40);

7.2.16 Funo DataAtual

Declarao
function DataAtual: TDateTime;

Descrio
Retorna a data atual do sistema.

Exemplo
data := DataAtual;

7.2.17 Funo HoraAtual

Declarao

123

function HoraAtual: string;

Descrio
Retorna a hora atual do sistema em uma varivel string,
no formato 999999.

Exemplo
hora := HoraAtual;

7.2.18 Funo PorExtenso

Declarao
function PorExtenso(FValor: Double): String;

Descrio
Retorna um valor inteiro ou fracionrio por extenso.

Exemplo
extenso := PorExtenso(100.50);

7.2.19 Funo Encript

Declarao
Encript(Encript : String): string;

Descrio

124

Codifica uma varivel string Encript.

Exemplo
senha := Encript(x-maker); // Retorna: qfjbl.w

7.2.20 Funo Decript

Declarao
function Decript(Decript : String): string;

Descrio
Decodifica uma varivel string Decript.

Exemplo
senha := Encript(qfjbl.w); // Retorna: x-maker

7.2.21 Funo StrZero

Declarao
function StrZero(N: integer; Tamanho: integer): string;

Descrio
Converte um nmero inteiro em string e atribui zero
esquerda conforme o tamanho definido em Tamanho.

Exemplo

125

numero := StrZero(100, 5); // Retorna: 00100


7.2.22 Funo Dia

Declarao
function Dia( Data: TDateTime ): string;

Descrio
Retorna uma varivel string com o nmero do dia de
uma data.

Exemplo
Nr_dia := Dia(DataAtual);

7.2.23 Funo Mes

Declarao
function Mes( Data: TDateTime ): string;

Descrio
Retorna uma varivel string com o nmero do ms de
uma data.

Exemplo
Nr_mes := Mes(DataAtual);

126

7.2.24 Funo MesAno

Declarao
function MesAno( Data: TDateTime ): string;

Descrio
Retorna uma varivel string com o nmero do ms e ano
de uma data, no formato 99/9999.

Exemplo
Nr_mes_ano := MesAno(DataAtual);

7.2.25 Funo Ano

Declarao
function Ano( Data: TDateTime ): string;

Descrio
Retorna uma varivel string com o nmero do ano de
uma data, no formato 9999.

Exemplo
Nr_ano := Ano(DataAtual);

7.2.26 Funo UltimoDiadoMes

Declarao

127

function UltimoDiaDoMes( MesAno: string ): string;

Descrio
Retorna uma varivel string com o nmero do ltimo dia
de determinado ms e ano.

Exemplo

Ultimo_dia := UltimoDiadoMes(Mes(DataAtual) +
Ano(DataAtual));
7.2.27 Funo DDMMAA

Declarao
function DDMMAA( Data: string ): string;

Descrio
Converte uma varivel string Data para o formato:
99/99/99.

Exemplo
data := DDMMAA(01022004); // Retorno: 01/10/04

7.2.28 Funo MascValor

Declarao

128

function MascValor(Valor: Extended; Mascara:


string): string;

Descrio
Converte uma varivel fracionria Valor para uma
string formatada Mascara.

Exemplo
Valor :=MascValor(100.50, ZZZ.ZZ9,99);

7.2.29 Funo MascTexto

Declarao
function MascTexto(S, Mascara: String): string;

Descrio
Retorna uma varivel string S formatada Mascara.

Exemplo
Cep :=MascTexto(38010020, 99999-999);

7.2.30 Funo TrocaString

Declarao
function TrocaString(const S, OldPattern, NewPattern:
string; Flags: TReplaceFlags): string;

129

Descrio
Substitui os caracteres OldPattern pelos caracteres
NewPattern dentro do varivel string S. As opes
de substituio so definidos em Flags.

Exemplo

cpf := TrocaString(999.999.999-99, ., ,
[rfReplaceAll, rfIgnoreCase]);
7.2.31 Funo ContaOcorrencia

Declarao
function ContaOcorrencia(Substr: string; S: string):
Integer;

Descrio
Retorna quantas ocorrncias do caractere Substr existe
na varivel S.

Exemplo
pontos := ContaOcorrencia(.,999.999.999-99);

7.2.32 Funo FracToStr

Declarao
function FracToStr(Valor: Extended): String;

Descrio

130

Converte um nmero fracionrio valor em uma


varivel string. retornado o ponto para as casas
decimais e no a vrgula como no mtodo FloatToStr.
Este mtodo o mais indicado para atribuies em
expresses SQL.

Exemplo
numero := FracToStr(100.50);

7.2.33 Funo CalcC

Declarao
function CalcC(N1,N2: Extended;Operador: String;
Decimal: Integer): Extended;

Descrio
Arredonda uma expresso de clculo e retorna com o
nmero de casas decimais desejados Decimal. Os
operadores suportados so: + (adio), (subtrao), *
(multiplicao) e / (diviso).

Exemplo
calculo := CalcC(100, 50.50, *, 3);

7.2.34 Funo Exponencial

Declarao

131

function Exponencial(N1: Extended; N2: Integer):


Extended;

Descrio
Faz o clculo exponencial entre os valores N1 e N2.

Exemplo
calculo := Exponencial(5, 2);

7.2.35 Funo StrNumerica

Declarao
function StrNumerica(N: String) : Boolean;

Descrio
Verifica se varivel string N possui apenas nmeros.

Exemplo
ok := StrNumerica(123456);

7.2.36 Funo ConverteLogico

Declarao
function ConverteLogico(Valor: Boolean): string;

Descrio

132

Converte uma expresso lgica em uma varivel string.


True = T e False = F.

Exemplo
ok := ConverteLogico(True);

7.2.37 Funo ConverteStrToLog

Declarao
function ConverteLogico(Valor: Boolean): string;

Descrio
Converte uma varivel string em uma expresso lgica.
T = True e F = False.

Exemplo
ok := ConverteStrToLog(T);

7.2.38 Funo SerialHD

Declarao
Function SerialHD(FDrive:String) :String;

Descrio
Retorna o nmero de srie de uma unidade de disco.
Pode ser utilizado para criar um sistema de proteo
contra cpias no autorizadas.

133

Exemplo
Serial := SerialHD(C); // Unidade C:\

7.2.39 Funo Vnivel

Declarao
function VNivel: Boolean;

Descrio
Caixa de dilogo de senha, o usurio digita a senha se for
um usurio Master retorna True, seno retorna False.

Exemplo
If Vnivel then ...

7.3. Rotinas de Edio RotinaEd.Pas


7.3.1 Funo RetornaAutoIncremento

Declarao
function RetornaAutoIncremento(TabelaPrincipal:
TTabela; Campo: String; Condicao: String; Qtd:
Integer = 1): Variant;

Descrio

134

Retorna o prximo nmero a ser utilizado em uma


Tabela. O projetista poder informar uma expresso de
filtro em Condicao, como default o prximo registro
ser acrescido de 1 (um).

Exemplo
TabGlobal.DCLIENTES.CLI_CODIGO.Conteudo :=
RetornaAutoIncremento(TabGlobal.DCLIENTES,
CLI_CODIGO, , 1);

7.3.2 Funo AtribuiAutoIncremento

Declarao
procedure AtribuiAutoIncremento(TabelaPrincipal:
TTabela; Campo: String; Componente: TComponent;
Condicao: String; Editavel: Boolean);

Descrio
Atribui o prximo nmero a ser utilizado em uma Tabela
em um objeto de edio. O projetista poder informar
uma expresso de filtro em Condicao, como default o
prximo registro ser acrescido de 1 (um).

Exemplo
AtribuiAutoIncremento(TabGlobal.DCLIENTES,
CLI_CODIGO, Xedit1, , True);

135

7.3.3 Funo LocalizaTabela

Declarao
function LocalizaTabela(Nome: String): TTabela;

Descrio
Localiza uma Tabela do projeto pelo nome.

Exemplo
Tabela_ed := LocalizaTabela(CLIENTES);

136

8. DICAS E MACETES
A seguir iremos mostrar algumas dicas, macetes e solues
para utilizao do X-Maker e dos projetos gerados.

8.1. Ao abrir ou criar num novo projeto no XMaker mensagem de erro "unavailable
database" (Banco de Dados Indisponvel)
apresentada, o que fazer?
A mensagem "unavailable database" indica que firebird
no est gerenciando corretamente. Para equipamentos que
utilizem o windows 98 necessrio a reinicializao do micro
aps a instalao do X-Maker, se no for o caso outro problema
pode ocorrer entre o FireBird e o InterBase. Em seu micro j
estava instalado o InterBase ? Faa a seguinte operao: desative
o interbase ou firebird, veja na bandeja de cones do windows
(barra de tarefas), remova no painel de controle em "Adicionar
ou Remover Software" o interbase e o firebird e reinicialize o
micro.
Faa
a
instalao
do
FireBird
"C:\XMaker\Firebird\Firebird.exe".
possvel configurar a forma de execuo do Firebird, em
Painel de Controle -> Firebird 1.5 Server Manager voc
pode alterar a forma de execuo entre Service ou Application.
Como padro o Firebird executado como Service. Faa a
mudana do tipo de execuo caso o problema continue.

137

8.2. Quando tento compilar um projeto atravs


do X-Maker a mensagem de erro
Compilador no encontrado
apresentada, o que fazer?
Em Propriedades do projeto o projetista define qual
verso do Delphi ser usada no projeto. Provavelmente a verso
definida no corresponde verso do Delphi instalada em seu
micro, v em Propriedades do projeto e faa a correo.

8.3. Toda vez que mando compilar o projeto


atravs do X-Maker o Delphi aberto e a
compilao no concluda, o que fazer?
Em qualquer verso do Delphi o compilador utilizado o
DCC32.EXE, esse compilador fica na pasta Bin do Delphi.
Exemplo:
C:\Arquivos de
programas\Borland\Delphi7\Bin\DCC32.EXE
Quando o DCC32.EXE no estiver instalado em seu
micro a compilao dever ser realizada diretamente no Delphi,
veja o tpico Compilando e Executando pelo Delphi, no
substitua o DCC32.EXE pelo DELPHI32.EXE.

138

8.4. Eu tenho o 4DOS instalado em meu


micro, ele pode interferir na compilao
do projeto atravs do X-Maker?
A compilao do projeto pelo X-Maker realizada atravs
de comandos do MS-DOS, o 4DOS, quando instalado, faz o
gerenciamento desses comandos e no o MS-DOS. Em algumas
verses do 4DOS foi constatado um tratamento diferente nos
comandos fazendo com que o projeto no seja compilado. Para
esse caso sugerimos que a compilao seja feita diretamente no
Delphi, veja o tpico Compilando e Executando pelo
Delphi.

8.5. Como atribuir o nome do usurio


(controle de acesso) em um campo da
tabela?
O X-Maker cria uma estrutura pblica para armazenar
vrios dados referentes ao projeto. Entre esses dados existe o
nome do usurio corrente, o termo corrente indica o usurio
atual que acessou o projeto final.
No formulrio de entrada de dados, faa a edio do
evento Ao Entrar do campo desejado.
procedure TFormClientes.USUARIOEnter(Sender:
TObject);
begin
TabGlobal.DCLIENTES.USUARIO.Conteudo :=
Sistema.Usuario;
end;

Vejamos outras
Sistema:

informaes

armazenadas

na

estrutura

139

Sistema.Titulo: String

Ttulo do projeto definido em


Propriedades.
Sistema.Verso: String
Verso do projeto definido
em Propriedades.
Sistema.Analista: String
Analista responsvel pelo
projeto
definido
em
Propriedades.
Sistema.Programador: String
Programador
do
projeto
definido em Propriedades.
Sistema.EstiloData: String
Estilo da data dd/mm/yy ou
dd/mm/yyyy utilizado no
projeto.
Sistema.ConfirmaSaida: Boolean Valor lgico (True ou False)
que identifica se a mensagem
de confirmao de sada do
projeto final ser apresentada
ou no.
Sistema.ControleAcesso:
Valor lgico (True ou False)
Booelan
que identifica se o controle de
acesso est habilitado.
Sistema.SenhaInicial: String
Senha Inicial do controle de
acesso
definido
em
Propriedades.
Sistema.HintBalao: Boolean
Valor lgico (True ou False)
para habilitar ou desabilitar a
visualizao das mensagens
(hits) na forma de balo.
Sistema.Pasta: String
Pasta de localizao do
executvel do projeto final.
Sistema.Usurio: String
Usurio corrente.
Sistema.Senha: String
Senha do usurio corrente.
Sistema.Master: Boolean
Valor lgico (True ou False)
que identifica se o usurio
corrente est classificado

140

Sistema.Grupo: String
Sistema.ListaUsuarios:
TstringList
Sistema.EmpresaUsr: String
Sistema.EnderecoUsr: String
Sistema.BairroUsr: String
Sistema.CidadeUsr: String
Sistema.UfUsr: String
Sistema.CepUsr: String
Sistema.CNPJUsr: String
Sistema.IEUsr: String
Sistema.FonesUsr: String
Sistema.LogoUsr: String

Sistema.Integridade: Boolean

como Master (acesso total).


Grupo do usurio corrente.
Lista completa dos usurios
cadastrados no controle de
acesso.
Nome da Empresa usuria
corrente.
Endereo da Empresa usuria
corrente.
Bairro da Empresa usuria
corrente.
Cidade da Empresa usuria
corrente.
UF da Empresa usuria
corrente.
CEP da Empresa usuria
corrente.
CNPJ / CPF da Empresa
usuria corrente.
Inscrio
Estadual
da
Empresa usuria corrente.
Telefone(s)
da
Empresa
usuria corrente.
Localizao da imagem de
logotipo da Empresa usuria
corrente.
Valor lgico (True ou False)
para habilitar ou desabilitar o
uso da verificao da
integridade referencial na
excluso de um registro.

141

8.6. Como filtrar ou ordenar uma tabela na


abertura do formulrio de entrada de
dado?
Faa a edio do evento Abertura de Tabelas
(AbreTabelas) do formulrio.
Exemplo de Filtragem:
function TFormRContas.AbreTabelas: Boolean;
begin
{07-Incio do Bloco Modular. Modificaes no
sero preservadas}
Result := True;
{99-Final do Bloco Modular. Modificaes no
sero preservadas}
TabGlobal.DCONTAS.Filtro.Text := 'CLI_CODIGO =
100';
end;

Exemplo de Ordenao:
function TFormRContas.AbreTabelas: Boolean;
begin
{07-Incio do Bloco Modular. Modificaes no
sero preservadas}
Result := True;
{99-Final do Bloco Modular. Modificaes no
sero preservadas}
TabGlobal.DCONTAS.ChaveIndice := 'CON_LANCTO
Desc';
end;

* Desc = Indica que o ndice ser decrescente.

142

8.7. Como ocultar um campo via cdigo para


que o mesmo no seja visualizado no
Grid de consulta do formulrio?
Faa a edio do evento de Inicializao (FormShow) do
formulrio de entrada de dados.
Exemplo:
TabGlobal.DCLIENTES.NOME.Valor.Visible := False;

* A propriedade Valor um TField vinculado a tabela e ao


campo.

8.8. Como configurar o projeto final para


compartilhamento das Tabela em uma
rede?
Para configurar o uso em Rede dos projetos gerados no XMaker, simples, execute o projeto e clique no Arquivo ->
Empresa Usuria e clique no boto Editar. No campo
Localizao informe o nmero do IP ou o nome do servidor +
pasta + base de dados.
Exemplo:
Localizao (DataBase): C:\XMaker\Exemplos\Contas\Base.Gdb
Servidor (HostName): 195.195.1.1
Ou
Servidor (HostName): NetServidor

143

Nas estaes o FireBird tem que estar instalado !


Crie um atalho nas estaes buscando o executvel do projeto e
pronto !
Quando usar a Pasta Bsica em Exibir -> Ambiente?
Caso voc no queira buscar o executvel da rede, cada estao
teria o executvel do projeto, utilize a pasta bsica para buscar
as definies de usurio e localizao da base de dados.
Exemplo:
\\Servidor\Dados\XMaker\Exemplos\Contas\
ou
F:\XMaker\Exemplos\Contas\

* As configuraes em Exibir -> Ambiente so gravadas na


pasta do Windows, o nome do arquivo o nome do executvel +
a extenso .INI
Exemplo: C:\Windows\Contas.INI

Faa e excluso desse arquivo para voltar as configuraes


padres ou faa a edio do mesmo atravs do Edit ou Bloco de
Notas.

8.9. Como configurar o boto Tabelas no


formulrio de Entrada de Dados?

144

Este boto utilizado para criao de um menu de atalhos


para acesso a outros formulrios do projeto, normalmente so
formulrios que possuem algum tipo de vinculo com o
formulrio em questo. Como exemplo podemos citar um
formulrio de Cadastro de Produtos do Estoque, ao cadastrar um
produto so exigidas algumas informaes do tipo: Grupo,
Famlia, Fornecedor e Unidade, e existe uma Tabela e
formulrio para cada uma dessas informaes. Para criar um
acesso mais rpido e esses formulrios o projetista poder
utilizar o boto Tabelas.
Inicialmente este boto possui a propriedade Visible
desabilitada, para habilitar clique no boto
e escolha a
opo Rodap Manuteno ou Rodap Consulta.

Clique no boto Tabelas e habilite a propriedade Visible


na janela Object Inspector.

145

Faa a edio do evento BtnRelac_1Click, clique em


OnClick na janela Object Inspector.

146

Insira a codificao entre os blocos {09} e {99}, utilize o


mtodo AddMenuItem para atribuir um novo item ao menu da
tabelas relacionadas.
Exemplo:
AddMenuItem(PopRelacionados, 'Atividades',
'mnuAtividades', True , 0, 6001);
Parmetros do Mtodo AddMenuItem:
PopRelacionados = Objeto PopMenu a ser utilizado.
Atividades = Ttulo a ser apresentado no menu.
mnuAtividades = Nome interno do componente, no poder
ser utilizado nome de outro componente utilizado no formulrio.
Como padro o projetista poder utilizar a sigla mnu + o nome
do formulrio.
True = Habilitado e False = Desabilitado.
0 = Nmero do cone de imagem de apresentao.

147

6001 = Nmero de seqncia de identificao utilize a seqncia


6001, 6002, 6003, etc. para os demais formulrios.
Salve a codificao do evento e faa a edio do arquivo fonte,
clique no boto: Editar arquivo fonte.
V
para
o
bloco
PopRelacionadosClick.

de

codificao

do

evento

Insira a codificao entre os blocos {10} e {99}, utilize o


boto form na barra de ferramentas do Mini Editor para
inserir a codificao de chamada do formulrio desejado.
Exemplo:
{10-Incio do Bloco Modular. Modificaes no sero
preservadas}

148

if MenuItem.Tag = 6001 then


begin
FormAtividades := TFormAtividades.Create(Application);
Try
FormAtividades.ShowModal;
Finally
FormAtividades.Free;
end;
end
{99-Final do Bloco Modular. Modificaes no sero
preservadas}
necessrio referenciar as units dos formulrios utilizados
na clusula uses.

O projetista poder utilizar o boto Tabelas para outras


finalidades ou at mesmo remove-lo, fica a critrio do projetista.

8.10. Como posso eliminar os registros


excludos e tabelas temporrias em minha
base de dados Firebird/Interbase?
O utilitrio "GBAK" que instalado junto com Firebird faz esse
tipo de operao, a tcnica fazer um backup e depois restaurar,
o "GBAK" faz um backup somente das informaes realmente
necessrias e depois restaura.
Na restaurao os ndices so recriados e o seu banco de dados
totalmente "Balanceado".

149

Aps a utilizao do "GBAK" o seu banco de dados ir conter


um tamanho bem menor e a sua performace ser melhorada.
Exemplo de utilizao do "GBAK":
. V para o "Prompt do MS-DOS"
. Acesse a pasta de localizao do banco de dados
. Digite na linha de comando do DOS:
COPY "C:Arquivos de
programas\Firebird\Firebird_1_5\Gbak.exe
SET ISC_USER=SYSDBA
SET ISC_PASSWORD=masterkey
COPY BASE.GDB BASE.COP
GBAK -B BASE.GDB BASE.GBK
GBAK -R BASE.GBK BASE.GDB
Vamos analisar os comando digitados:
COPY "Arquivos de ... = Copia o "Gbak.exe" da pasta de
instalao do Firebird.
SET ISC_USER = Varivel de ambiente que ir conter o
usurio "Master".
SET ISC_PASSWORD = Varivel de ambiente que ir conter
a senha do usurio "Master".
BASE.GDB = Nome do banco de dados de exemplo.
COPY BASE.GDB = Faz uma cpia do banco de dados
original, medida de segurana.
GBAK -B = Faz um backup do banco de dados e grava no
arquivo com extenso "GBK".
GBAK -R = Restaura o backup do banco de dados "GBK".
Para facilitar esses comandos podero ser gravados em um

150

arquivo de "Lote", exemplo: "Balancer.Bat"


Execute o "Balancer.Bat" sempre que houver necessidade de
melhorar a perfomace de acesso, e lembre-se nunca faa esse
tipo de operao quando o banco de dados estiver em uso, seja
nas estaes ou no servidor.