Você está na página 1de 120

MANUAL DO USURIO

www.xmaker.com.br

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 Domnio Tecnologia
Ltda. A Domnio Tecnologia Ltda. 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? ................................................................................................... 6


2. INTERFACE DO X-MAKER ........................................................................................... 8
2.1. Menu Principal do X-Maker ............................................................................................. 8
2.2. Barra de Ferramentas ....................................................................................................... 9
2.3. Barra de Assistente .......................................................................................................... 10

3. CONCEITOS BSICOS ................................................................................................. 11


3.1. Banco de Dados ................................................................................................................ 11
3.2. Tabelas ............................................................................................................................. 11
3.3. Campos ............................................................................................................................ 11
3.4. Campo Calculado ............................................................................................................ 12
3.5. Integridades & Relacionamentos .................................................................................... 12
3.6. Processos Diretos/Inversos .............................................................................................. 12
3.6. Dicionrio de Dados ......................................................................................................... 13

4.CONTEDO DAS PASTAS ............................................................................................ 14


5. CONFIGURANDO O X-MAKER................................................................................... 15
5.1. Compilando e Executando pelo Delphi ........................................................................... 16
5.2. Modelos ............................................................................................................................ 17
5.3. Propriedades do Editor ................................................................................................... 18
5.4. Campos Predefinidos ....................................................................................................... 19

6.CONHECENDO AS ETAPAS DE DEFINIO DE UM PROJETO .......................... 20


6.1. 1 Passo Propriedades do Projeto ................................................................................. 21
6.2. 2 Passo Tabelas ............................................................................................................ 23
6.2.1 Definindo Atributos da Tabela ........................................................................................................ 24
6.2.2 Definio do Banco de Dados ......................................................................................................... 26
6.2.4 Campos da Tabela ........................................................................................................................... 28
6.2.5 Nome ............................................................................................................................................... 29
6.2.5.1 Tipo .............................................................................................................................................. 29
6.2.5.2 Chave ............................................................................................................................................ 30
6.2.5.3 Tamanho ....................................................................................................................................... 30
6.2.5.4 Autoincremento ............................................................................................................................ 30
6.2.5.5 Edio ........................................................................................................................................... 30
6.2.5.6 Calculado ...................................................................................................................................... 31
6.2.5.7 Mscara ........................................................................................................................................ 31
6.2.5.8 Campos Numricos e Fracionrios: .............................................................................................. 31
6.2.5.9 Campos Alfanumricos: ............................................................................................................... 32
6.2.5.10 Ttulo .......................................................................................................................................... 32
6.2.5.11 ndice .......................................................................................................................................... 32
6.2.5.12 Invisvel ...................................................................................................................................... 32
6.2.5.13 Ajuda .......................................................................................................................................... 32
6.2.5.14 Valor Padro ............................................................................................................................... 33
6.2.5.15 S. Atribui Sempre Atribui ....................................................................................................... 33
6.2.5.16 Pr-Validao ............................................................................................................................. 33
6.2.5.17 Ao............................................................................................................................................ 33

6.2.5.18 Limpar Campo ............................................................................................................................ 33


6.2.5.19 Validao .................................................................................................................................... 33
6.2.5.20 Procurar em ................................................................................................................................ 35
6.2.5.21 Msg. de Erro Mensagem de Erro ............................................................................................ 35
6.2.5.22 Valores Vlidos .......................................................................................................................... 35
6.2.6 Definio da Chave Estrangeira ...................................................................................................... 36
6.2.7 Edio de Campo Calculado............................................................................................................ 38
6.2.8 ndices (Chaves Secundrias) .......................................................................................................... 39
6.2.9 Integridades & Relacionamentos ..................................................................................................... 40
6.2.10 Processos Diretos/Inversos ............................................................................................................ 42
6.2.11 Lanamentos .................................................................................................................................. 46

6.3. 3 Passo Formulrios .................................................................................................... 49


6.3.1 Definindo o Layout do formulrio................................................................................................... 50
6.3.2. Propriedades (Object Inspector) ..................................................................................................... 52
6.3.2.2 Grid de Relacionamento ............................................................................................................... 53
6.3.2.3 Movimentao e Redimensionamento .......................................................................................... 55
6.3.3 Mini Editor ...................................................................................................................................... 57
6.3.3.1 Estrutura do Arquivo Fonte .......................................................................................................... 58
6.3.4 Principais eventos ............................................................................................................................ 59
6.3.4.1 Inicializao (FormShow) ............................................................................................................ 59
6.3.4.2 Abertura de Tabelas (AbreTabelas) .............................................................................................. 59
6.3.4.3 Confirma Incluso (ConfirmaInclusao) ........................................................................................ 60
6.3.4.4 Confirma Modificao (ConfirmaModificacao) ........................................................................... 60
6.3.4.5 Confirma Excluso (ConfirmaExclusao) ...................................................................................... 60
6.3.4.6 Confirma Gravao (ConfirmaGravacao) .................................................................................... 60
6.3.4.7 Ao Entrar Manuteno (TelaManutencao) ................................................................................... 60
6.3.4.8 Ao Entrar Consulta (TelaConsulta) .............................................................................................. 60
6.3.4.9 Atribui Valores (AtribuiValoresPadrao) ....................................................................................... 61
6.3.4.10 Antes de Salvar (AntesdeSalvar) ................................................................................................ 61
6.3.4.11 Antes de Incluir (AntesdeIncluir) ............................................................................................... 61
6.3.4.12 Antes de Modificar (AntesdeModificar)..................................................................................... 61
6.3.4.13 Antes de Excluir (AntesdeExcluir) ............................................................................................. 61
6.3.4.14 Depois de Incluir (DepoisdeIncluir) ........................................................................................... 61
6.3.4.15 Depois de Modificar (DepoisdeModificar)................................................................................. 61
6.3.4.16 Depois de Excluir (DepoisdeExcluir) ......................................................................................... 61
6.3.4.17 Finalizao (FormClose) ............................................................................................................ 62

6.4. 4 Passo Relatrios, Etiquetas e Grficos. .................................................................... 62


6.4.1 Definindo o Relatrio ...................................................................................................................... 63
6.4.2 Filtragem ......................................................................................................................................... 64
6.4.3 Ordenao ........................................................................................................................................ 67
6.4.4 Layout do Relatrio ......................................................................................................................... 67
6.4.5 Configurando Etiquetas ................................................................................................................... 74
6.4.6 Configurando o Grfico ................................................................................................................... 74

6.5. 5 Passo Menu ............................................................................................................... 76

Barra de Ferramentas ................................................................................................................................ 77


Rotina Avulsa ........................................................................................................................................... 77

6.5. 6 Passo Compilao ..................................................................................................... 78

7. FONTES GERADOS PELO X-MAKER ........................................................................ 80


7.1. Estrutura do componente Tabela ................................................................................ 82
7.2. Mtodos Pr-definidos ..................................................................................................... 89
7.3. Mtodos de Edio ..........................................................................................................101

8. FAQ (Perguntas Freqentes) ........................................................................................ 102


9.DICAS DE PROGRAMAO ....................................................................................... 115

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, 7, 2005, 2006 e
Turbo Delphi 2006, 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/2.x, SQLBase,
Oracle, SQLServer, SyBase, DB2, Informix, ODBC, MySql, PostgreSQL e OLEDB.
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, 7, 2005, 2006 ou Turbo Delphi 2006 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.

1.2. Instalando o X-Maker


A instalao do X-Maker em seu computador feita pelo programa Instalar.

1.2.1 Para instalar o X-Maker atravs do arquivo Instalar:


* Execute o arquivo em seu computador.
* Siga as instrues mostradas na tela.

1.2.2 Pasta de Instalao:


A pasta de Instalao do X-Maker padro C:\XMaker6 - 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 MS-DOS. Recomenda-se que a nova pasta esteja
localizada imediatamente abaixo da pasta raiz escolhida, Exemplos: C:\XMaker6 D:\XMaker6 F:\XMaker6 -

1.2.3 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 em aberto.
Salvar Arquivo (Ctrl+S): Salva as modificaes realizadas em um arquivo fonte em
edio.
Fontes do Projeto: Lista os arquivos fontes da pasta do projeto.
Formulrios do Projeto: Lista os formulrios da pasta do projeto.
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 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 ou o utilitrio Adapter previamente compilados.
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 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.

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 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 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.

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.6. 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.

4.CONTEDO DAS PASTAS


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

C:\XMaker6\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:\XMaker6\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:\XMaker6\Doc: Contm os arquivos de ajuda interna do X-Maker.

C:\XMaker6\Exemplos : Contm os projetos de exemplos para estudo e


exemplificao da utilizao do X-Maker, os projetos so separados por
pastas.

C:\XMaker6\Imagem : Contm uma coletnea de mais de 700 bitmaps


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

C:\XMaker6\Projetos : Esta pasta criada para armazenamento de novos


projetos, inicialmente no possui nenhum arquivo, serve apenas como uma
sugesto de pasta de localizao dos projetos, sua utilizao opcional.

C:\XMaker6\Firebird : Contm o instalador do Firebird 2.x e o utilitrio


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

5. CONFIGURANDO O X-MAKER
Uma configurao padro acompanha o X-Maker em sua instalao, essa
configurao pode ser alterada a qualquer momento pelo projetista. Atravs do XMaker 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.

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, 7, 2005, 2006 ou
Turbo Delphi 2006) deve-se executar o Delphi e seguir os seguintes passos:

Menu File: Clique na opo Open e localize a pasta de instalao do XMaker, acesse a pasta Comp\Delphi\Fr234 e Comp\Delphi Exemplo:
C:\XMaker6\Comp\Delphi .

Componente do FreeReport: Abra o arquivo correspondente a verso do


Delphi.
FREEREP5.DPK: Free Report para Delphi 5.
FREEREP6.DPK: Free Report para Delphi 6.
FREEREP7.DPK: Free Report para Delphi 7.
FREEREP9.DPK: Free Report para Delphi 2005.
FREEREP10.DPK: Free Report para Delphi 2006.
FREEREP10.DPK: Free Report para Turbo Delphi 2006. Para
instalar o Free Report no Delphi utilize a pasta Fr234\Source dentro
da pasta Comp\Delphi\Fr234, exemplo:
C:\XMaker6\Comp\Delphi\Fr234\Source

Instalando: Clique no boto Install. Ao fechar a janela de instalao


confirme qualquer mensagem de confirmao de atualizao.

Componentes do X-Maker: Abra o arquivo correspondente a verso do


Delphi.
XMaker5.DPK: X-Maker para Delphi 5.
XMaker6.DPK: X-Maker para Delphi 6.
Xmaker7a2007.DPK: X-Maker para Delphi 7, 2005, 2006 e Turbo
Delphi 2006 e Delphi2007.

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:\XMaker6\Comp\Delphi (C:\XMaker6 Corresponde a
pasta de instalao do X-Maker) se no existir faa a incluso do mesmo.

5.2. Modelos
O X-Maker utiliza a pasta Delphi (C:\XMaker6\Delphi) para armazenar os
modelos de mdulos dos projetos, o projetista poder alterar os modelos e
armazenar em pastas diferentes, dessa forma o modelo padro preservado.

O modelo padro do X-Maker utiliza a pasta: C:\XMaker6\Delphi, se estiver


utilizando uma pasta diferente de C:\XMaker6 faa a alterao atravs do boto
Editar. Ao criar um novo modelo informe o ttulo de identificao e a pasta de
localizao. Copie os arquivos da pasta padro (C:\XMaker6\Delphi) para a pasta
do novo modelo. Em Propriedades do Projeto possvel escolher o modelo a ser
utilizado.

5.3. Propriedades do Editor


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

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.

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.4. 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.

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
maior segurana para o projetista. A barra de Assistente do X-Maker contm as 6
(seis) 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.

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
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.

Controle de Acesso Interno: Habilita a criao das tabelas do controle de


acesso dentro do prprio banco de dados do projeto, essa opo
desabilitada cria as tabelas de controle de acesso em arquivos externos
com extenso .dat.

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.

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.

Modelo: Informe o modelo a ser utilizado no projeto.

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 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, opcionalmente, por chaves
secundrias. Outros recursos de definio so os relacionamentos de integridade
referencial, excluses em cascatas e restritas, processos diretos/inversos e
lanamentos.
Dica:

Para forar uma gerao dos arquivos fonte das Tabelas, marque a opo
Regerar Fontes. Ao fechar a janela de Tabelas os arquivos fonte sero
regerados.
6.2.1 Definindo Atributos da Tabela

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.

Ativa: Informe se a Tabela est ativa no projeto, ou seja, opcionalmente o


projetista poder desativar o uso da Tabela no projeto sem remover as
definies.

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.

Abrir Tabela: Informe se a Tabela ser aberta na inicializao do sistema, o


projetista poder otimizar os processos de abertura de registros atravs
dessa propriedade.

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 na
aba Banco de Dados.

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.

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

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


obrigatria.

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.

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.

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 X-Maker, 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.

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 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.1 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.

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.2 Chave
Indica se o campo faz parte da chave primria, uma chave primria
composta por um ou mais campos da Tabela.
6.2.5.3 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.
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.4 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.5 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 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.6 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.7 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).
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 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.9 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.

* 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.10 Ttulo
Informe o ttulo do campo, esse ttulo utilizado no formulrio de entrada de
dados e relatrios.
6.2.5.11 ndice
Informe o nmero da ordem de apresentao do campo durante a consulta
no formulrio de Entrada de Dados.
6.2.5.12 Invisvel
Informe se o campo no ser visvel durante a consulta no formulrio de
Entrada de Dados.
6.2.5.13 Ajuda
Informe a mensagem de ajuda do campo, essa mensagem utilizada no
formulrio de entrada dados (Hint).

6.2.5.14 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 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.15 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.16 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.17 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.
6.2.5.18 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.19 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 XMaker. 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 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; // Valida as 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; // Valida a 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

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.20 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.21 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.22 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).

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
todos os valores vlidos so separados
da seguinte forma
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) iro permitir que o
usurio final pesquise um registro em uma Tabela relacionada, como exemplo
podemos citar a Tabela de Clientes e Atividades Comerciais em um Projeto, veja a
figura abaixo para uma maior compreenso.

O campo de "Atividade" possui um boto associado, ao clicar neste boto


um formulrio de pesquisa aberto, veja a imagem abaixo.

Atravs deste formulrio o usurio poder pesquisar e selecionar o registro


desejado.

Em "Relacionada com" voc dever escolher a Tabela de relacionamento, o


campo da "Tabela" em definio dever ser associado com o campo
correspondente da Tabela "Relacionada com", no obrigatrio a utilizao de um
mesmo nome para os campos a serem associados, mas o mesmos devero
possuir uma mesma estrutura (tipo e tamanho).

Todos os campos "fsicos" da Tabela relacionada podero ser mostrados,


escolha os campos e a ordem de apresentao em "Campos a serem mostrados",
o primeiro campo da lista indica a ordenao da consulta.
O "Estilo de Pesquisa" pode ser "Formulrio" ou "Combo Drop", o
"Formulrio" possui recursos de "Filtragem Fixa" e "Pesquisar aps", o "Combo
Drop" mais simples e objetivo, indicado para Tabelas com poucos registros e
campos.
A "Filtragem Fixa" cria uma seleo de registros a serem visualizados e
"Pesquisar aps" pode ser "Cada caractere" ou "Enter", isso indica se a pesquisa
ser automtica a cada caractere digitado ou somente aps o pressionamento da
tecla "Enter".
Criar Relacionamento em "Integridades & Relacionamentos"
Aps a confirmao da definio o X-Maker poder criar automaticamente um
"Relacionamento" em "Integridades & Relacionamentos", este tipo de
"Relacionamento" independente da definio da "Lista Externa", para que os
campos das Tabelas relacionadas possam ser visualizados junto com a Tabela em
Definio necessrio criar o "Relacionamento" em "Integridades &
Relacionamentos", o simples fato de criar uma "Lista Externa" no habilita a
utilizao de campos "Extras", ou seja, campos de outras Tabelas. Os "Processos
Diretos/Inversos" tambm utilizam os "Relacionamentos". Nem toda Tabela
necessita da criao dos "Relacionamentos" aps a definio da "Lista Externa".
O atributo "Procurar em:" do campo em definio preenchido automaticamente
quando este tipo de "Relacionamento" criado atravs da "Lista Externa", este
atributo ir realizar uma validao do campo quando o mesmo estiver em edio
em formulrios de "Entrada de Dados" e "Entrada de Dados Filho", ou seja,
obrigatrio informar um contedo que satisfaa a condio de registro vlido na
Tabela relacionada. Exemplo: Ao digitar o nmero da Atividade Comercial na
Ficha Cadastral de Clientes o mesmo dever ser vlido, no ser permitido
informar um nmero de Atividade Comercial que no esteja cadastrado. Voc
poder desabilitar esta validao, faa a edio do Campo em deixe o atributo
"Procurar em" vazio.
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.
Codificar um Campo Calculado exige um conhecimento bsico de programao.
A opo "Campo no virtual" habilitado indica que o campo ser criado
fisicamente na tabela, porm a frmula de clculo ser executada a cada incluso
ou modificao na tabela. Campos calculados virtuais no podem ser editados,
filtrados e ordenados.
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.

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 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: Informe a Tabela para relacionamento.

Campos: Lista dos campos disponveis para 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.

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). O projetista poder definir Processos e Lanamentos avulso,
neste caso no necessrio nenhum tipo de relacionamento e a codificao
livre, ou seja, o projetista poder codificar qualquer tipo de instrues.

Tabela alvo: Somente Tabelas relacionadas podero ser escolhidas.


Campo alvo: Campo da Tabela alvo que ir sofrer o processo.
Condio: Expresso lgica de condio para execuo do processo, quando
no
houver
expresso
o
processo
sempre
ser
executado.
Processo direto: Expresso de atualizao aps a incluso ou modificao.
Processo inverso: Expresso de atualizao antes de excluso ou modificao.

Condio, Processo direto e inverso so blocos de codificaes, a


"Condio" dever ser definida com a sintaxe da linguagem Delphi, os
"Processos" utiliza a sintaxe "SQL" que a linguagem nativa do Banco de Dados.
Opcionalmente voc poder utilizar a caixa de definio de expresso, conforme
imagem acima.
A "Condio" ser utilizada na criao de uma condio para execuo dos
"Processos", tanto para o direto quanto para o inverso, na imagem abaixo
possvel visualizar a expresso de "Condio" transformada em linha de cdigo
com a utilizao do condicional "if ... then".

As expresses de "Processos" so vinculadas ao "Campo alvo" da "Tabela


alvo", utilize o boto "Campo" na janela de definio da Expresso para obter a
sintaxe correta do campo a ser utilizado, na figura abaixo o processo realizado
no campo "CON_BAIXA" da Tabela "Contas", a sintaxe final em SQL ser:
set update Contas CON_BAIXA = :BX_CONTAS_CON_BAIXA, CON_PAGO =
CON_PAGO + :BXCONTAS_CON_PAGO where CLI_CODIGO = 1 and
CON_DOCUMENTO = '1' and CON_PARCELA = 1
Os valores de atribuio na clausula "where" apenas ilustrativo, pois o
relacionamento que ir fornec-los. O "Campo alvo" ser atualizado somente
com a expresso ":BX_CONTAS_CON_BAIXA", o contedo restante aps a
vrgula um complemento, pois podemos inserir mais atualizaes em um mesmo
processo separados por vrgula.

Processo Direto.

Processo Inverso.

Processo Avulso - Direto/Inverso

6.2.11 Lanamentos
Os lanamentos podero ser utilizados para gerar um novo registro em
outra tabela aps a incluso. O projetista poder definir lanamento avulso de livre
codificao.

Tabela alvo: Tabela que ir receber o novo registro.


Condio p/ incluso: Expresso lgica de condio para criao do novo
registro.
Campos da Tabela alvo: Campos que podero ser preenchidos, os campos
chaves so obrigatrios.
Preencher com: Valores a serem atribudos.
Condio e Preencher com so blocos de codificaes, a "Condio"
dever ser definida com a sintaxe da linguagem Delphi, os campos "Preencher
com" utilizam a sintaxe "SQL" que a linguagem nativa do Banco de Dados.
Opcionalmente voc poder utilizar a caixa de definio de expresso, conforme
imagem acima.
Para realizar concatenao de expresso necessrio utilizar as aspas('), como
exemplo podemos citar o campo "CAI_TIPO" da Tabela "LcCxBco", este campo
recebe o valor "E" = Entrada ou "S" = Sada, a expresso "Preencher com" do
campo alvo ir gravar a letra correspondente ao tipo de baixa ou estorno e no
poder ser utilizado "E" ou "S" diretamente sem a devida concatenao, a
expresso final : '+#39+'E'+#39+' ou '+#39+'S'+#39+' veja logo abaixo a imagem
com o cdigo gerado.

Toda linha de "Preencher com" transformada em linha de cdigo, o


atributo "SQL" recebe as linhas de codificao atravs do mtodo "add", este
mtodo aceita somente expresses do tipo "String", as aspas (') so utilizadas
para determinar o nicio e fim de uma "String", isso vlido tanto para linguagem
Delphi (Object Pascal) como para "SQL", a expresso final em "SQL" dever ser:
'E' ou 'S', para no gerar conflito entre as linguagens na hora da compilao as
aspas da expresso representada pelo caractere "#39", "#39" o cdigo ASCII
das aspas, vamos analisar a linha para uma maior compreenso:
Sql.Add(','+#39+'E'+#39+'');
O sinal de "+" faz a concatenao de "Strings", ento ser: , (vrgula) + '
(aspas) + E (Letra) + ' (aspas) = , 'E'
O mtodo "RetornaAutoIncremento" pode ser utilizado para buscar o
prximo nmero de campo, exemplo: Campo alvo: "CAI_SEQUENCIA", a
seqncia deste campo subordinada aos campos "CONTA" e "CAI_DATA".
Como o mtodo retorna um nmero o mtodo "IntToStr" utilizado para converter
em "String", o "#39" no utilizado porque o campo numrico.
Declarao do Mtodo "RetornaAutoIncremento":
function RetornaAutoIncremento(TabelaPrincipal:
Condicao: String; Qtd: Integer = 1): Variant;

TTabela;

Campo:

String;

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).
Lanamento Avulso

O projetista poder codificar as instrues a serem executadas aps a


incluso do registro.

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 projeto final possa entrar com as 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.
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.

6.3.1 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, 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 Propriedades (Object Inspector) permite a manipulao
direta dos componentes, criao de pginas e/ou acesso aos eventos disponveis.
O arquivo fonte poder ser editado atravs da aba Cdigo, 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.

6.3.2. Propriedades (Object Inspector)

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.
6.3.2.2 Grid de Relacionamento
Em formulrios de entrada de dados possvel a utilizao de um Grid de
Relacionamento, para operaes do tipo Mestre-Detalhe. 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.
Para inserir um Grid de Relacionamento clique no boto
na janela
Propriedades 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.

6.3.2.3 Movimentao e Redimensionamento


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.
Ctrl + Setas: Movimenta os componentes selecionados em uma
posio.
Ctrl + Shift + Setas: Movimentam os componentes selecionados em
oito posies.
Shift + Setas: Redimensiona os componentes selecionados.
Del: Exclui os componentes selecionados.
Ctrl + C: Copia os componentes selecionados.
Ctrl + V: Cola os componentes selecionados.
Ctrl + X: Recorta os componentes selecionados.

Clique com o boto da direita do mouse para obter uma lista de


propriedades extra de configurao.

6.3.3 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.

Vejamos as funes da barra de ferramentas do editor:

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 {XXIncio do Bloco X-Maker. Modificaes no sero preservadas} e finalizados em
{99-Final do Bloco X-Maker. Modificaes no sero preservadas}. XX
representa o nmero do bloco, um arquivo fonte pode ter vrios blocos (01, 02, 03,
etc).

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 sendo a
primeira vez. O projetista dever respeitar os blocos 05 e 05.
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 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.

6.3.4.9 Atribui Valores (AtribuiValoresPadrao)


Quando o usurio do projeto final pedir uma incluso de registro o evento
AtribuiValoresPadrao ser chamado, o X-Maker utilize este evento para atribuir a
funo de auto-incremento 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.
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.

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.
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.
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.
Gra_001, Gra_002, Gra_003, etc., como em todo projeto os relatrios so maioria
isso torn-se uma boa escolha.
6.4.1 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 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.
6.4.2 Filtragem

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 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.

? 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.

6.4.3 Ordenao
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 X-Maker,
proporcionar o mximo de opes e versatilidades para o projetista o nosso
maior objetivo.

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
campos no relatrio.

responsvel pela atribuio dos

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.
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.

Exemplo de Bandas.

Barra de Ferramentas Lateral

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.

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


Count(<dataset>), exemplo: [Count(DProdutos)]

listados,

sintaxe:

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>)

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>), 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>, <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:\XMaker6\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.

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.

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.

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.
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

Rotina Avulsa
Ao inserir uma rotina avulsa o boto

ficar disponvel para o projetista.

O projetista poder realizar uma codificao especifica dentro do bloco


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

6.5. 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 MS-DOS, durante a
compilao o X-Maker ir verificar 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.

A opo
fora a recompilao de todos os mdulos
do projeto
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 MS-DOS, devese 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.

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.

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 Restaurar ....

Selecione os mdulos a serem restaurados 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:\XMaker6\Projetos\Vendas\Copia, o arquivo fonte copiado
possui o mesmo nome de origem.

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.

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:
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),
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).

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].
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:
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. Mtodos Pr-definidos


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);

Funo DiretorioComBarra
Declarao
function DiretorioComBarra(NomeDir: string): string;
Descrio
Insere a ltima barra invertida ao nome do diretrio NomeDir, caso seja
necessrio.
Exemplo
Pasta := DiretorioComBarra(DirWindows);

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);
Funo RetiraHK
Declarao
function RetiraHK(S: string): string;
Descrio
Retira os caracteres & e ... de uma string S.
Exemplo
titulo := RetiraHK(mnu_clientes.Caption);
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, ;);
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
StringToArray(Azul;Branco;Amarelo, ; , Lista);
Funo DirWindows
Declarao
function DirWindows: string;
Descrio
Retorna a pasta de instalao do sistema operacional Windows.
Exemplo
Pasta := DirWindows;
Funo RetiraBrancos
Declarao
function RetiraBrancos(Str: string): string;
Descrio
Retira todos os caracteres brancos de uma varivel string Str.
Exemplo
Pasta := RetiraBrancos(DirWindows);
Funo ExecutaForm
Declarao
procedure ExecutaForm(FormClass: TFormClass; var Reference);
Descrio
Executa formulrios do tipo MDI.
Exemplo
ExecutaForm(TFormClientes,FormClientes);
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);
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) ;
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);
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);

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);
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);
Funo DataAtual
Declarao
function DataAtual: TDateTime;
Descrio
Retorna a data atual do sistema.
Exemplo
data := DataAtual;
Funo HoraAtual
Declarao
function HoraAtual: string;
Descrio
Retorna a hora atual do sistema em uma varivel string, no formato 999999.

Exemplo
hora := HoraAtual;
Funo PorExtenso
Declarao
function PorExtenso(FValor: Double): String;
Descrio
Retorna um valor inteiro ou fracionrio por extenso.
Exemplo
extenso := PorExtenso(100.50);
Funo Encript
Declarao
Encript(Encript : String): string;
Descrio
Codifica uma varivel string Encript.
Exemplo
senha := Encript(x-maker); // Retorna: qfjbl.w
Funo Decript
Declarao
function Decript(Decript : String): string;
Descrio
Decodifica uma varivel string Decript.
Exemplo
senha := Encript(qfjbl.w); // Retorna: x-maker
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
numero := StrZero(100, 5); // Retorna: 00100
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);
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);
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);

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);
Funo UltimoDiadoMes
Declarao
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));
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
Funo MascValor
Declarao
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);
Funo MascTexto
Declarao
function MascTexto(S, Mascara: String): string;
Descrio
Retorna uma varivel string S formatada Mascara.
Exemplo
Cep :=MascTexto(38010020, 99999-999);
Funo TrocaString
Declarao
function TrocaString(const S, OldPattern, NewPattern: string; Flags:
TReplaceFlags): string;
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]);
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);
Funo FracToStr
Declarao
function FracToStr(Valor: Extended): String;

Descrio
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);
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);
Funo Exponencial
Declarao
function Exponencial(N1: Extended; N2: Integer): Extended;
Descrio
Faz o clculo exponencial entre os valores N1 e N2.
Exemplo
calculo := Exponencial(5, 2);
Funo StrNumerica
Declarao
function StrNumerica(N: String) : Boolean;
Descrio
Verifica se varivel string N possui apenas nmeros.

Exemplo

ok := StrNumerica(123456);
Funo ConverteLogico
Declarao
function ConverteLogico(Valor: Boolean): string;
Descrio
Converte uma expresso lgica em uma varivel string. True = T e False = F.
Exemplo
ok := ConverteLogico(True);
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);
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.
Exemplo
Serial := SerialHD(C); // Unidade C:\
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 ...
Funo Lfill
Declarao
function LFill(aString: string; aCaracter: Char; aTamanho: integer): string;
Descrio
Retorna uma string (aString) preenchida a esquerda com o caractere "aCaracter",
o tamanho da string determinada atravs do parmetros "aTamanho"
Exemplo
x := LFill('Duzentos Reais', '#', 80);
Funo Rfill
Declarao
function RFill(aString: string; aCaracter: Char; aTamanho: integer): string;
Descrio
Retorna uma string (aString) preenchida a direita com o caractere "aCaracter", o
tamanho da string determinada atravs do parmetros "aTamanho"
Exemplo
x := RFill('Duzentos Reais', '#', 80);
Funo IIF
Declarao
function IIF(aExpressao: Boolean; aVerdadeiro, aFalso: Variant): Variant;
Descrio
Retorna o valor da varivel "aVerdadeiro" ou "aFalso" conforme o valor lgico
contido na expresso "aExpressao".
Exemplo
a := IIF(x>0, x, -1);

7.3. Mtodos de Edio


Funo RetornaAutoIncremento
Declarao
function RetornaAutoIncremento(TabelaPrincipal: TTabela; Campo: String;
Condicao: String; Qtd: Integer = 1): Variant;
Descrio
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);
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);
Funo LocalizaTabela
Declarao
function LocalizaTabela(Nome: String): TTabela;
Descrio
Localiza uma Tabela do projeto pelo nome.
Exemplo
Tabela_ed := LocalizaTabela(CLIENTES);

8. FAQ (Perguntas Freqentes)


Ao executar o X-Maker um erro gerado e a execuo cancelada, o que
fazer?
Se ao executar o X-Maker uma mensagem de erro do tipo: "Runtime error"
for apresentada e o mesmo no abrir siga as instrues abaixo:
necessrio ter um impressora (driver) disponvel no Windows no momento da
execuo do X-Maker, isso se deve ao fato do FreeReport, componente de
Gerao de Relatrios, utilizar algumas configuraes da impressora definida
como padro. Verifique se o seu equipamento possui alguma impressora instalada
e disponvel, veja abaixo as possveis causas e solues:
O equipamento no possui impressora: Instale qualquer drive de impressora no
Windows em "Painel de Controle -> Impressoras" e deixe como padro, pode ser
qualquer impressora mesmo que ela no exista fisicamente.
Utilizo impressora de uma rede local: Nem sempre uma impressora utilizada em
uma rede pode estar disponvel, instale um drive de impressora local, siga o
mesmo exemplo do caso acima.
Ao abrir ou criar num novo projeto no X-Maker 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:\XMaker6\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.

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.
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.
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 informaes armazenadas na estrutura Sistema:

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 X-Maker. Modificaes no sero preservadas}
Result := True;
{99-Final do Bloco X-Maker. Modificaes no sero preservadas}
TabGlobal.DCONTAS.Filtro.Text := 'CLI_CODIGO = 100';
end;
Exemplo de Ordenao:
function TFormRContas.AbreTabelas: Boolean;
begin
{07-Incio do Bloco X-Maker. Modificaes no sero preservadas}
Result := True;
{99-Final do Bloco X-Maker. Modificaes no sero preservadas}
TabGlobal.DCONTAS.ChaveIndice := 'CON_LANCTO Desc';
end;
* Desc = Indica que o ndice ser decrescente.
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.
Como configurar o projeto final para compartilhamento das Tabela em uma
rede?
Para configurar o uso em Rede dos projetos gerados no X-Maker,
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:\XMaker6\Exemplos\Contas\Base.Gdb
Servidor (HostName): 195.195.1.1
Ou
Servidor (HostName): NetServidor
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.
Como configurar o boto Tabelas no formulrio de Entrada de Dados?

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.
Clique no boto Tabelas e habilite a propriedade Visible na janela
Propriedades (Object Inspector).

Faa a edio do evento BtnRelac_1Click, clique em OnClick na janela


Propriedades (Object Inspector).

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.
6001 = Nmero de seqncia de identificao utilize a seqncia 6001, 6002,
6003, etc. para os demais formulrios.
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 X-Maker. 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 X-Maker. 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.
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".
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 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.
Como posso deixar um Grid de Consulta/Relacionamento Zebrado ?
Para criar um efeito visual do
Consulta/Relacionamento, utilize o evento:

tipo

"Zebrado"

no

Grid

de

"OnDrawColumnCell".
Voc poder utilizar este recurso em qualquer formulrio que possui um
"Grid
de
Consulta/Relacionamento",
faa
a
edio
do
evento
"OnDrawColumnCell" na janela "Propriedades (Object Inspector)". Faa a
codificao do evento conforme o exemplo abaixo.
Codificao do evento "OnDrawColumnCell":
{utilize o "var" para declarar variveis}
begin
{codificao...}
with TDBGrid(Sender) do
if odd(DataSource.DataSet.RecNo) then //Se for nmero impar
begin
Canvas.Brush.Color := $00DFDF00; //Cor da linha da linha
Canvas.FillRect(Rect);
DefaultDrawDataCell(Rect,Column.Field,State);
if gdFocused in state then
begin
Canvas.Brush.Color := clNavy; // Cor de seleo
Canvas.FillRect(Rect);
DefaultDrawDataCell(Rect,Column.Field,State);
end;
end;
end;

Nota:

A cor da linha de destaque definido em: Canvas.Brush.Color, no


exemplo foi utilizado a cor $00DFDF00, outras cores podem ser utilizadas,
exemplos: clBlue, clRed, clGreen, etc.
O destaque por linha, para definir o destaque por coluna faa a substituio da
condio:
if odd(DataSource.DataSet.RecNo) then
por
if odd(DataCol) then
Como posso identificar os arquivos de modelos de formulrios e relatrios?
Modelos so formulrios utilizados como base para criao de Entrada de
Dados, Relatrios, Grficos, Etiquetas e Formulrios Avulso.
A pasta bsica de localizao dos Modelos fica localizada em
C:\XMaker6\Delphi considerando que a instalao do X-Maker seja em
"C:\XMaker6". Os fontes contidos nesta pasta "Delphi" o ponto de partida para
criao ou restaurao de um Projeto, quando um novo projeto criado ou algum
mdulo restaurado o X-Maker busca dessa pasta.
O Projetista pode criar sua prpria pasta bsica em "Configurao ->
Modelos", e em "Assistente -> Propriedades" escolher qual pasta de modelos a
ser utilizada.
Modelos bsicos:
Modelo1.Pas: Entrada de Dados (MDI)
Modelo2.Pas: Entrada de Dados Filho
Modelo3.Pas: Relatrio
Modelo4.Pas: Grfico
Modelo5.Pas: Avulso MDI
Modelo6.Pas: Avulso
Modelo7.Pas: Etiqueta
Para editar ou criar um modelo abra qualquer projeto no X-Maker, na barra
de ferramentas clique no boto: Formulrios do Projeto, uma janela ser
apresentada com uma lista de formulrios do projeto, clique no boto Modelos
Procure o Modelo desejado, como exemplo abra o arquivo Modelo1.Pas, com o
modelo em edio o projetista poder alterar e salvar ou em "Arquivo -> Salvar
Como Modelo" criar um novo modelo. Para exemplo altere a propriedade de algum
objeto (tamanho, cor, etc) apenas para identificar o mesmo ao criar um novo
formulrio com base neste modelo e depois salve o Modelo1.Pas como Teste.Pas
("Arquivo -> Salvar Como Modelo").
Pronto o novo Modelo est criado, no layout do formulrio clique na aba
"Cdigo", verifique que o mesmo possui a unit com o nome de "XMakerModelo" e
o formulrio como "FormXMakerModelo", no altere esses nomes, isso identifica o
arquivo como Modelo.
Com o Modelo Criado v em "Assistente -> Formulrios" e crie um novo
formulrio de "Entrada de Dados", em "Modelos" duas opes sero listadas:
Modelo1 e Teste, escolha o Modelo Teste.

Toda personalizao na edio ou criao de Modelos deve ser realizada


com os devidos cuidados, erros de compilao podem ser gerados, os modelos de
"Entrada de Dados" so complexos e existem muitos vnculos entre os objetos,
no remova ou altere um objeto sem realizar uma pesquisa no cdigo de seus
vnculos.

9.DICAS DE PROGRAMAO
Executar link de e-mail ou URL
ShellExecute(0, nil, pchar('mailto:xmaker@xmaker.com.br'), nil, nil,
SW_SHOWNORMAL);
ShellExecute(0, nil, pchar('http://www.xmaker.com.br'), nil, nil, SW_MAXIMIZE);
Obs.: Declare em "uses" a unit ShellAPI
Enviar dados para o Excel
Declare uma varivel do tipo "OleVariant", exemplo:
...
{ Private declarations }
excel: OleVariant;
public
{ Public declarations }
end;
...
Codificao:
try
excel:=CreateOleObject('Excel.Application');
excel.Workbooks.add(1); // Para "nova" planilha ...
//excel.Workbooks.open('c:\XMaker6\projetos\excel\exemplo.xls'); // Abrir
planilha j existente
except
Application.MessageBox ('Verso do MsExcel'+'Incompatvel','Erro',MB_OK+MB_ICONEXCLAMATION);
exit;
end;
excel.cells[05, 03] := 5999.99; // Atribui o valor 5999.99 na linha 05, coluna 03
excel.columns.AutoFit;
excel.visible:=true;

Utilizar componentes no suportados pelo X-Maker em formulrios


Os componentes de terceiros no suportados pelo Layout de formulrio do
X-Maker podem ser utilizados atravs de codificao direta no fonte, para exemplo
iremos implementar a chamada do componente RDPrint
(http://www.deltress.com.br), exemplo:
{utilize o "var" para declarar variveis}
var
RdPrint: TRDPrint;
Linha: Integer;
begin
{codificao...}
RdPrint := TRDPrint.Create(Self);
try
with RdPrint do
begin
OpcoesPreview.Preview := True; // Habilita a visualizao do Relatrio
abrir; // Inicia a montagem do relatrio...
TabGlobal.DATIVIDADES.First;
Linha := 0;
while not TabGlobal.DATIVIDADES.Eof do
begin
inc(Linha);
imp(Linha, 01, StrZero(TabGlobal.DATIVIDADES.ATI_CODIGO.Conteudo, 04));
imp(Linha, 06, TabGlobal.DATIVIDADES.ATI_DESCRICAO.Conteudo);
TabGlobal.DATIVIDADES.Next;
end;
Fechar; // Fecha a montagem do relatrio...
end;
finally
RdPrint.Free;
end;
end;
O componente "RDPrint" um componente no visual, e este tipo de
componente no necessita de linha, coluna, altura e largura, pois no ser
visualizado pelo usurio. Os componentes visuais necessitam dessas
informaes, aps o "Create" faa a atribuio, exemplo:
Label3D := TLabel3D.Create(Self);
with Label3D do
begin
Parent := Panel1; // O componente ser criado dentro do componente "Panel1"
Left := 5;

Top := 10;
Width := 30;
Height := 16;
end;
Obs. Os componentes utilizados devem ser declarados em "uses" do formulrio.
Filtrar Dia/Ms/Ano em SQL (Interbase/Firebird)
Utilize o mtodo "Extract" em uma expresso SQL, exemplos:
(Extract(month from Atendimentos.ATE_DATA) = 11) and (Extract(year from
Atendimentos.ATE_DATA) = 2005)
Em relatrio o projetista pode utilizar os valores de componentes de uma
caixa de dilogo, exemplo:
(Extract(month from Atendimentos.ATE_DATA) = :XNumEdit1) and (Extract(year
from Atendimentos.ATE_DATA) = :XNumEdit2)
O projetista poder extrair o dia tambm, exemplo:
Extract(day from Atendimentos.ATE_DATA) = 08)
Importar registros de um arquivo texto
Exemplo de utilizao dos mtodos "assignfile (Delphi)" e "StringToArray
(X-Maker)".
{utilize o "var" para declarar variveis}
var
f: textfile;
i: Integer;
Linha: String;
Lista: TStringList;
begin
{codificao...}
if Not FileExists(Sistema.Pasta + 'Bairros.txt') then
begin
MessageDlg('Arquivo no encontrado!' + ^M+^M + Sistema.Pasta + 'Bairros.txt',
mtWarning, [mbOk], 0);
exit;
end;
if MessageDlg('Importar arquivo de Bairros?', mtConfirmation, [mbYes, mbNo],
0) <> mrYes then
exit;
if CheckBox1.Checked then // Limpa a Tabela se o componente "CheckBox1"
estiver habilitado
TabGlobal.DCEP_Bairros.LimparTabela;
Lista := TStringList.Create;
assignfile(f, Sistema.Pasta + 'Bairros.txt');
reset(f);
try

readln(f, Linha);
while not Eof(f) do
begin
readln(f, Linha);
StringToArray(Linha, ';', Lista);
TabGlobal.DCEP_Bairros.Inclui(Nil);
TabGlobal.DCEP_Bairros.BAI_ID.Conteudo := StrToIntDef(Lista[0], 0);
TabGlobal.DCEP_Bairros.BAI_NOME.Conteudo := Lista[3];
TabGlobal.DCEP_Bairros.BAI_UF.Conteudo := Lista[1];
TabGlobal.DCEP_Bairros.BAI_LOCALIDADE.Conteudo :=
StrToIntDef(Lista[2], 0);
TabGlobal.DCEP_Bairros.Post;
Application.ProcessMessages;
end;
finally
CloseFile(f);
Lista.Free;
Application.ProcessMessages;
TabGlobal.DCEP_Bairros.Transaction.CommitRetaining;
Application.ProcessMessages;
end;
end;
Exportao de registros para arquivo texto
Exemplo de leitura e gravao de registros em arquivo texto.

var
f: textfile;
i: Integer;
Linha: String;
Campo: TAtributo;
Nome, Separador: String;
begin
Separador := ';' // Separar campos por ; (ponto-e-vrgula)
if MessageDlg('Exportar Bairros?', mtConfirmation, [mbYes, mbNo], 0) <> mrYes
then
exit;
Nome := 'CEP_Bairros.txt';
InputQuery('Bairros', 'Nome do Arquivo:', Nome);
if Trim(Nome) = '' then
exit;
TabGlobal.DCEP_Bairros.Filtro.Clear;
TabGlobal.DCEP_Bairros.AtualizaSql;
assignfile(f, Sistema.Pasta + Nome);
rewrite(f);
while not TabGlobal.DCEP_Bairros.Eof do
begin

Application.ProcessMessages;
Linha := '';
for I:=0 to TabGlobal.DCEP_Bairros.Campos.Count-1 do
begin
Campo := TAtributo(TabGlobal.DCEP_Bairros.Campos[I]);
if not Campo.Extra then
Linha := Linha + Campo.Valor.AsString + Separador;
end;
if Trim(Linha) <> '' then // Retira o ltimo separador da linha
Linha := Copy(Linha, 01, Length(Linha)-1);
writeln(f , Linha);
TabGlobal.DCEP_Bairros.Next;
end;
CloseFile(f);
MessageDlg('Arquivo Gerado: '+Sistema.Pasta + Nome, mtInformation, [mbOk],
0);
Application.ProcessMessages;
end;
Ler linhas de um campo do tipo "Memo"
Para ler o contedo de um campo "Memo" utilize a propriedade "Conteudo"
do objeto, essa propriedade do tipo "TStringList", exemplo:
var
I: Integer;
begin
for I:=0 to TabGlobal.DCLIENTES.Obs.Conteudo.Count-1 do
ShowMessage(TabGlobal.DCLIENTES.Obs.Conteudo[I]);
end;
Campo "Calculado" para mostrar a primeira linha de um campo "Memo"
Campos do tipo "Memo" no so visualizados em "Grid" de Consulta, uma
alternativa criar um campo "Calculado" (Alfanumrico) e atribuir uma frmula
para capturar a primeira linha do "Memo", exemplo:
{ a varivel "Result" dever conter o resultado, exemplo:
I := TabGlobal.DAtendimentos.ATE_RESUMO.Conteudo + 'ABC';
Result := I; }
if
TabGlobal.DAtendimentos.ATE_OBSERVACAO.Conteudo.Count > 0 then
Result := TabGlobal.DAtendimentos.ATE_OBSERVACAO.Conteudo[0]
else
Result := '';

Associar "DataSource" com tabelas do projeto


Para associar um "DataSource" com qualquer tabela do projeto utilize a
propriedade "DataSet", exemplo:
DataSource.DataSet := TabGlobal.DCEP_Logradouros;
Faa a codificao no evento "FormShow" ou "FormCreate" do formulrio.
Agrupar e totalizar registros em SQL (Interbase/Firebird)
Para agrupar registro em SQL utilize o comando "Group By", exemplo:
Select VENDAS.CLI_CODIGO AS CLI_CODIGO, SUM(TOTAL) AS
TOTAL_GERAL FROM VENDAS GROUP BY CLI_CODIGO
Esse tipo de SQL pode ser utilizado em relatrios/grficos, na definio do
relatrio clique no boto: SQL e digite a instruo desejada, o exemplo acima
totaliza o campo "Total" por Cliente, o projetista tem a liberdade de criar as
instrues em SQL.
Utilizao de Sub-Select's em Select (Interbase/Firebird)
O Interbase/Firebird permite a utilizao de Sub-Select's em um Select,
para exemplificar a sua utilizao iremos tomar por base o tpico anterior "Agrupar
e totalizar registros em SQL ...", para mostrar o nome do Cliente iremos utilizar um
sub-select, exemplo:
Select VENDAS.CLI_CODIGO AS CLI_CODIGO, (Select CLIENTES.CLI_NOME
AS CLI_NOME From CLIENTES Where CLIENTES.CLI_CODIGO =
VENDAS.CLI_CODIGO) AS CLI_NOME, SUM(TOTAL) AS TOTAL_GERAL
FROM VENDAS GROUP BY CLI_CODIGO ORDER BY 2
A totalizao por Cliente ser ordenada pelo nome do Cliente, a instruo
"Order By" permite a utilizao do nmero da coluna, o nmero dois (2) nesse
exemplo a coluna "CLI_NOME"

Você também pode gostar