manual xmaker

150
1 MANUAL DO USUÁRIO http://www.xmaker.com.br Modular Software Uberaba – M.G.

Upload: antonio-soares-coqueiro

Post on 10-Dec-2015

70 views

Category:

Documents


24 download

DESCRIPTION

Xmaker tutorial

TRANSCRIPT

Page 1: Manual XMaker

1

MANUAL DO USUÁRIO

http://www.xmaker.com.br

Modular Software Uberaba – M.G.

Page 2: Manual XMaker

2

COPYRIGHT

Todos os direitos reservados. Nenhuma parte deste material poderá ser reproduzida, transmitida, transcrita, armazenada em meio recuperável ou traduzida para outras línguas, no todo ou em parte, em qualquer forma ou por quaisquer meios, seja eletrônico, mecânico, magnético, ótico ou manual, sem o consentimento prévio e por escrito da Modular software. A Modular Software reserva-se, outrossim, o direito de revisar e fazer mudanças periódicas no conteúdo deste manual, sem a obrigação de notificar a quaisquer pessoas ou instituições. Alguns nomes de produtos que aparecem neste manual são marcas registradas de seus respectivos proprietários.

Page 3: Manual XMaker

3

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, prática e padronizada. Sua principal função é a manipulação de banco de dados para armazenamento de informações de qualquer natureza, agregando todos os recursos possíveis e atuais do ambiente visual e com acesso nativo as bases de dados, cria projetos altamente profissionais e confiáveis.

Os arquivos fontes são gerados na linguagem Delphi 5, 6 ou 7, sendo, portanto necessário que o usuário tenha instalado em seu equipamento a versão Professional ou Enterprise do Delphi. Somente essas versões possuem os recursos disponíveis para acesso as bases de dados utilizadas pelo X-Maker, são elas: InterBase 5.x/6.x, FireBird 1.x, SyBase, MS-SQL Server, MySql 3.20/3.23/4.00, PostGreSql 6.5/7.2 e ADO (Access, Paradox, dBase, Oracle, etc.),. Outras bases de dados poderão ser utilizadas em futuras versões desse produto, temos como meta a compatibilidade com os diversos gerenciadores de banco de dados disponíveis no mercado. As versões disponíveis do X-Maker são:

• X-Maker – Free Edition: Destinada aos novos usuários que desejam conhecer essa ferramenta, essa versão trás os mesmos recursos da versão Professional, porém, é limitada para pequenos projetos. Existe um limite de definições, que são: Um Banco de Dados, doze Tabelas, doze Formulários, doze Relatórios, doze Etiquetas e doze Gráficos. Não há limitações de criação de projetos.

Page 4: Manual XMaker

4

• X-Maker – Professional - Individual: Destinada aos profissionais que irão utilizar o X-Maker como ferramenta oficial de desenvolvimento.

• X-Maker – Professional - Corporativo: Destinada ao trabalho em grupo, compartilha os projetos em uma rede local, permitindo que vários profissionais trabalhem em um mesmo projeto ao mesmo tempo.

Agilidade, praticidade e confiabilidade são os pontos

principais na construção de aplicações através dessa ferramenta, seja ela de pequena ou de grande complexidade. É possível criar um projeto sem nenhum esforço de programação.

As Empresas desenvolvedoras e organizações encontrarão nessa ferramenta um ganho significativo de produção e padronização, a redução de custos de desenvolvimento e manipulação de projetos será uma meta alcançada, outro ponto importante é a independência de um desenvolvedor específico, o trabalho em grupo será valorizado.

Os profissionais liberais encontrarão todos os recursos necessários para uma produção mais ativa e dinâmica na criação de softwares. Para aqueles que não se consolidaram no desenvolvimento de aplicações em ambiente Windows, poderão iniciar a migração sem traumas ou incertezas.

Pensando no crescimento e aperfeiçoamento dos estudantes, instrutores e professores da linguagem de programação Delphi, a versão Free Edition irá proporcionar um novo universo de conhecimento e experiências na criação de projetos.

1.1. Pré-requisitos

As exigências mínimas de software e hardware para que seu sistema execute corretamente o X-Maker são:

Page 5: Manual XMaker

5

• Microsoft Windows (98 ou versão posterior). • Delphi 5, 6 ou 7 na versão Professional ou Enterprise

instalado na máquina. • Microcomputador com processador Pentium (ou

superior), 64 megabytes de memória, 120 megabytes de espaço livre em disco.

• Um adaptador de vídeo, mouse suportado pelo Windows.

1.2. Instalando o X-Maker

A instalação do X-Maker em seu computador é feita pelo programa Instalar, gravado no Cd-Rom de "Instalação" ou através do arquivo disponível em nosso site para download.

1.2.1 Para instalar o X-Maker através do Cd-Rom:

1. Insira o Cd-Rom de “Instalação” do X-Maker. 2. O programa Instalar será inicializado automaticamente.

Caso a inicialização não seja inicializada automaticamente, dê um duplo clique no ícone “Meu Computador” no Desktop e um duplo clique na unidade de Cd-Rom, execute o programa Instalar.

3. Siga as instruções mostradas na tela.

1.2.2 Para instalar o X-Maker através do arquivo de download:

1. Faça o download do arquivo em nosso site http://www.xmaker.com.br na seção de Downloads.

2. Execute o arquivo em seu computador. 3. Siga as instruções mostradas na tela.

Page 6: Manual XMaker

6

1.2.3 Pasta de Instalação:

A pasta de Instalação do X-Maker padrão é – C:\XMAKER3 - sugerimos que esta pasta seja mantida. Esta recomendação está relacionada a uma limitação do sistema operacional relativa ao comprimento máximo de linhas de comando executado via MS-DOS, pois a compilação do projeto pelo X-Maker se faz através de linhas de comandos do MS-DOS. Recomenda-se que a nova pasta esteja localizada imediatamente abaixo da pasta raiz escolhida, Exemplos: C:\XMaker3 - D:\XMaker3 – F:\Xmaker3 - …

1.2.4 FireBird:

O FireBird é o gerenciador de banco dados utilizado pelo X-Maker. Sua instalação é necessária para o funcionamento correto do X-Maker. Caso o InterBase 6.x ( ou superior ) esteja instalado em seu computador a instalação do FireBird não será necessária, por ser compatível com o FireBird. Qualquer versão do Interbase inferior a 6.x deverá ser desinstalada antes da instalação do FireBird.

Page 7: Manual XMaker

7

2. INTERFACE DO X-MAKER

Através de uma interface prática e amigável é possível construir um aplicativo através de 06 passos intuitivamente coordenados. A seguir iremos dar um enfoque geral das opções disponíveis no menu principal, barra de ferramentas e barra de assistente.

Visão geral:

Page 8: Manual XMaker

8

2.1. Menu Principal do X-Maker

• Arquivo: Contêm as opções para criação e abertura de projetos e edição de arquivos fontes.

• Editar: Comandos básicos de manipulação dos arquivos fontes abertos (área de transferências, pesquisas, substituições e posicionamentos).

• Exibir: Configuração do ambiente de trabalho e utilitários para o projeto (diário de anotações, calendário e calculadora).

• Projeto: Opções de definições do projeto (Propriedades, Tabelas, Formulários, Relatórios e Menu Principal).

• Fontes: Restauração de módulos, compilação e execução do projeto.

• Configuração: Configuração dos parâmetros de compilação, propriedades do editor e definição de campos predefinidos.

• Ajuda: Acesso à ajuda do X-Maker, Delphi e informações complementares.

2.2. Barra de Ferramentas

Novo Projeto: Permite a criação de um novo projeto.

Page 9: Manual XMaker

9

Abrir Projeto: Faz a abertura de projetos já existentes.

Fechar Projeto: Fecha o projeto que esteja aberto.

Novo Arquivo: Cria um novo arquivo fonte para edição.

Abrir Arquivo: Faz a abertura de um arquivo fonte já existente.

Salvar Arquivo (F2): Salva as modificações realizadas em um arquivo fonte em edição.

Salvar Todos: Salvam as modificações realizadas em todos os arquivos fontes em edição.

Fechar Arquivo: Fecha um arquivo fonte em edição.

Propriedades: (1º Passo) Define as propriedades do projeto, tais como: Título, Empresa Projetista, Programadores, Analistas, versão, data de início, ícone e configurações adicionais.

Tabelas: (2º Passo) Definição dos bancos de dados, tabelas, campos, índices, integridades, relacionamentos, processos diretos/inversos e lançamentos.

Formulários: (3º Passo) A manipulação dos registros é realizada através de formulários de Entrada de Dados, a montagem do Layout não será mais problema, com recursos exclusivos o X-Maker irá facilitar todo o processo de criação através da Auto Formatação e drag and drop (arrasta e solta) dos componentes inseridos no formulário.

Relatórios: (4º Passo) A extração de informações é realizada através de relatórios, etiquetas e gráficos. Com um

Page 10: Manual XMaker

10

poderoso editor de relatórios esses processos serão obtidos de forma simples e eficiente.

Menu: (5º Passo) Consiste na definição das chamadas dos formulários e relatórios criados.

Compilar: (6º Passo) É parte final de criação do projeto, todos os módulos criados e personalizados serão compilados para a geração do executável final.

Executar: Executa o projeto previamente compilado.

Delphi: Executa o Delphi, conforme a versão definida na propriedade do projeto e abre o projeto para livre manipulação.

Diário: Possibilita ao projetista a realizar anotações e lembretes que serão vinculados ao projeto.

2.3. Barra de Assistente

• Propriedades: (1º Passo) Define as propriedades do projeto, tais como: Título, Empresa Projetista, Programadores, Analistas, versão, data de início, ícone e configurações adicionais.

• Tabelas: (2º Passo) Definição dos bancos de dados, tabelas, campos, índices, integridades, relacionamentos, processos diretos/inversos e lançamentos.

• Formulários: (3º Passo) A manipulação dos registros é realizada através de formulários de Entrada de Dados, a montagem do Layout não será mais problema, com

Page 11: Manual XMaker

11

recursos exclusivos o X-Maker irá facilitar todo o processo de criação através da Auto Formatação e drag and drop (arrasta e solta) dos componentes inseridos no formulário.

• Relatórios: (4º Passo) A extração de informações é realizada através de relatórios, etiquetas e gráficos. Com um poderoso editor de relatórios esses processos serão obtidos de forma simples e poderosa em recursos.

• Menu: (5º Passo) Consiste na definição das chamadas dos formulários e relatórios criados.

• Compilar: (6º Passo) É parte final de criação do projeto, todos os módulos criados e personalizados serão compilados para a geração do executável final.

Page 12: Manual XMaker

12

3. CONCEITOS BÁSICOS

O X-Maker utiliza alguns conceitos básicos na definição de projetos, algum desses conceitos já dever ser de seu conhecimento, com pequenas variações de nomes ou definições, a compreensão dos mesmos facilita a utilização da ferramenta.

3.1. Banco de Dados

É a estrutura que irá armazenar uma coleção de Tabelas, a sua definição é necessária antes da definição de qualquer Tabela, em Propriedades do Projeto é possível escolher o gerenciador de Banco de Dados que será utilizado, a definição do Banco de Dados estará subordinada a essa informação.

Login e senha de acesso, parâmetros de conexão, nome do

Banco de Dados e localização são definidos conforme informações 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

Através de um ou mais campos nós formamos a definição de um Tabela, essas Tabelas irão conter uma estrutura predefinida de informações para que o projeto final possa criar as Tabelas em disco para armazenar todos os registros de um sistema.

As Tabelas são constituídas de campos, chave primária e

chaves secundárias (índices). Uma chave primária é definida por um ou mais campos, sendo que seus valores não poderão ser

Page 13: Manual XMaker

13

duplicados na inclusão de registros. Como exemplo podemos citar uma tabela de cadastro de clientes, ao cadastrar o código 0001 esse código não poderá ser mais utilizado por outro cliente enquanto o mesmo existir.

3.3. Campos

São utilizados na definição da estrutura das tabelas. Os campos são definidos através de um conjunto de atributos, tais como: nome, tipo, tamanho, tipo de edição, máscara, título, etc.

As informações contidas na definição dos campos são de

extrema importância, pois os componentes que serão utilizados na formatação da tela de “Entrada de Dados” estão subordinados aos atributos dos campos, principalmente o atributo de “Tipo de Edição”.

3.4. Campo Calculado

É um tipo de campo especial, por tratar-se de um campo virtual, esse campo não é gravado fisicamente na Tabela. A utilização desse tipo de campo é aconselhável para demonstração de cálculos que dependem de outros campos e que são variáveis. Como exemplo podemos citar um campo de valor total de produtos, esse campo conterá um cálculo de multiplicação entre os campos de quantidade e preço unitário.

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

Page 14: Manual XMaker

14

existem registros que não podem ser excluídos se estiverem sendo referenciados em outras tabelas. O X-Maker proporciona os seguintes relacionamentos:

• Relacionamento: Trata-se de um relacionamento simples, ou seja, não será utilizado para criação de integridade referencial. Esse tipo de relacionamento permite a utilização de campos “Extras”, campos de tabelas relacionadas poderão 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 poderão ser agregados a Tabela de Vendas. Isso não é uma duplicidade de informação ou campos, os campos escolhidos da Tabela de Clientes não serão gravados fisicamente na Tabela de Vendas.

• Restrita: Somente os registros que não estivem sendo

referenciados em outras Tabelas poderão ser excluídos. Exemplo: A Tabela de Clientes possui uma referência da Tabela de Atividades Comerciais, ao excluir uma Atividade Comercial o sistema irá checar se a mesma não 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 serão excluídos também. Exemplo: A Tabela de Notas Fiscais possui uma Tabela relacionada de Itens da Nota Fiscal, o campo de relacionamento é o número da Nota Fiscal, ao excluir uma Nota Fiscal todos os registros da Tabela de Itens da Nota Fiscal que possuírem o mesmo número da Nota Fiscal serão excluídos.

Page 15: Manual XMaker

15

3.6. Processos Diretos/Inversos

Os processos diretos/inversos permitem a atualização das tabelas relacionadas, o processo direto está vinculado à inclusão e modificação dos registros e o processo inverso está vinculado à exclusão e modificação. Como exemplo podemos citar uma Tabela de Vendas que deverá atualizar a Tabela de Estoque, ao vender um produto a quantidade do estoque é baixada (processo direto), ao excluir um produto vendido à quantidade do estoque é estornada (processo inverso).

3.7. Dicionário de Dados

O dicionário de dados é um poderoso recurso, pois possibilita ao projetista compartilhar de uma mesma definição de Banco de Dados, Tabelas, Campos, Índices e Relacionamentos. O projetista poderá dividir o programa em vários projetos, ao definir cada novo projeto o “Dicionário de Dados” poderá ser habilitado, o primeiro projeto criado será o principal, todas as definições de dados serão armazenados e compartilhados a partir do mesmo.

Page 16: Manual XMaker

16

4. CONTEÚDO DAS PASTAS

A partir da pasta de instalação do X-Maker, esta pasta é indicada pelo usuário na instalação (a pasta padrão é C:\XMaker3), outras pastas são criadas para diversas finalidades.

• C:\XMaker3\Comp : Contém os pacotes de componentes utilizados nos projetos, os pacotes são separados por pastas, para a linguagem Delphi você encontrará a pasta Delphi, a medida que outras linguagem forem sendo suportadas outras pastas serão adicionadas.

• C:\XMaker3\Delphi : Contém os arquivos fontes utilizados na criação de um novo projeto, todos os arquivos são copiados para pasta do novo projeto, esses arquivos podem ser personalizados pelo projetista.

• C:\XMaker3\Ajuda: Contém os arquivos de ajuda interna do X-Maker.

• C:\XMaker3\Exemplos : Contém os projetos de exemplos para estudo e exemplificação da utilização do X-Maker, os projetos são separados por pastas.

• C:\XMaker3\Imagem : Contém uma coletânea de mais de 700 bitmaps (bmp) e ícones (ico), para utilização nos projetos.

• C:\XMaker3\Projetos : Esta pasta é criada para armazenamento de novos projetos, inicialmente não possui nenhum arquivo, serve apenas como uma

Page 17: Manual XMaker

17

sugestão de pasta de localização dos projetos, sua utilização é opcional.

• C:\XMaker3\Firebird : Contém o instalador do Firebird 1.5 e o utilitário IBConsole, esse utilitário é utilizado para manipular tabelas criadas pelo Firebird.

Page 18: Manual XMaker

18

5. CONFIGURANDO O X-MAKER

Uma configuração padrão acompanha o X-Maker na sua instalação, essa configuração pode ser alterada a qualquer momento pelo projetista. Através do X-Maker é possível compilar e gerar o executável do projeto, para isso é necessário informar a localização do compilador do Delphi e os parâmetros adicionais, em Configurações do Menu Principal existe uma opção para cada versão do Delphi.

A compilação e criação do executável do projeto estão totalmente vinculadas à configuração correta do compilador e parâmetros adicionais.

Page 19: Manual XMaker

19

• Compilador: Informe a localização (path) e o

executável responsável pela compilação, utilize o compilador DCC32.EXE.

• Parâmetros: Os parâmetros adicionais são utilizados pelo compilador (DCC32.EXE) é possível realizar várias configurações extras de compilação, a opção /U é utilizada para informar a localização de componentes extras.

• Ajuda: Informe a localização (path) e o arquivo de ajuda do Delphi, isso torna possível à visualização da ajuda do próprio Delphi dentro do X-Maker.

5.1. Compilando e Executando pelo Delphi

É possível compilar e executar o projeto diretamente no Delphi, para isso é necessário instalar os componentes utilizados nos projetos.

Para instalar os componentes do X-Maker no Delphi (5, 6

ou 7) deve-se executar o Delphi e seguir os seguintes passos:

• Menu File: Clique na opção Open e localize a pasta de instalação do X-Maker, acesse a pasta Comp\Delphi – “Exemplo: C:\XMaker3\Comp\Delphi “.

• Componente do FreeReport: Abra o arquivo correspondente a versão do Delphi.

o FREEREP5.DPK: Free Report para Delphi 5. o FREEREP6.DPK: Free Report para Delphi 6. o FREEREP7.DPK: Free Report para Delphi 7.

Page 20: Manual XMaker

20

• Instalando: Clique no botão Install. Ao fechar a janela de instalação confirme qualquer mensagem de confirmação de atualização.

• Componente do X-Maker: Abra o arquivo correspondente a versão do Delphi.

o XMaker5.DPK: X-Maker para Delphi 5. o XMaker6.DPK: X-Maker para Delphi 6. o XMaker7.DPK: X-Maker para Delphi 7.

• Instalando: Clique no botão Install. Ao fechar a janela de instalação confirme qualquer mensagem de confirmação de atualização.

• Finalizando: Acesse o menu do Delphi Tools\Environment Options selecione a aba “Library” no campo “Library Path”, verifique se existe o seguinte path “C:\XMaker3\Comp\Delphi” (C:\XMaker3 –Corresponde a pasta de instalação do X-Maker) se não existir faça a inclusão do mesmo.

5.2. Propriedades do Editor

Essa opção fica disponível quando algum arquivo fonte fica aberto. É possível personalizar algumas propriedades do editor.

Page 21: Manual XMaker

21

• Auto Identificação: Permite que o próprio Editor identifique o tipo de arquivo está sendo aberto para o tratamento visual adequado.

• Arrastar Selecionado: Áreas selecionadas no texto poderão ser arrastadas para outros pontos no próprio texto.

• Converte Tabs para Espaços: Ao pressionamento da tecla TAB a quantidade de espaços será convertida para o caractere de espaço.

• Scroll em Final de Linha: Ao posicionar o cursor na última linha um rolamento é realizado automaticamente para uma melhor visualização do texto.

Page 22: Manual XMaker

22

• Tamanho de um TAB: Informe a quantidade de espaços que será dado ao pressionamento da tecla TAB.

• Barra Visível: Visualização da barra lateral no Editor, nesta barra é mostrado o número de cada linha no texto.

• Mostra Nº de Linhas: Mostra o número de linhas na barra lateral do editor.

5.3. Campos Predefinidos

O X-Maker traz alguns campos predefinidos em sua instalação, esses campos são utilizados na definição de Tabelas. Os campos predefinidos auxiliam e agilizam o processo de definição.

Page 23: Manual XMaker

23

6. CONHECENDO AS ETAPAS DE DEFINIÇÃO DE UM PROJETO

Para o uso correto da ferramenta é necessário conhecer todas as etapas de definição, o domínio das funcionalidades de cada objeto disponível permite uma segurança muito grande para o projetista. A barra de Assistente do X-Maker contém as 06 etapas (passos) de criação de um projeto, sua utilização torna-se totalmente intuitiva e prática, a Barra de Ferramentas e o Menu Principal possui os mesmos atalhos da barra de Assistente.

Page 24: Manual XMaker

24

Barra de Ferramentas

Menu Principal

Page 25: Manual XMaker

25

6.1. 1º Passo – Propriedades do Projeto

Este é o primeiro passo para criação de um projeto, é destinado à personalização do projeto.

• Data no Formato Século: A visualização dos campos tipo Data em Entrada de Dados e Relatórios poderão ser vistos no formato “dd/mm/aa” ou “dd/mm/aaaa” (formato século), vale lembrar que essa visualização está

Page 26: Manual XMaker

26

subordinada a configuração do Windows em Painel de Controle “Opções Regionais e de Idioma”.

• Confirma Saída: Uma mensagem de confirmação de saída será executada ao finalizar o projeto final, a mesma poderá ser desabilitada pelo projetista. O usuário do projeto final também poderá alterar essa opção no menu Exibir em “Ambiente”.

• Múltiplas Instâncias: Permite que o executável seja executado mais de uma vez em um mesmo microcomputador ao mesmo tempo.

• Hint Estilo Balão: Exibe as mensagens na forma de balão. O usuário final poderá alterar essa opção no menu Exibir em “Ambiente”.

• Menu Estilo XP: Exibe o menu no padrão do Windows XP, cores e formato. O usuário final poderá alterar essa opção no menu Exibir em “Ambiente”.

• Controle de Acesso: Habilita o controle de acesso ao projeto.

• Selecionar Empresa: Permite ao usuário final selecionar a Empresa Usuária na abertura do programa. O usuário final poderá alterar essa opção 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.

Page 27: Manual XMaker

27

• Banner Vertical: Exibe um banner lateral em degrade com o título do projeto.

• Senha Inicial: Para projetos que irão utilizar o Controle de Acesso é possível definir uma senha para acesso inicial, o usuário padrão é MASTER.

• Linguagem: Define a linguagem e versão a ser utilizada para compilação.

• Banco de Dados: Define o banco de dados a ser utilizado pelo projeto.

• Conexão: Componente de conexão com o banco de dados.

• Compartilhamento – Dicionário de Dados: Habilita a pasta de localização do dicionário do projeto.

• Compartilhamento – Pasta do Dicionário: Informe a pasta de localização do dicionário do projeto. Como padrão o X-Maker utiliza a mesma pasta do projeto.

• Compartilhamento – Servidor do Dicionário: Informe o servidor utilizado para armazenamento do dicionário do projeto, essa opção é somente para a versão corporativa. Exemplo: Servidor, 195.195.1.1, etc.

• Compartilhamento – Pasta do Projeto no Servidor: Informe a pasta de localização das definições do projeto, é a pasta física do servidor.

• Compartilhamento – Servidor do Projeto: Informe o servidor utilizado para armazenamento das definições do

Page 28: Manual XMaker

28

projeto, essa opção é somente para a versão corporativa. Exemplo: Servidor, 195.195.1.1, etc.

• Apresentação (2): Define uma imagem de apresentação durante a inicialização e abertura do projeto final.

• Imagem de Fundo (3): Define uma imagem de fundo para o projeto final, o usuário poderá alterar a imagem no projeto final através do Menu Principal Exibir em “Ambiente”.

6.2. 2º Passo – Tabelas

Este é o segundo passo para a criação de um projeto, as Tabelas são estruturas formadas por campos, chave primária e,

Page 29: Manual XMaker

29

opcionalmente, por chaves secundárias. Outros recursos de definição são os relacionamentos de integridade referencial, exclusões em cascatas e restritas, processos diretos/inversos e lançamentos.

Definição dos botões e teclas de atalho:

Salva a definição em edição, uso genérico. Cancela a definição em edição, uso genérico. Insere uma nova definição, tecla de atalho: “Insert”, uso

genérico. Exclui uma definição, tecla de atalho: “Delete”, uso

genérico. Importa estruturas já definidas (tabelas, campos,

índices, integridades, relacionamentos, processos e lançamentos) em outras bases de dados ou outros projetos.

Importa definições de campos do projeto em edição. Possibilita um maior ganho de produtividade, campos já definidos poderão ser reaproveitados.

Edição de campo “Calculado”, todo campo “Calculado” possui uma codificação definida pelo próprio projetista.

Define a chave estrangeira dos campos com o tipo de edição: “Lista Externa (Estrangeira)”. Personaliza o estilo de pesquisa e campos a serem visualizados.

Insere campos das tabelas relacionadas, campos de tabelas relacionadas poderão 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 poderão ser agregados a Tabela de Vendas. Isso não é uma duplicidade de informação ou campos, os campos escolhidos da Tabela de

Page 30: Manual XMaker

30

Clientes não serão gravados fisicamente na Tabela de Vendas.

Define a ordem de apresentação dos campos dentro das opções de “Consulta” dos formulários de “Entrada de Dados”.

De um duplo clique ou tecle F2 para editar qualquer definição já existente.

Dica:

Para forçar uma geração dos arquivos fonte das Tabelas,

selecione qualquer Tabela e clique F2 para entra no modo de edição. Ao fechar a janela de “Tabelas & Campos” os arquivos fonte serão regerados.

6.2.1 Definindo Atributos da Tabela

Page 31: Manual XMaker

31

Através dessa janela é possível definir todos os atributos de uma Tabela.

• Nome: Informe o nome da Tabela, esse nome será usado para criação do arquivo fonte (unit) e para criação da Tabela dentro do Banco de Dados.

• Nome Físico da Tabela: É possível criar várias

instâncias 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 Físico: “Clientes”, isso indica que não será criada fisicamente uma tabela no banco de dados de nome “Clientes_2”, pois ele é uma outra instância da tabela “Clientes”. Em resumo “Clientes” e “Clientes_2” são uma mesma tabela.

• Título: Informe o título da Tabela, esse título é utilizado para o uso interno do projeto.

• Banco de Dados: Essa informação é obrigatória, toda Tabela tem que estar vinculada a um Banco de Dados, para definir um Banco de Dados clique no botão .

• Filtragem de Inicialização: Utilize essa opção para definir uma seleção de registros a serem abertos na inicialização do projeto, o X-Maker trabalha no conceito Client/Server, e a abertura de todos os registros não é aconselhável devido ao tráfego de informações 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 usuário final poderá redefinir ou mesmo limpar esse filtro após a inicialização e o sistema ficará mais dinâmico.

Page 32: Manual XMaker

32

• Filtragem Fixa: Possui as mesmas características da “Filtragem de Inicialização” porém o usuário final não poderá altera-la ou mesmo limpa-la. Um exemplo prático é a utilização de um sistema “Multiempresa” em que cada tabela irá conter um campo de identificação da “Empresa Usuária”, a tabela será filtrada pelo número da “Empresa Usuária” selecionada no momento da inicialização.

• Ordenação Inicial: Informe o(s) campo(s) de ordem inicial da tabela, como padrão toda tabela é ordenada pela chave primária definida, o projetista poderá alterar este padrão.

6.2.2 Definição do Banco de Dados

Page 33: Manual XMaker

33

O Banco de Dados irá gerenciar as Tabelas do projeto, sua utilização é obrigatória.

Salva o banco de dados em edição. Cancela a edição do banco de dados. Insere um novo banco de dados, tecla de atalho:

“Insert”. Exclui o banco de dados selecionado, tecla de atalho:

“Delete”.

• Conexão Padrão: Indica se o Banco de Dados irá utilizar o banco de dados padrão definido em propriedades do projeto. É possível 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 opção é utilizada quando a “Conexão Padrão” não está habilitada.

• Alias: Esse nome é para uso interno da codificação dos

arquivos fontes.

• Servidor: É o nome físico do Banco de Dados. O usuário final do projeto poderá alterar o Servidor.

• Login de Conexão: Habilita o uso de Login de Conexão para conectar-se a Base de Dados na abertura do projeto final. Sugerimos que deixe essa opção desmarcada o tratamento interno de Controle de Acesso do projeto é bem completo e prático.

Page 34: Manual XMaker

34

• Usuário: Informe o usuário (Login) para conexão com a Base de Dados, cada gerenciador de Banco de Dados possui um tratamento específico de acesso.

• Senha: Informe a senha (Password) para conexão com a Base de Dados.

• HostName: Informe o nome ou número do I.P do servidor de localização do Banco de Dados. O usuário final do projeto poderá alterar o HostName.

• Parâmetros: É possível informar os parâmetros adicionais para conexão, os mesmos dependem do gerenciador utilizado.

Dica:

É possível definir vários Bancos de Dados, um Banco de Dados pode conter um conjunto de Tabelas, a utilização 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 Confecções, essa loja possui Matriz e Filiais, algumas Tabelas serão utilizadas de forma compartilhada (Clientes, Fornecedores e Contas a Pagar / Receber), para obter essa operação será necessário criar um Banco de Dados para armazenar as Tabelas que serão Compartilhadas e um outro Banco de Dados para as Tabelas não compartilhadas. Em configurações da Empresa Usuária no projeto final é possível definir uma localização diferente para cada Banco de Dados criado.

Page 35: Manual XMaker

35

6.2.3 Importando Estruturas Externas

É possível importar uma estrutura já existente em outras Bases de Dados ou projetos, clique no botão .

Escolha a estrutura a ser importada, para as estruturas X-Maker, dBase e Paradox basta informar a pasta de localização das tabelas, para as demais estruturas outras informações adicionais serão necessárias, tais como usuário (login) e senha (password). Clique no botão para ativar a pesquisa.

Page 36: Manual XMaker

36

6.2.4 Campos da Tabela

A definição dos campos é precedida de vários atributos, cada campo pode armazenar um tipo de dado diferente, uma definição lógica e coerente respeitando todos os atributos torna a aplicação final mais apresentável e com maior entendimento. As informações contidas serão utilizadas na criação do Layout dos Formulários e Relatórios.

6.2.5 Botões Associados:

Importa definições de campos do projeto em edição. Possibilita um maior ganho de produtividade, campos já definidos poderão ser reaproveitados.

Edição de campo “Calculado”, todo campo “Calculado” possui uma codificação definida pelo próprio projetista.

Page 37: Manual XMaker

37

Define a chave estrangeira dos campos com o tipo de edição: “Lista Externa (Estrangeira)”. Personaliza o estilo de pesquisa e campos a serem visualizados.

Insere campos das tabelas relacionadas, campos de tabelas relacionadas poderão 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 poderão ser agregados a Tabela de Vendas. Isso não é uma duplicidade de informação ou campos, os campos escolhidos da Tabela de Clientes não serão gravados fisicamente na Tabela de Vendas.

Define a ordem de apresentação dos campos dentro das opções de “Consulta” dos formulários de “Entrada de Dados”.

6.2.5.1 Nome

Informe o nome que será utilizado para tratamento interno dos arquivos fontes e para criação em disco da Tabela. Utilize o botão para importar uma estrutura predefinida.

6.2.5.2 Tipo

Informe o tipo de dado para armazenamento na Tabela. As opções disponíveis são:

• Alfanumérico: Permite o armazenamento de valores alfanuméricos (letras, algarismos e caracteres especiais) o seu tamanho máximo é fixo. Exemplos: Nome, Endereço, Cidade, etc.

Page 38: Manual XMaker

38

• Número Inteiro: Permite o armazenamento de valores do conjunto dos números inteiros (positivos e negativos). Exemplos: Códigos, Quantidade, Número de Dependentes, etc.

• Número Fracionário: Permite o armazenamento de valores do conjunto dos números reais (inteiros ou fracionários, positivos ou negativos). O número de casas decimais de um campo fracionário é determinado pela máscara. Exemplos: Salário, Total das Vendas, Saldo em Caixa, etc.

• Data: Permite o armazenamento de valores que representam datas válidas. O formato da data é determinado em “Propriedades do Projeto”.

• Memo: Permite o armazenamento de valores alfanuméricos de tamanho variável. Exemplos: Observações, Referências Comerciais, Dados Adicionais, etc.

• Imagem: Permite o armazenamento de imagens. Exemplos: Foto, Logotipo, etc.

6.2.5.3 Chave

Indica se o campo faz parte da chave primária, uma chave primária é composta por um ou mais campos da Tabela.

6.2.5.4 Tamanho

Informe o tamanho máximo para armazenamento no campo, não considerar o sinal de negativo (-), o separador de decimais (,) e outros caracteres separadores utilizados na máscara.

Page 39: Manual XMaker

39

Exemplo: CNPJ é alfanumérico de tamanho 14 a máscara é 99.999.999/9999-99 os pontos (.) e barra (/) não são considerados para calcular o tamanho do campo.

6.2.5.5 Autoincremento

Indica que o campo será incrementado automaticamente (seqüencialmente), somente campos do tipo: Número inteiro, Fracionário e data poderão utilizar essa opção. A seqüência é subordinada a posição do campo na Tabela.

6.2.5.6 Edição

Informe o tipo de edição de controle, o formulário de entrada de dados irá utilizar o tipo de edição para inserir os componentes na tela. Os tipos disponíveis são:

• Edit (Edição Padrão): Caixa de edição de livre digitação, respeitando as restrições impostas pela máscara. Exemplo:

• Combo Drop (Lista Interna): Caixa de lista de opções

predefinidas, permite ao usuário a escolha do item através de uma lista. Os valores válidos são informados no atributo “Valores Válidos”. Exemplo:

• Rádio Button (Optativo): Caixa de opções onde todos

os itens disponíveis ficam visíveis para escolha. Os valores válidos são informados no atributo “Valores

Válidos”. Exemplo: • Check Box (Conferência): Caixa optativa de marca e

desmarca. Os valores válidos são informados no atributo

Page 40: Manual XMaker

40

“Valores Válidos”, apenas dois valores são 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 Formulário de Pesquisa).

6.2.5.7 Calculado

Indica que o campo é do tipo Calculado, o X-Maker permite que o campo seja virtual (não é gravado fisicamente na Tabela) ou não virtual (é gravado fisicamente na Tabela). Sua utilização é válida quando se deseja mostrar um cálculo ou fórmula específica.

Exemplo: Ao definir uma Tabela de Itens da Venda, os

campos Quantidade e Preço Unitário serão utilizados para formar o campo de Total Geral, ao definir a Tabela o projetista não sabe quais serão os valores informados pelo usuário no momento da venda, para isso utiliza-se uma codificação de multiplicação entre os campos de Quantidade e Preço Unitário criando assim o campo de Total Geral.

6.2.5.8 Máscara

Informe a máscara de apresentação do campo para formulários e relatórios. Os caracteres usados como máscara não são armazenados na Tabela e não ocupam espaço adicional.

As máscaras são utilizadas apenas para os campos cujo

tipo de edição seja: Edit (Edição Padrão).

Page 41: Manual XMaker

41

O X-Maker cria uma lista de opções de máscaras disponíveis conforme o tipo e tamanho do campo. Clique no botão vinculado ao atributo.

6.2.5.8.1 Campos Numéricos e Fracionários: • 9 Se nesta posição o valor for “0” (zero), será mostrado

o “0” (zero) mesmo que seja zero à esquerda. • Z Se nesta posição o valor for “0” (zero), será mostrado

o “0” (zero) exceto se este for um zero à esquerda. Neste caso, o “0” (zero) é substituído por um espaço em branco.

• - O caractere “-“ (negativo) será mostrado sempre que o campo for negativo e para valores positivos será mostrado um espaço em branco.

6.2.5.8.2 Campos Alfanuméricos: • 9 Indica que nesta posição somente algarismos serão

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

• A Indica que nesta posição somente letras e espaços serão aceitos. Os caracteres serão convertidos para maiúsculo.

• a Indica que nesta posição somente letras e espaços serão aceitos. Os caracteres serão convertidos para minúsculo.

• X Indica que nesta posição qualquer caractere será aceito. Os caracteres serão convertidos para maiúsculo.

• x Indica que nesta posição qualquer caractere será aceito. Os caracteres serão convertidos para minúsculo.

Page 42: Manual XMaker

42

• * Indica que os próximos caracteres da máscara seguirão o caractere anterior ao “*”. É usado para simplificar e agilizar a digitação, como exemplo pode citar um campo de Nome do Cliente com tamanho de 50, a máscara utilizada será o X invés de digitar o X cinqüenta vezes, basta digitar o X*, o X-Maker irá gerar o X cinqüenta vezes no arquivo fonte.

6.2.5.9 Título

Informe o título do campo, esse título é utilizado no formulário de entrada de dados e relatórios.

6.2.5.10 Índice

Informe o número da ordem de apresentação do campo durante a consulta no formulário de “Entrada de Dados”.

6.2.5.11 Invisível

Informe se o campo não será visível durante a consulta no formulário de “Entrada de Dados”.

6.2.5.12 Ajuda

Informe a mensagem de ajuda do campo, essa mensagem é utilizada no formulário de entrada dados (Hint).

6.2.5.13 Valor Padrão

Informe o valor de inicialização do campo, este valor será utilizada na inclusão de um registro em formulário de dados. Um exemplo prático é a definição de Data de Cadastro na

Page 43: Manual XMaker

43

Tabela de Clientes, ao incluir um novo Cliente a data de Cadastro irá trazer como padrão à data do sistema operacional.

Para campos de Data sugerimos a utilização do valor

padrão DataAtual, e para campos que irão armazenar a hora, sugerimos a utilização do valor padrão HoraAtual. Não existe um tipo de campo do tipo Hora disponível no X-Maker, para isso defina o campo como Alfanumérico de Tamanho 06 e Máscara 99:99:99.

6.2.5.14 S. Atribui “Sempre Atribui”

Informe se o campo que possui “autoincremento” será sempre atualizado a cada mudança de campo durante a digitação e não irá permitir que o usuário altere a seqüência definida.

6.2.5.15 Pré-Validação

Informe uma condição lógica para edição do campo no formulário de “Entrada de Dados”. O campo somente será editável se a condição retornar “verdadeiro” ou se não existir nenhuma condição definida. Exemplo: TabGlobal.DClientes.TIPO_PESSOA.Conteudo = 'F' Neste exemplo o campo “CPF” somente será editável se o tipo de pessoa for “Física”. Para deixar o campo sem edição insira o valor lógico “Falso”, exemplo: False

6.2.5.16 Ação

Informe a “Ação” a ser executada após a “Pré-Validação”, esta “ação” é executada quando a “Pré-Validação” retorna “Falso”. Seguindo o exemplo acima do campo “CPF” o projetista poderá definir se o campo será “Não Editável” ou “Invísivel” quando o usuário escolher o tipo de pessoa “Jurídica”.

Page 44: Manual XMaker

44

6.2.5.17 Limpar Campo

Informe se o campo será limpo quando a “Pré-Validação” retornar “Falso”. Seguindo o exemplo acima do campo “CPF” o projetista poderá definir se o conteúdo do campo será eliminado quando o usuário escolher o tipo de pessoa “Jurídica”.

6.2.5.18 Validação

Informe uma função de validação para o campo. Essa função será vinculada ao evento OnExit (Ao Sair) do campo no formulário de entrada de dados, ou seja, quando o cursor mudar de campo ou o usuário clicar em Salvar. Para utilizar mais de uma validação em um mesmo campo utilize o ponto-e-vírgula, exemplo: DATAVALIDA;VALORNULO

As funções de validação são módulos codificados, que são

armazenados no arquivo fonte “Validar.Pas” presente na pasta do projeto.

O projetista poderá inserir e modificar as funções de

validações fornecidas pelo X-Maker. Basta editar o arquivo fonte “Validar.Pas” e realizar as modificações necessárias. As modificações realizadas na pasta do projeto pertencem única e exclusivamente ao projeto em questão, caso você queira realizar uma modificação no “Validar.Pas” para que todos os projetos que forem criados a partir dessa personalização façam uso desse arquivo fonte, altere na pasta de origem dos arquivos fontes, “C:\XMaker3\Delphi\Validar.Pas”. Lembrando que “C:\XMaker3” é a pasta básica de instalação, se o X-Maker estiver instalado em outra pasta considere a pasta correta.

A lista interna das funções disponíveis para validação

estão no arquivo “C:\XMaker3\Validacao.Lst” trata-se de um

Page 45: Manual XMaker

45

arquivo texto comum que poderá ser editado por qualquer editor de texto. Personalizações nesse arquivo são reconhecidas. A edição desse arquivo é justificável quando o projetista cria novas funções de validação no arquivo fonte “Validar.Pas”.

Funções de validação disponíveis 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

Page 46: Manual XMaker

46

• function MESATUAL(Dado: string): Boolean; // Valida o Mês Atual

• function MESANOATUAL(Dado: string): Boolean; // Valida o Mês a Ano Atual

• function MESANOVALIDO(Dado: string): Boolean; // Valida o Mês e Ano

6.2.5.19 Procurar em

Informe se o campo será pesquisado e validado em outra Tabela, a mesma deverá ser definida em “Relacionamentos”, somente tabelas relacionadas poderão ser pesquisadas. Campos com o tipo de edição: “Lista Externa (Estrangeira)” poderão utilizar esta opção para garantir a consistência dos dados.

6.2.5.20 Msg. de Erro “Mensagem de Erro”

Informe uma mensagem de erro a ser apresentada para o usuário quando os atributos de “Validação” ou “Procurar em” retornarem “Falso”, o X-Maker gera uma mensagem padrão quando este atributo estiver vazio.

6.2.5.21 Valores Válidos

É uma lista de valores com suas respectivas descrições. Esta lista é utilizada para campos cuja Edição seja: Lista Interna (Combo Drop), Optativo (Rádio Button) ou Conferência (Check Box).

Page 47: Manual XMaker

47

Os valores contidos em “Valor” serão gravados na Tabela, as descrições “Descrição” serão mostradas no formulário de entrada de dados e na consulta.

Ao fechar a caixa de “Tabela de Valores Válidos” o

atributo será preenchido da seguinte forma , todos os valores válidos são separados

por (ponto-e-vírgula). O tipo de Edição: “Conferência (Check Box)” só poderá

conter dois valores válidos. O primeiro valor indica que o componente estará marcado, o segundo valor indica que o componente estará desmarcado.

6.2.6 Definição da Chave Estrangeira

Os campos definidos como “Lista Externa (Estrangeira)” deverão ser associados corretamente,

Page 48: Manual XMaker

48

6.2.7 Edição de Campo Calculado

Os campos definidos como “Campo Calculado” são codificados conforme a linguagem utilizada no projeto.

A codificação é dividida em duas janelas de texto, a 1ª janela de texto é destinada para as declarações de variáveis locais, a 2ª janela de texto é destinada para a codificação que irá gerar um retorno através da variável “Result”.

A utilização da variável “Result” é obrigatória, e o tipo de

informação a ser atribuída depende do tipo do campo (alfanumérico, inteiro, fracionário ou data). A atribuição de um campo número ou data em um campo alfanumérico ou vice-e-versa, sem as devidas conversões, causa um erro de compilação.

Page 49: Manual XMaker

49

Codificar um “Campo Calculado” exige um conhecimento

básico de programação.

6.2.8 Índices (Chaves Secundárias)

Os índices são utilizados para agilizar o processo de localização, filtragem e ordenação em formulários de entrada de dados e relatórios. Sua utilização não é obrigatória e uma falta de coerência torna o acesso à base de dados mais lenta, a quantidade de índices definidos em uma Tabela interfere na velocidade de atualização da mesma.

Para os campos que serão mais utilizados em processos de

localização, filtragem e ordenação é aconselhável a utilização de índices.

Um índice é composto por um ou mais campos, de forma

crescente (padrão) ou decrescente, campos número resultam em índices mais velozes.

Uma Tabela pode conter vários índices, os campos Memo

e Imagem não poderão ser utilizados na criação de um índice.

Page 50: Manual XMaker

50

6.2.9 Integridades & Relacionamentos

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

• Relacionamento: Trata-se de um relacionamento simples, ou seja, não será utilizado para criação de integridade referencial. Esse tipo de relacionamento permite a utilização de campos “Extras”, campos de tabelas relacionadas poderão 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 poderão ser agregados a Tabela de Vendas. Isso não é uma duplicidade de informação ou campos, os campos escolhidos da Tabela de Clientes não serão gravados fisicamente na Tabela de Vendas.

• Restrita: Somente os registros que não estivem sendo

referenciados em outras Tabelas poderão ser excluídos. Exemplo: A Tabela de Clientes possui uma referência da Tabela de Atividades Comerciais, ao excluir uma Atividade Comercial o sistema irá checar se a mesma não 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 serão excluídos também. Exemplo: A Tabela de Notas Fiscais possui uma Tabela relacionada de Itens da Nota Fiscal, o campo de relacionamento é o número da Nota

Page 51: Manual XMaker

51

Fiscal, ao excluir uma Nota Fiscal todos os registros da Tabela de Itens da Nota Fiscal que possuírem o mesmo número da Nota Fiscal serão excluídos.

• Relacionado com: Informe a Tabela para

relacionamento.

• Campos: Lista dos campos disponíveis para relacionamento das Tabelas.

• Campo(s) de associação: Para relacionar os campos é necessário selecionar um campo de cada lista em “Campos”, depois clicar no botão “Inserir Relacionamento”. Os campos devem possuir a mesma estrutura (tipo e tamanho), não há necessidade de possuírem o mesmo nome. Um relacionamento é composto por um ou mais conjunto de campos.

Page 52: Manual XMaker

52

6.2.10 Processos Diretos/Inversos

Os processos diretos/inversos permitem a atualização das tabelas relacionadas, o processo direto está vinculado à inclusão e modificação dos registros e o processo inverso está vinculado à exclusão e modificação. 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).

Page 53: Manual XMaker

53

Processo “Direto”.

Processo “Inverso”.

Page 54: Manual XMaker

54

6.2.11 Lançamentos

Os lançamentos poderão ser utilizados para gerar um novo registro em outra tabela após a inclusão.

Neste exemplo um novo registro na tabela de “Clientes” é inserido após a inclusão de um novo “Fornecedor”. O “Cliente” irá conter o mesmo “Código” e “Nome”.

Page 55: Manual XMaker

55

6.3. 3º Passo – Formulários

Este é o terceiro passo para criação de um projeto, através desta opção o projetista irá definir todos os formulários a serem utilizados pelo projeto.

Após a definição das Tabelas é necessário criar uma

interface para que o usuário do seu projeto final passa entrar

Page 56: Manual XMaker

56

com informações. O X-Maker possui um Editor de Layout muito prático e eficiente, a criação de janelas de entrada de dados nunca foi tão fácil e amigável.

O X-Maker possibilita a criação de 04 tipos de

formulários, são eles:

• Entrada de Dados: É o tipo mais usado para definição, esse tipo de formulário trabalha no padrão MDI ou Interface de Múltiplos Documentos. É um modelo mais sofisticado, pois possibilita o acesso às outras áreas do programa e a abertura de outros formulários ao mesmo tempo. Todas as janelas poderão ser minimizadas e maximizadas.

• Entrada de Dados Filho: Esse tipo de formulário trabalha no padrão Modal, ou seja, outras áreas do programa não poderão ser acessadas enquanto o mesmo estiver aberto. As definições de formulários (Entrada de Dados) que irão utilizar um Grid de Relacionamento irão utilizar uma Entrada de Dados Filho para vincular a manipulação dos dados da Tabela relacionada. Como exemplo podemos citar a definição 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 definição de formulário avulso é destinada para a manipulação direta no Delphi, ou seja, o X-Maker irá criar um formulário vazio para que o projetista possa manipulá-lo através do próprio Delphi. Esse tipo de formulário trabalha no padrão MDI ou Interface de Múltiplos Documentos.

Page 57: Manual XMaker

57

• Avulso Normal: Possui os mesmos propósitos do Avulso MDI, porém o padrão utilizado é o Modal, ou seja, outras áreas do programa não poderão ser acessadas enquanto o mesmo estiver aberto.

Finalidade de cada botão:

Inclui um novo formulário. Exclui um formulário selecionado.

Edita as propriedades do formulário. Layout do formulário. Importa formulário definido em outro projeto. Confirma a inclusão ou modificação de um formulário. Cancela a inclusão ou modificação de um formulário.

6.3.1 Finalidade de cada atributo:

• Nome: Informe o nome do formulário, este nome será utilizado para criação do arquivo fonte.

• Tipo: Informe o tipo de formulário, os tipos disponíveis são: Entrada de Dados, Entrada de Dados Filho, Avulso MDI e Avulso Normal.

• Título: Informe o título do formulário, o título será atribuído no “Caption” do formulário.

• Tabela: Informe a Tabela a ser manipulada pelo formulário. Os formulários de Entrada de Dados e Entrada de Dados Filho são utilizados para a criação de uma interface de manipulação das Tabelas.

Page 58: Manual XMaker

58

Os formulários são ordenados por nome, utilize a opção “Localizar” para um posicionamento mais rápido no formulário desejado, esta opção é válida quando o projeto conter um número muito grande de formulários.

6.3.2 Definindo o Layout do formulário

O X-Maker possui um poderoso e prático editor de layout de formulários. Com o recurso exclusivo de auto formatação o projetista terá um ganho de produtividade muito grande, outro ponto importante é a manipulação do arquivo fonte gerado em uma mesma tela. Toda codificação é gerada automaticamente a cada manipulação dos componentes disponíveis.

Um protótipo do formulário é criado para facilitar a referência visual dos componentes, a janela “Object Inspector” permite a manipulação direta dos componentes, criação de

Page 59: Manual XMaker

59

páginas e/ou acesso aos eventos disponíveis. O arquivo fonte poderá ser editado através do botão “Editar arquivo fonte”, para que o projetista possa interagir diretamente na codificação.

O X-Maker trabalha diretamente no arquivo fonte, os

arquivos “.Pas” e “.Dfm” do Delphi, ou seja, toda leitura e gravação do layout do formulário e realizado diretamente nesses arquivos. Esse recurso avançado permitiu uma grande interação como o Delphi, pois qualquer manipulação do formulário através do Delphi é preservada no X-Maker. Algumas áreas são restritas, essas áreas serão comentadas no tópico de “Estrutura do Arquivo Fonte”, e a descaracterização do layout não poderá ser feita pelo projetista. Para formulários totalmente personalizados sugerimos a utilização de formulários do tipo: “Avulso MDI” ou “Avulso Normal”.

Page 60: Manual XMaker

60

6.3.2.1 Janela “Object Inspector”

Coletânea de componentes extras disponíveis para inserção nas páginas. Estes componentes não são utilizados para manipulação dos campos da Tabela.

Coletânea de componentes para manipulação dos campos da Tabela.

Salva o layout em definição.

Define o estilo de abertura do formulário.

Grid de relacionamento, tabelas de relacionamento “exclusão em cascata” poderão ser manipuladas em um mesmo formulário.

Insere campo(s) da tabela no formulário.

Recurso de “Auto formatação” das páginas, todos os campos selecionados serão posicionados corretamente nas páginas.

Edita o arquivo fonte do formulário, o projetista poderá interagir com o fonte gerado.

Page 61: Manual XMaker

61

Define o “TabOrder” seqüência de digitação dos campos pelo usuário final.

Configuração das páginas do formulário.

Área de manipulação dos objetos.

O X-Maker permite a criação de até 11 páginas por formulário, ao utilizar o recurso de auto formatação novas páginas poderão ser criadas automaticamente dependendo da quantidade de campos da Tabela.

Dica: Para alternar entre a janelas (Propriedades e Protótipo) utilize a tecla F11.

Page 62: Manual XMaker

62

6.3.2.2 Inclusão de Grid de Relacionamento

Em formulários de entrada de dados é possível a utilização de um Grid de Relacionamento, para operações do tipo “Mestre-Detalhe”. Exemplo: Notas Fiscais e Itens da Notas, Vendas e Itens da Venda, Orçamentos e Itens do Orçamento, etc.

Neste exemplo de definição de um formulário de vendas é possível identificar sua real utilização. O Grid fará o acesso a Tabela de Itens da Venda, o campo de ligação será o Nº da Venda que é um campo em comum entre as Tabelas.

Page 63: Manual XMaker

63

Para inserir um Grid de Relacionamento clique no botão

na janela “Object Inspector”, depois clique em qual área da tela o componente será inserido.

Somente tabelas definidas com o relacionamento

“Exclusão em Cascata” poderão ser utilizadas. Faça a definição em “Assistente -> Tabelas”.

• Edição direta: Informe se o Grid terá uma edição direta, ou seja, não será necessário utilizar um formulário “filho” para manipulação dos dados.

• Formulário: A manipulação dos registros poderá ser realizada através de um formulário “filho”. Antes de inserir um Grid de Relacionamento em um formulário de Entrada de Dados faça a definição de um formulário de Entrada de Dados Filho da Tabela relacionada.

Page 64: Manual XMaker

64

6.3.2.3 Movimentar e Redimensionar Componentes da Tela

Os componentes inseridos em “Páginas” da janela de protótipo poderão movimentados, arrastados, copiados, recortados, colados, excluídos e redimensionados. É possível mover um ou vários componentes de uma página para outra, utilize o recurso de recortar (Ctrl+X).

• Mouse: Utilize o mouse para arrastar, redimensionar e selecionar os componentes.

• Teclado: Selecione os componentes pelo mouse e use o teclado para movimentar ou redimensionar os componentes.

o Ctrl + Setas: Movimenta os componentes selecionados em uma posição.

o Ctrl + Shift + Setas: Movimentam os componentes selecionados em oito posições.

o Shift + Setas: Redimensiona os componentes selecionados.

o Del: Exclui os componentes selecionados. o Ctrl + C: Copia os componentes selecionados. o Ctrl + V: Cola os componentes selecionados. o Ctrl + X: Recorta os componentes selecionados.

Page 65: Manual XMaker

65

Propriedades dos Objetos

Clique com o botão da direita do mouse para obter uma lista de propriedades “extra” de configuração.

6.3.2.4 Finalidade do botão “Tabelas” no formulário

Este botão é utilizado para criação de um menu de atalhos para acesso a outros formulários do projeto, normalmente são formulários que possuem algum tipo de vinculo com o formulário em questão. Como exemplo podemos citar um formulário de Cadastro de Produtos do Estoque, ao cadastrar um produto são exigidas algumas informações do tipo: Grupo, Família, Fornecedor e Unidade, e existe uma Tabela e formulário para cada uma dessas informações. Para criar um acesso mais rápido e esses formulários o projetista poderá utilizar o botão “Tabelas”.

Page 66: Manual XMaker

66

Inicialmente este botão possui a propriedade “Visible” desabilitada, para habilitar clique no botão e escolha a opção “Rodapé – Manutenção” ou “Rodapé – Consulta”.

Clique no botão “Tabelas” e habilite a propriedade “Visible” na janela “Object Inspector”.

Faça a edição do evento “BtnRelac_1Click”, clique em “OnClick” na janela “Object Inspector”.

Page 67: Manual XMaker

67

Insira a codificação entre os blocos {09} e {99}, utilize o método “AddMenuItem” para atribuir um novo item ao menu da tabelas relacionadas.

Page 68: Manual XMaker

68

Exemplo:

AddMenuItem(PopRelacionados, 'Atividades', 'mnuAtividades', True , 0, 6001); Parâmetros do Método “AddMenuItem”: PopRelacionados = Objeto “PopMenu” a ser utilizado. ‘Atividades’ = Título a ser apresentado no menu. ‘mnuAtividades’ = Nome interno do componente, não poderá ser utilizado nome de outro componente utilizado no formulário. Como padrão o projetista poderá utilizar a sigla “mnu” + o nome do formulário. True = Habilitado e False = Desabilitado. 0 = Número do ícone de imagem de apresentação. 6001 = Número de seqüência de identificação utilize a seqüência 6001, 6002, 6003, etc. para os demais formulários. Salve a codificação do evento e faça a edição do arquivo fonte,

clique no botão: “Editar arquivo fonte”. Vá para o bloco de codificação do evento “PopRelacionadosClick”.

Page 69: Manual XMaker

69

Insira a codificação entre os blocos {10} e {99}, utilize o botão “form” na barra de ferramentas do “Mini Editor” para inserir a codificação de chamada do formulário desejado.

Exemplo: {10-Início do Bloco Modular. Modificações não serão preservadas} if MenuItem.Tag = 6001 then begin FormAtividades := TFormAtividades.Create(Application); Try FormAtividades.ShowModal; Finally FormAtividades.Free; end; end {99-Final do Bloco Modular. Modificações não serão preservadas}

Page 70: Manual XMaker

70

É necessário referenciar as units dos formulários utilizados na cláusula “uses”.

O projetista poderá utilizar o botão “Tabelas” para outras finalidades ou até mesmo remove-lo, fica a critério do projetista.

6.3.3 Janela do Mini Editor

O projetista tem a sua disposição o arquivo fonte do formulário que está sendo definido, o arquivo é atualizado a cada mudança no layout.

Page 71: Manual XMaker

71

Vejamos as funções da barra de ferramentas do editor:

Modo interativo de criação de expressões a serem inseridas no arquivo fonte.

Insere campo de qualquer tabela definida no projeto. Sintaxe das principais estruturas de codificação do Delphi.

Codificação correta de chamada de formulários. Permite recortar uma área selecionada (Ctrl+X). Permite copiar uma área selecionada (Ctrl+C).

Page 72: Manual XMaker

72

Permite colar uma área copiada ou recortada (Ctrl+V). Localiza uma expressão no arquivo (Ctrl+F). Procura uma próxima expressão encontrada (Ctrl+L). Procura e substitui uma expressão no arquivo (Ctrl+R). Posicione o cursor em uma linha desejada (Alt+G).

Cancela a edição. Confirma as alterações.

6.3.3.1 Estrutura do Arquivo Fonte

Para uma melhor utilização e aproveitamento dos arquivos fontes gerados é necessário que o projetista conheça melhor a estrutura utilizada.

A estrutura segue os padrões estabelecidos pelo Delphi,

vários eventos foram criados para atender as exigências de tratamento das Tabelas.

Os arquivos fontes possuem vários blocos de utilização

interna do X-Maker, esses blocos não serão preservados em eventuais personalizações através do Delphi ou algum outro meio.

Os blocos são identificados como linhas de comentários,

iniciados em “{XX-Início do Bloco Modular. Modificações não serão preservadas}” e finalizados em “{99-Final do Bloco Modular. Modificações não serão preservadas}”. “XX” representa o número do bloco, um arquivo fonte pode ter vários blocos (01, 02, 03, etc).

Page 73: Manual XMaker

73

Os blocos são utilizados de forma estratégica a fim de não comprometer a liberdade de codificação do projetista.

Grande parte das funções e procedimentos utilizados em

um formulário de entrada de dados e entrada dados filhos estão codificados na unit “RotinaEd.Pas”.

6.3.4 Principais eventos

6.3.4.1 Inicialização (FormShow)

Este evento é utilizado para fazer a ligação entre os componentes e os campos da Tabela, algumas configurações visuais são tratadas também neste evento. O evento é chamando quando o formulário é executado pela primeira vez, quando o formulário é fechado e executado novamente conta-se como

Page 74: Manual XMaker

74

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

6.3.4.2 Abertura de Tabelas (AbreTabelas)

Todas as Tabelas do projeto são abertas na inicialização do projeto final, o projetista não irá encontrar neste evento as codificações de abertura da Tabela manipulada pelo formulário. Este evento foi mantido visando uma possível necessidade do usuário em realizar uma abertura de Tabela de forma Local no formulário.

6.3.4.3 Confirma Inclusão (ConfirmaInclusao)

Cada vez que o usuário do projeto final pedir uma inclusão de registro, o evento “ConfirmaInclusao” será chamado, este evento retorna uma expressão lógica permitindo ou não a inclusão. Como padrão o evento retorna sempre verdadeiro, o projetista poderá criar uma condição para manipular o retorno.

6.3.4.4 Confirma Modificação (ConfirmaModificacao)

Cada vez que o usuário do projeto final pedir uma modificação do registro, o evento “ConfirmaModificacao” será chamado, este evento retorna uma expressão lógica permitindo ou não a modificação. Como padrão o evento retorna sempre verdadeiro, o projetista poderá criar uma condição para manipular o retorno.

6.3.4.5 Confirma Exclusão (ConfirmaExclusao)

Cada vez que o usuário do projeto final pedir uma exclusão de registro, o evento “ConfirmaExclusao” será chamado, este evento retorna uma expressão lógica permitindo

Page 75: Manual XMaker

75

ou não a exclusão. Como padrão o evento retorna sempre verdadeiro, o projetista poderá criar uma condição para manipular o retorno.

6.3.4.6 Confirma Gravação (ConfirmaGravacao)

Cada vez que o usuário do projeto final pedir para salvar um registro, o evento “ConfirmaGravacao” será chamado, este evento retorna uma expressão lógica permitindo ou não que o registro seja salvo. Como padrão o evento retorna sempre verdadeiro, o projetista poderá criar uma condição para manipular o retorno.

6.3.4.7 Ao Entrar Manutenção (TelaManutencao)

Toda vez que a tela de manutenção do formulário for ativada o evento “TelaManutencao” será chamado, ao navegar entre os registros com a tela de manutenção ativa o evento será chamado também. Esse evento é muito útil para realizar alterações de propriedades visuais em tempo de execução. Exemplo: um Cadastro de Clientes, aonde o tipo de pessoa (Física ou Jurídica) determina o preenchimento de certos campos, o projetista terá que codificar essas particularidades exigidas. Os campos a serem habilitados ou desabilitados serão codificados nesse evento.

6.3.4.8 Ao Entrar Consulta (TelaConsulta)

Toda vez que a tela de consulta do formulário for ativada o evento “TelaConsulta” será chamado.

Page 76: Manual XMaker

76

6.3.4.9 Atribui Valores (AtribuiValoresPadrao)

Quando o usuário do projeto final pedir uma inclusão de registro o evento “AtribuiValoresPadrao” será chamado, o X-Maker utilize este evento para atribuir a função 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 através do botão “Salvar” do formulário. O projetista poderá realizar codificações de atribuição 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 inclusão de registro, através do botão “Incluir” da barra de ferramentas.

6.3.4.12 Antes de Modificar (AntesdeModificar)

Este evento será chamado antes de entrar no modo de modificação de registro, através do botão “Modificar” da barra de ferramentas.

6.3.4.13 Antes de Excluir (AntesdeExcluir)

Este evento será chamado antes de entrar no modo de exclusão de registro, através do botão “Excluir” da barra de ferramentas.

Page 77: Manual XMaker

77

6.3.4.14 Depois de Incluir (DepoisdeIncluir)

Este evento será chamado depois da inclusão de um registro, através do botão “Incluir” da barra de ferramentas.

6.3.4.15 Depois de Modificar (DepoisdeModificar)

Este evento será chamado depois da modificação de um registro, através do botão “Modificar” da barra de ferramentas.

6.3.4.16 Depois de Excluir (DepoisdeExcluir)

Este evento será chamado depois da exclusão de um registro, através do botão “Excluir” da barra de ferramentas.

6.3.4.17 Finalização (FormClose)

Este evento será chamado quando o usuário do projeto final fechar o formulário.

Page 78: Manual XMaker

78

6.4. 4º Passo – Relatórios, Etiquetas e Gráficos.

Este é o quarto passo para criação de um projeto, através desta opção o projetista irá definir todos os relatórios, etiquetas e gráficos a serem utilizados pelo projeto.

Page 79: Manual XMaker

79

Em um projeto a extração de resultados é realizada através dessa opção, é possível criar vários tipos de relatórios, o projetista terá toda liberdade de criação através do Editor de Layout.

• Relatórios: O projetista poderá definir vários tipos de

relatórios para diversas finalidades, com exemplo podemos citar a criação de relatórios de Tabela de Preços, Lista de Clientes, Contas a Receber, Contas a Pagar, Fluxo de Caixa, etc.

• Etiquetas: Esse tipo de definição é muito utilizado na criação de Mala Direta ou etiquetas para os produtos do estoque com a utilização do código de barras.

• Gráficos: São utilizados para uma visualização mais sintética dos dados, existe uma variedade de modelos disponíveis.

No projeto final o usuário sempre irá visualizar os

relatórios antes de imprimir, isso garante ou usuário optar entre apenas visualizar na tela ou enviar para impressora. Outro recurso muito útil e a exportação dos relatórios para PDF, BMP, JPG, EMF, WMF, TXT, HTM, CSV e RTF.

A seguir iremos usar apenas o termo “Relatório”, pois na

realidade uma Etiqueta ou Gráfico é gerado como Relatório pelo X-Maker.

6.4.1 Finalidade de cada botão:

Inclui um novo relatório.

Page 80: Manual XMaker

80

Exclui um relatório selecionado.

Edita as propriedades do relatório. Layout do relatório. Importa relatório definido em outro projeto. Confirma a inclusão ou modificação de um relatório. Cancela a inclusão ou modificação de um relatório.

6.4.2 Finalidade de cada atributo:

• Nome: Informe o nome do relatório, esse nome será utilizado para criação do arquivo fonte.

• Tipo: Informe o tipo de relatório, os tipos disponíveis são: Relatório, Etiqueta e Gráfico.

• Título: Informe o título do relatório, o título será atribuído no “Caption” do formulário.

• Tabela: Informe a Tabela a ser manipulada pelo relatório.

Os relatórios são ordenados por nome, utilize a opção

“Localizar” para um posicionamento mais rápido no relatório desejado, essa opção é válida quando o projeto conter um número muito grande de relatórios. Dica:

O X-Maker não predetermina os nomes a serem utilizados em formulários e relatórios, o projetista tem a liberdade de escolha, porém sugerimos a utilização de nomes tais como: Rel_001, Rel_002, Rel_003, etc. Eti_001, Eti_002, Eti_003, etc.

Page 81: Manual XMaker

81

Gra_001, Gra_002, Gra_003, etc., como em todo projeto os relatórios são maioria isso torná-se uma boa escolha.

6.4.3 Definindo o Relatório

A definição do relatório é composta pelos campos a serem listados, Relacionamentos, Filtragem, Ordenação e Layout.

É possível definir uma filtragem (seleção) de registros, quando um relatório não possui nenhuma filtragem todos os

Page 82: Manual XMaker

82

registros são listados de forma incondicional. A filtragem pode ser fixa, predeterminada pelo projetista, ou informada pelo usuário do projeto final. A escolha da filtragem depende do tipo de resultado a ser extraído.

Na opção “Operação” está contida os operadores lógicos disponíveis, sua utilização tem que ser coerente, pois os resultados extraídos dependem da sua boa utilização.

• = Igual: Indica que apenas os registros cujo campo

selecionado, forem iguais ao valor fixo ou variável serão listados. Exemplo: Nome = ‘Maria’ somente os registros que iniciarem com o nome ‘Maria’ serão listados.

• <> Diferente: Indica que apenas os registros cujo campo selecionado, forem diferentes do valor fixo ou variável

Page 83: Manual XMaker

83

serão listados. Exemplo: Nome <> ‘Maria’ somente os registros que forem diferentes de ‘Maria’ serão listados.

• < Menor que: Indica que apenas os registros cujo campo selecionado, forem menores que o valor fixo ou variável serão listados. Exemplo: Nome < ‘Maria’ somente os registros que forem menores que ‘Maria’ serão listados. Para campos Alfanuméricos, conforme exemplo, a comparação é alfabética. Os campos numéricos e datas são comparados por valores.

• <= Menor ou Igual: Indica que apenas os registros cujo campo selecionado, forem menores ou iguais ao valor fixo ou variável serão listados. Exemplo: Nome <= ‘Maria’ somente os registros que forem menores ou iguais a ‘Maria’ serão listados.

• > Maior que: Indica que apenas os registros cujo campo selecionado, forem maiores que o valor fixo ou variável serão listados. Exemplo: Nome > ‘Maria’ somente os registros que forem maiores que ‘Maria’ serão listados.

• >= Maior ou Igual: Indica que apenas os registros cujo campo selecionado, forem maiores ou iguais ao valor fixo ou variável serão listados. Exemplo: Nome >= ‘Maria’ somente os registros que forem maiores ou iguais a ‘Maria’ serão listados.

• % Contém: Indica que apenas os registros cujo campo selecionado, conterem o valor fixo ou variável serão listados. Exemplo: Nome LIKE ‘%SOUSA%’ somente os registros que conterem a expressão ‘SOUSA’ serão listados. A procura independe da posição da expressão no campo, esse recurso é muito utilizado para localização de sobrenomes em uma Tabela de Clientes.

Page 84: Manual XMaker

84

• ? Vazio: Indica que apenas os registros cujo campo selecionado, forem vazios serão listados. Exemplo: Nome IS NULL somente os registros que não possuírem Nomes cadastrados serão listados.

A opção “Composição Lógica” é utilizada quando mais de uma expressão de filtro for utilizado.

• E: Atribui o operador “AND” entre as expressões de filtro. Exemplo: Nome = ‘Maria’ AND Cidade = ‘UBERABA’ somente os registros que iniciarem com o nome ‘Maria’ e forem da Cidade de ‘UBERABA’ serão listados.

• OU: Atribui o operador “OR” entre as expressões de filtro. Exemplo Nome = ‘Maria’ OU Nome = ‘Jose’ somente os registros que iniciarem com o nome ‘Maria’ou o nome ‘Jose’ serão listados.

Todos os componentes de edição utilizados em “Diálogo”

poderão ser utilizados na expressão de filtragem, possibilitando assim que o próprio usuário defina os valores de seleção. Dica:

É muito comum a confusão do uso das “Composições Lógicas”, um exemplo clássico seria a criação de um relatório para listar os salários 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 não 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.

Page 85: Manual XMaker

85

A ordenação dos registros a serem listados é definida pelo projetista, a chave de ordenação poderá ser composta ou não. Chaves compostas indicam que mais de um campo serão utilizados na formação do índice.

6.4.4 Layout do Relatório

A definição do layout do relatório é realizada através de uma interface visual, o componente utilizado é o FreeReport (http://www.fast-report.com/en/) trata-se de um poderoso e prático componente de geração de relatórios. Outros componentes serão implementados em próximas versões do X-Maker, proporcionar o máximo de opções e versatilidades para o projetista é o nosso maior objetivo.

Page 86: Manual XMaker

86

O editor possui uma estrutura predefinida comporta por: Cabeçalho de Página, Cabeçalho de Coluna, Dados Mestre, Sumário do Relatório e Rodapé de Página.

Na barra de ferramentas o botão é responsável pela atribuição dos campos no relatório.

Page 87: Manual XMaker

87

Selecione os campos a serem atribuídos e determine o seu posicionamento em “Ordem”. A opção “Inclua cabeçalhos” traz os títulos definidos em “Tabelas” para a coluna de cabeçalho, a opção “Incluir banda” não é necessária, pois como padrão o Layout utilizará uma faixa predefinida, a seguir iremos explicar a utilização das “bandas”.

6.4.4.1 Bandas

As “Bandas” são áreas específicas que poderão conter campos ou objetos a serem impressos. Cada banda é responsável por um recurso diferente no relatório, temos como exemplo as áreas de cabeçalho (topo do relatório), rodapé, cabeçalho de colunas, registros da tabela, grupo de quebra, etc.

Utilize o botão na barra lateral para inserir uma nova

“Banda”.

Page 88: Manual XMaker

88

Exemplo de “Bandas”. Barra de Ferramentas Lateral

Insere um campo/texto em uma “Banda”, o campo/texto poderá conter um campo da Tabela, texto ou fórmula de cálculo.

Este botão é utilizado para inserir uma nova banda no relatório

Insere uma imagem (bmp, ico, wmf ou emf) em uma “Banda”, normalmente é utilizado para mostrar um Logotipo no relatório.

Insere uma nova página de relatório, sua utilização é justificável para relatórios mais complexos com muitos objetos de definição.

Insere um desenho de uma linha, possibilita a criação de linhas.

Insere uma caixa de texto com sombras, cria um efeito de fundo no relatório.

Insere um gráfico, seis modelos de gráficos estão

Page 89: Manual XMaker

89

disponíveis. Insere um código de barras, muito utilizado para

impressão de etiquetas de produtos. Insere um objeto “Check Box”. Insere um objeto de desenho com vários formatos. Insere uma caixa de texto. Insere um objeto de compartilhamento com outros

aplicativos, tais como o Word, Excel, Corel Draw e outros.

Cálculos em Relatórios É possível a criação de cálculos entre campos em relatórios, ao inserir um campo/texto uma janela de edição será apresentada, na caixa de texto é possível realizar codificações.

Page 90: Manual XMaker

90

Todo campo da Tabela é referenciado como [DVendas."PRO_CODIGO"] o “DVendas” representa o nome da tabela. O nome “PRO_CODIGO” corresponde ao campo da Tabela, sendo utilizado assim o nome definido em “Tabelas”.

Os operadores matemáticos poderão ser utilizados para

cálculos entre campos ou valores fixos. Exemplo 1: [[DProdutos."PRO_VENDA"] *

[DProdutos."PRO_QUANTIDADE"]] Exemplo 2: [[DProdutos."PRO_VENDA"] * 0.5] A utilização de colchetes ‘[ ]’ é obrigatório, pois indica

que o seu conteúdo representa um campo da Tabela ou variável. Os cálculos terão que utilizar os colchetes ‘[ ]’ também,

Page 91: Manual XMaker

91

conforme exemplo. A não utilização dos colchetes ‘[ ]’ indica que o seu conteúdo será impresso como texto.

Alguns comandos do Delphi poderão ser utilizados, tais

como: if…then…else, while…do, repeat…until. A utilização de blocos begin..end; também são aceitos.

Algumas funções internas poderão ser utilizadas, são elas:

• Sum: Totaliza campos numéricos, sintaxe:

Sum(<field>), exemplo: [SUM([DProdutos."PRO_CUSTO"] )]

• Count: Quantifica a quantidade de registros listados, sintaxe: Count(<dataset>), exemplo: [Count(DProdutos)]

• Str: Converte número em string, sintaxe: Str(<value>) • Copy: Retorna uma parte de uma string, sintaxe:

Copy(<string>, <from>, <count>) • If: Retorna uma string conforme condição, uma

condição lógica irá determinar o retorno de uma String1 ou String2, sintaxe: If(<expression>, <string1>, <string2>)

• FormatFloat: Converte um número em uma string formatada, sintaxe FormatFloat(<formatstr>, <value>), o <formatstr> segue os padrões do Delphi de formatação.

• 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 maiúsculos, sintaxe: UpperCase(<value>)

Page 92: Manual XMaker

92

• LowerCase: Converte os caracteres de uma string em caracteres minúsculos, sintaxe: LowerCase(<value>)

• Int: Retorna a parte inteira de um número, sintaxe: Int(<value>)

• Frac: Retorna a parte fracionária de um número, sintaxe: Frac(<value>)

• Round: Arredonda um número, sintaxe: Round(<value>)

• Mod: Retorna o resto da divisão entre dois números, sintaxe: value1 Mod value2

• Input: Mostra uma caixa de texto, onde o usuário poderá digitar qualquer informação extra, sintaxe: Input(<caption> [,<default>])

• MascValor: Formata um número inteiro ou fracionário e retorna em “String”, sintaxe: MascValor(<valor>,<máscara>), 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 espaços 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>),

Page 93: Manual XMaker

93

exemplo: [Center([Dprodutos.”PRO_DESCRICAO”], 80)]

• Space: Cria uma “String” em branco de tamanho determinado, sintaxe: Space(<tamanho>), exemplo: [Space(80)]

• PorExtenso: Retorna um número por extenso, em português, sintaxe: PorExtenso(<valor>), exemplo: [PorExtenso([Dproduto.”PRO_PRECO”])]

• StrZero: Converte um número inteiro em “String” com zeros à esquerda, sintaxe: StrZero(<número>,<tamanho>), exemplo: [StrZero([Dproduto.”PRO_CODIGO”], 05)]

• FormatMaskText: Formata uma “String” conforme a máscara informada, sintaxe: FormatMaskText(<máscara>, <string>), exemplo: [FormatMaskText(‘XXXX’, [Dprodutos.”PRO_UNIDADE”])]

• MascTexto: Formata uma “String” conforme a máscara informada, sintaxe: MascTexto(<string>, <máscara>), exemplo: [MascTexto([DClientes."CEP"], '99999-999')]

• MascData: Formata uma data conforme a máscara informada, sintaxe: MascData(<data>, <máscara>), exemplo: [MascData([DVendas."VEN_DATA"], 'dd/mm/yy')]

• CalcC_0: Arredonda uma expressão de cálculo e retorna sem casas decimais, sintaxe: CalcC_0(<valor 1>, <valor 2>, <operador>), exemplo: [CalcC_0(99.56, 85.56, ‘+’)]

• CalcC_1: Arredonda uma expressão de cálculo 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 expressão de cálculo e retorna com duas casas decimais, sintaxe: CalcC_2(<valor 1>,

Page 94: Manual XMaker

94

<valor 2>, <operador>, exemplo: [CalcC_2(99.56, 85.56, ‘*‘)]

• CalcC_3: Arredonda uma expressão de cálculo e retorna com três casas decimais, sintaxe: CalcC_3(<valor 1>, <valor 2>, <operador>, exemplo: [CalcC_3(99.56, 85.56, ‘/‘)]

• CalcC_4: Arredonda uma expressão de cálculo 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 expressão de cálculo e retorna com cinco casas decimais, sintaxe: CalcC_5(<valor 1>, <valor 2>, <operador>, exemplo: [CalcC_5(99.56, 85.56, ‘-‘)]

Dica:

A pasta “C:\XMaker3\Comp\Delphi”, contem o arquivo de ajuda do FreeReport, o nome do arquivo é “FRUSER.HLP”.

6.4.5 Configurando Etiquetas

A configuração da quantidade de colunas por etiqueta é realizada através do Menu Arquivo em “Opções da Página”.

Page 95: Manual XMaker

95

Defina o número de colunas da etiqueta em “Colunas”.

6.4.6 Configurando o Gráfico

De um duplo clique no objeto de gráfico do relatório.

Page 96: Manual XMaker

96

Todas configurações estão disponíveis nesta janela, em

“Dados” na opção “Nome do objeto” informe os objetos a serem totalizados e visualizados no gráfico.

• Memo7: Neste exemplo representa o código do produto. • Memo11: Representa o total das vendas.

Para obter no nome do objeto clique no objeto desejado e

veja na opção “Name” do Object Inspector.

Page 97: Manual XMaker

97

6.5. 5º Passo – Menu

Este é o quinto passo para criação de um projeto, através desta opção o projetista irá definir o menu lateral, superior e barra de ferramentas para acesso aos formulários e relatórios do projeto.

Page 98: Manual XMaker

98

As opções disponíveis para definição são:

• Sub-Menu: Insere um grupo de separação das opções, sua utilização torna o projeto mais organizado e apresentável.

• Formulários e Relatórios: Insere um formulário ou relatório definido no projeto.

• Rotina Avulsa: Insere um bloco de codificação livre, ou seja, o projetista poderá utilizar uma codificação específica.

• Programa Externo (EXE): Insere a chamada de um programa externo, exemplo: Word, Excel, etc.

Barra de Ferramentas

Caixa de opções (Sub-Menu, Formulários, Relatórios, etc.).

Apaga uma opção selecionada, ao apagar um Sub-Menu todas opções subordinadas serão apagadas também.

Edita uma opção selecionada. Redefine o Menu Superior & Barra de

Ferramentas, o projetista poderá inserir novas opções ou mover as opções de acesso através do próprio Delphi, sendo necessário uma atualização de leitura para atualização do próprio X-Maker.

Page 99: Manual XMaker

99

Rotina Avulsa

Ao inserir uma rotina avulsa o botão ficará disponível para o projetista.

O projetista poderá realizar uma codificação especifica dentro do bloco predeterminado, a codificação segue os padrões estabelecidos pela linguagem Delphi.

Page 100: Manual XMaker

100

6.6. 6º Passo – Compilação

Este é o sexto e último passo para criação de um projeto,

todos os arquivos fontes estarão gerados e configurados para criação do arquivo executável.

A compilação do projeto é realizada via comandos do MS-

DOS, durante a compilação o X-Maker estará verificando qualquer tipo de erro nos arquivos fontes gerados que empeçam a criação do executável.

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.

Page 101: Manual XMaker

101

A opção força a recompilação de

todos os módulos do projeto Para executar o projeto automaticamente após a

compilação, marque a opção . Outros fatores poderão atrapalhar o processo de

compilação, uma delas é a configuração errada do compilador e parâmetros utilizados. Veja o tópico “Configurando o X-Maker” para certificar-se se o compilador está configurado da forma correta. Por tratar-se de uma compilação via comandos do MS-DOS, deve-se considerar as restrições de uso do MS-DOS, configurações do “Autoexec.bat” e “Config.sys” poderão interferir na execução.

A compilação poderá ser realizada diretamente no Delphi, veja o tópico “Configurando o X-Maker” em “Compilando e Executando pelo Delphi”. Não há diferenças entre os meios de compilação, o resultado será o mesmo.

Page 102: Manual XMaker

102

7. FONTES GERADOS PELO X-MAKER

O X-Maker possui vários módulos predefinidos para controle geral do aplicativo gerado. Alguns módulos são constantemente alterados, são os módulos de definições de Banco de Dados, Tabelas e Campos.

Segue abaixo uma tabela com todos os módulos gerados e manipulados pelo X-Maker.

Função do Módulo Módulo Fonte

Formulário Principal Princ.Pas; Princ.Dfm; Princ.Res Definição da Base de Dados

BaseD.Pas; BaseD.Dfm; BaseD.Dti

Abertura de Tabelas Abertura.Pas; Abertura.Dfm Atributos de Campos das Tabelas

Atributo.Pas

Estrutura de Campos das Tabelas

Estrutur.Pas

Classe de Definição das Tabelas

Tabela.Pas

Lista de Tabelas LTab.Pas; LTab.Inc Formulário de Pesquisa GridPesquisa.Pas; GridPesquisa.DfmFormulário Adapter Princ_Adapter.Pas;

Princ_Adapter.Dfm Seleciona Empresa - Adapter

Emp_Adapter.Pas; Emp_Adapter.Dfm

Campo Adapter Campo_Adapter.Pas; Campo_Adapter.Dfm

Tela de Apresentação Splash.Pas; Splash.Dfm Rotinas Internas Rotinas.Pás Rotinas de Edição RotinaEd.Pás Rotinas de Validação de Validar.Pas

Page 103: Manual XMaker

103

Campos Declaração de Variáveis Públicas

Publicas.Pas

Componentes Extras Extras.Pas Chamada de Formulários Internos

Interno.Pas

Calendário Calend.Pas; Calend.Dfm Calculadora Calculad.Pas; Calculad.Dfm Agenda de Telefones Agenda.Pas; Agenda.Dfm Edição da Agenda AgEdit.Pas; AgEdit.Dfm Acesso de Usuários Acesso.Pas; Acesso.Dfm Configuração de Senhas

Senhas.Pas; Senhas.Dfm

Edição de Usuários EdUsr.Pas; EdUsr.Dfm Edição de Grupos de Usuários

EdGrp.Pas; EdGrp.Dfm

Configuração de Empresas Usuárias

CfgEmp.Pas; CfgEmp.Dfm; CfgEmp.Res

Seleção de Empresas Usuárias

SelEmp.Pas; SelEmp.Dfm

Configuração do Ambiente de Trabalho

Ambiente.Pas; Ambiente.Dfm

Configuração da Filtragem em Tabelas

Filtro.Pas; Filtro.Dfm

Bate Papo em Rede BatePapo.Pas; BatePapo.Dfm Cópia de Segurança Backup.Pas; Backup.Dfm Restauração de Cópia de Segurança

Restaura.Pas; Restaura.Dfm

Utilitário de Compactação de Dados

CabIntF.Pas; CabStComps.Pas; CabStConsts.Pas; CabiNet.Dll

Formulário de Mensagem de Processo

Aguarde.Pas; Aguarde.Dfm

Visualizador de Relatórios

Fr_View.Pas;Fr_View.Dfm;Fr.Inc

Page 104: Manual XMaker

104

Configuração de Impressão

OpcRel.Pas;OpcRel.Dfm

Sobre Sobre.Pas; Sobre.Dfm Tabelas do Projeto DXXXX.Pas (XXXX = Nome da

Tabela) Campos e Atributos ATRL9999.Pas (9999 = Nº Seq.

Tabela) Modelo “Entrada de Dados”

Modelo1.Pas;Modelo1.Dfm

Modelo “Entrada de Dados Filho”

Modelo2.Pas;Modelo2.Dfm

Modelo “Avulso MDI” Modelo3.Pas;Modelo3.Dfm Modelo “Avulso Normal”

Modelo4.Pas;Modelo4.Dfm

Modelo “Relatórios” Modelo5.Pas;Modelo5.Dfm Modelo “Gráficos” Modelo6.Pas;Modelo6.Dfm Modelo “Etiquetas” Modelo7.Pas;Modelo7.Dfm Todos os módulos poderão ser personalizados pelo projetista. O X-Maker possui um sistema de segurança que possibilita a recuperação de módulos, essa opção está no Menu Principal Fontes na opção “Regerar ...”.

Page 105: Manual XMaker

105

Selecione os módulos a serem regerados (recuperados) e

clique no botão “Gerar”. Faça a compilação do projeto, marque a opção “Compilar Todos os Módulos”.

Ao redefinir um formulário ou relatório o X-Maker cria

automaticamente uma cópia do arquivo fonte. Uma pasta chamada “Copia” é criado dentro da pasta do projeto, exemplo: “C:\Xmaker3\Projetos\Vendas\Copia”, o arquivo fonte copiado possui o mesmo nome de origem.

Page 106: Manual XMaker

106

7.1. Estrutura do componente “Tabela”

O componente “Tabela” é utilizado para manipular as tabelas do projeto, o módulo fonte é o “Tabela.Pas”. Todo acesso às tabelas deverá ser realizado através deste componente, sua utilização padroniza e facilita o uso dentro do projeto.

Segue abaixo as principais propriedades do componente

“Tabela”.

Propriedade Definição / Utilização NomeTabela: String Retorna o nome da tabela.

Exemplo: DCLIENTES.NomeTabela; Retorno: ‘CLIENTES’ = Conforme exemplo.

Titulo: String Retorna o título da tabela. Exemplo: DCLIENTES.Titulo; Retorno: ‘Ficha Cadastral de Clientes’ = Conforme exemplo.

Name: String Retorna o nome interno (componente) da tabela. Exemplo: DCLIENTES.Name; Retorno: ‘DCLIENTES’ = Conforme exemplo.

<Campos>.Conteúdo: <valor do campo>

Todos os campos da tabela são acessados através do componente. Exemplo: DCLIENTES.Nome.Conteúdo := ‘Modular Software’; Neste exemplo o campo ‘Nome’ está recebendo o valor ‘Modular Software’, cada campo receberá o dado conforme sua origem, que são: Alfanumérico, Numérico, Data, Memo ou Imagem.

Inclui(Campos: Inclui um novo registro em branco na

Page 107: Manual XMaker

107

TListaCampos): Boolean

tabela, o parâmetro “Campos”, é utilizado no formulário de entrada de dados, é uma lista contendo os campos utilizados na tela para atribuição dos valores padrões. Em um formulário avulso ou outro tipo de finalidade utilize e opção “NIL” como parâmetro. Exemplo: DCLIENTES.Inclui(Nil); Retorno: True = Inclusão autorizada, False = Inclusão não autorizada.

Modifica: Boolean Habilita o registro para edição. Exemplo: DCLIENTES.Modifica; Retorno: True = Edição autorizada, False = Edição não autorizada.

Exclui: Boolean Exclui o registro atual. Exemplo: DCLIENTES.Exclui; Retorno: True = Exclusão efetivada com sucesso, False = Não foi possível excluir.

Salva: Boolean Salva o registro que está em modo de inclusão ou edição. Essa propriedade utiliza o recurso de “Commit”, ou seja, ela assegura que informação seja gravada em disco e não somente no “buffer” de memória. Exemplo: DCLIENTES.Salva; Retorno: True = Registro salvo com sucesso, False = Erro ao salvar o registro.

Cancela: Boolean Cancela uma operação de inclusão ou edição do registro. Exemplo: DCLIENTES.Cancela; Retorno: True = Cancelamento efetivado, False = Cancelamento abortado.

LimparTabela: Exclui todos os registros da tabela, sua

Page 108: Manual XMaker

108

Boolean utilização dever ser ponderada, pois ao realizar esta operação a tabela ficará vazia, sem nenhum registro. Exemplo: DCLIENTES.LimparTabela; Retorno: True = Registros apagados com sucesso, False = Erro ao excluir os registros.

DeletaTabela Exclui a tabela fisicamente do banco de dados. Exemplo: DCLIENTES.DeletaTabela; A tabela não pode estar em uso, utilize a propriedade “Close” antes de excluir a tabela.

CriaTabela Cria a tabela fisicamente no banco de dados, somente se a tabela não existir. Exemplo: DCLIENTES.CriaTabela;

Existe: Boolean Verifica se a tabela existe fisicamente no banco de dados. Exemplo: DCLIENTES.Existe; Retorno: True = A tabela existe, False = A Tabela não existe.

Abrir: Boolean Abre a tabela para uso, a manipulação dos registros é somente possível após a abertura da mesma. Exemplo: DCLIENTES.Abrir; Retorno: True = Tabela aberta com sucesso, False = Não foi possível abrir a tabela. O projeto abre todas as tabelas em sua inicialização.

AtualizaSql; Atualiza a visualização dos registros no “buffer” de memória, os registros poderão ser filtrados e ordenados. Exemplo: DCLIENTES.AtualizaSql;

Page 109: Manual XMaker

109

Sempre que uma tabela receber uma expressão de filtro ou de ordenação essa propriedade terá que ser utilizada.

Filtro: TStringList Recebe uma lista de expressões para filtro. Exemplo: DCLIENTES.Filtro.Add(‘CODIGO = 100’); A sintaxe utilizada para filtragem é definida pelo SQL. Para atualizar os registros com o novo filtro, utilize a propriedade “AtualizaSql”.

FiltroRelac: TStringList

Recebe uma lista de expressões para filtro. Exemplo: DCLIENTES.FiltroRelac.Add(‘CODIGO = 100’); Segue os mesmos padrões da propriedade “Filtro”. O X-Maker utiliza este filtro extra para os “Grids de Relacionamentos” em formulários de entrada de dados. É utilizado para não gerar conflito na opção de filtragem do formulário de entrada de dados filho.

ChaveIndice: String Define o conjunto de campos para ordenação da tabela. Exemplo: DCLIENTES.ChaveIndice := ‘NOME’; Para mais de campo para composição da chave utilize a “,“(vírgula). Exemplo: DCLIENTES.ChaveIndice := ‘NOME, SALARIO’;

Page 110: Manual XMaker

110

Método Ptabela Pesquisa de registros, cálculos, extração de dados, atualizações e exclusões. Unit

Tabela.Pas

Descrição O “Ptabela” pode ser utilizado de cinco (5) forma diferentes, isso é possível, pois é utilizada uma sobrecarga de métodos. 1) Pesquisar um registro em uma tabela: Sintaxe: Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor de Valores]: Variant): Boolean; 1º Parâmetro: Tabela = Tabela a ser pesquisada. 2º Parâmetro: [Vetor de Campos] = Vetor de campos da tabela para composição do filtro, para mais de um campo utilize a vírgula (,) exemplo: [‘CAI_DOCUMENTO’, ‘CAI_PARCELA’]. 3º Parâmetro: [Vetor de Valores] = Vetor de valores a serem atribuídos no filtro, em conformidade com o parâmetro acima, para mais de um campo utilize a vírgula (,) exemplo: [100, 1]. Exemplo:

Page 111: Manual XMaker

111

if not Ptabela(TabGlobal.Dclientes, [‘CLI_CODIGO’], [TabGlobal.Dvendas.CLI_CODIGO.Conteudo]) then MessageDlg(‘Cliente não encontrado ...’, mtWarning, [mbOk], 0); 2) Pesquisa registros realiza cálculos e retorna os valores desejados: Sintaxe: Ptabela(Tabela: TTabela, [Vetor de Cálculos]: Variant, Filtro: String, Resultado: Variant): Boolean; 1º Parâmetro: Tabela = Tabela a ser pesquisada. 2º Parâmetro: [Vetor de Cálculos] = Vetor de cálculos, para mais de um campo utilize a vírgula (,) exemplo: ['SUM(QUANT)', 'SUM(PRECO * QUANT)']. 3º Parâmetro: Filtro = Expressão de filtragem. 4º Parâmetro: Resultado = Variável do tipo "Variant", previamente declarada, irá conter o resultado dos cálculos (2º Parâmetro). Exemplo: var CamposResultado: Variant; begin if Ptabela(TabGlobal.Ditvendas, ['SUM(QUANT)', 'SUM(PRECO * QUANT)'], 'NUMERO = '+IntToStr(TabGlobal.DVENDAS.Numero.Conteudo),

Page 112: Manual XMaker

112

CamposResultado) then begin Quant.Value := CamposResultado[0]; Total.Value := CamposResultado[1]; end; end; 3) Pesquisa registros e retorna os valores desejados: Sintaxe: Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor de Valores]: Variant, [Vetor de Campos p/retorno]: String, Resultado: Variant): Boolean; 1º Parâmetro: Tabela = Tabela a ser pesquisada. 2º Parâmetro: [Vetor de Campos] = Vetor de campos da tabela para composição do filtro, para mais de um campo utilize a vírgula (,) exemplo: [‘CAI_DOCUMENTO’, ‘CAI_PARCELA’]. 3º Parâmetro: [Vetor de Valores] = Vetor de valores a serem atribuídos no filtro, em conformidade com o parâmetro acima, para mais de um campo utilize a vírgula (,) exemplo: [100, 1]. 4º Parâmetro: [Vetor de Campos p/retorno] = Vetor de campos da tabela para retorno em "Resultado", para mais de um campo utilize a vírgula (,) exemplo: [‘CAI_DATA’, ‘CAI_HISTORICO’]. 5º Parâmetro: Resultado = Variável do tipo "Variant", previamente declarada, irá conter o resultado do conteúdo dos campos (4º Parâmetro).

Page 113: Manual XMaker

113

Exemplo: var CamposResultado: Variant; begin if Ptabela(TabGlobal.Dclientes, ['CLI_CODIGO'], [TabGlobal.Dvendas.CLI_CODIGO.Conteudo], ['CLI_NOME', 'CLI_ENDERECO'], CamposResultado) then begin Nome.Value := CamposResultado[0]; Endereco.Value := CamposResultado[1]; end; end; 4) Pesquisar um registro em uma tabela e atualiza campos (update): Sintaxe: Ptabela(Tabela: TTabela, [Vetor de Campos]: String, [Vetor de Valores]: Variant, Update: String): Boolean; 1º Parâmetro: Tabela = Tabela a ser pesquisada. 2º Parâmetro: [Vetor de Campos] = Vetor de campos da tabela para composição do filtro, para mais de um campo utilize a vírgula (,) exemplo: [‘CAI_DOCUMENTO’, ‘CAI_PARCELA’]. 3º Parâmetro: [Vetor de Valores] = Vetor de valores a serem atribuídos no filtro, em conformidade com o parâmetro acima, para mais de um campo utilize a vírgula (,) exemplo: [100, 1].

Page 114: Manual XMaker

114

4º Parâmetro: Update = Expressão em SQL para atualização (Update). Exemplo: if not PTabela(TabGlobal.DESTOQUE, ['CODIGO'], [TabGlobal.DITVENDAS.PRODUTO.Conteudo], 'QUANTIDADE = QUANTIDADE - '+FracToStr(TabGlobal.DITVENDAS.QUANT.Conteudo)) then MessageDlg(‘Falha na atualização ...’, 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º Parâmetro: Tabela = Tabela a ser pesquisada. 2º Parâmetro: [Vetor de Campos] = Vetor de campos da tabela para composição do filtro, para mais de um campo utilize a vírgula (,) exemplo: [‘CAI_DOCUMENTO’, ‘CAI_PARCELA’]. 3º Parâmetro: [Vetor de Valores] = Vetor de valores a serem atribuídos no filtro, em conformidade com o parâmetro acima, para mais de um campo utilize a vírgula (,) exemplo: [100, 1]. 4º Parâmetro: Excluir = Variável para confirmação da exclusão. Exemplo:

Page 115: Manual XMaker

115

if not Ptabela(TabGlobal.Dclientes, [‘CLI_CODIGO’], [TabGlobal.Dvendas.CLI_CODIGO.Conteudo], True) then MessageDlg(‘Erro na exclusão do registro ...’, mtError, [mbOk], 0);

7.2. Rotinas Diversas “Rotinas.Pas”

7.2.1 Função ConstStr

• Declaração

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

• Descrição

Prenche uma variável string “Ch” com uma seqüência de caracteres de tamanho “N”.

• Exemplo

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

7.2.2 Função DiretorioComBarra

• Declaração

function DiretorioComBarra(NomeDir: string): string;

• Descrição

Insere a última barra invertida ao nome do diretório “NomeDir”, caso seja necessário.

Page 116: Manual XMaker

116

• Exemplo

Pasta := DiretorioComBarra(DirWindows);

7.2.3 Função DiretorioSemBarra

• Declaração

function DiretorioSemBarra(NomeDir: string): string;

• Descrição

Retira a última barra invertida do nome do diretório “NomeDir”, caso seja necessário.

• Exemplo

Pasta := DiretorioSemBarra(DirWindows);

7.2.4 Função RetiraHK

• Declaração

function RetiraHK(S: string): string;

• Descrição

Retira os caracteres “&” e “...” de uma string “S”.

• Exemplo

titulo := RetiraHK(mnu_clientes.Caption);

Page 117: Manual XMaker

117

7.2.5 Função ArrayOfString

• Declaração

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

• Descrição

Copia o conteúdo de um array “OpenArray” para uma variável string, acrescentando o caractere “separador” entre cada elemento.

• Exemplo

lista := ArrayToString(listbox1.items, ‘;’);

7.2.6 Função StringToArray

• Declaração

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

• Descrição

Copia os diversos elementos de uma string “St” que estão separados pelo caractere “Separador” para uma lista do tipo “TStringList”.

• Exemplo

Page 118: Manual XMaker

118

StringToArray(‘Azul;Branco;Amarelo’, ‘;’ , Lista);

7.2.7 Função DirWindows

• Declaração

function DirWindows: string;

• Descrição

Retorna a pasta de instalação do sistema operacional “Windows”.

• Exemplo

Pasta := DirWindows;

7.2.8 Função RetiraBrancos

• Declaração

function RetiraBrancos(Str: string): string;

• Descrição

Retira todos os caracteres brancos de uma variável string “Str”.

• Exemplo

Pasta := RetiraBrancos(DirWindows);

Page 119: Manual XMaker

119

7.2.9 Função ExecutaForm

• Declaração

procedure ExecutaForm(FormClass: TFormClass; var Reference);

• Descrição

Executa formulários do tipo MDI.

• Exemplo

ExecutaForm(TFormClientes,FormClientes);

7.2.10 Função CopiaArquivo

• Declaração

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

• Descrição

Copia o arquivo “Origem” para o arquivo “Destino”. Retorna True caso a cópia seja bem sucedida.

• Exemplo

Ok := CopiaArquivo(‘C:\Projeto\Base.Gdb’,

‘D:\Base.Gdb’);

Page 120: Manual XMaker

120

7.2.11 Função CopiaArquivoMascara

• Declaração

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

• Descrição

Copia todos os arquivos da pasta “Origem” para a pasta “Destino”, conforme a máscara. Retorna True caso todas as cópias sejam bem sucedidas.

• Exemplo

Ok := CopiaArquivoMascara(‘C:\Projeto\’, ‘D:\’,

‘*.Gdb’) ;

7.2.12 Função PadR

• Declaração

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

• Descrição

Alinha o conteúdo da variável string “InStr” à esquerda, dentro de um tamanho definido em “TotalLen”.

• Exemplo

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

Page 121: Manual XMaker

121

7.2.13 Função PadL

• Declaração function PadL(InStr: string; TotalLen: Integer): string;

• Descrição

Alinha o conteúdo da variável string “InStr” à direita, dentro de um tamanho definido em “TotalLen”.

• Exemplo

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

7.2.14 Função Center

• Declaração function Center(InStr: string; TotalLen: Integer): string;

• Descrição

Centraliza o conteúdo da variável string “InStr”, dentro de um tamanho definido em “TotalLen”.

• Exemplo

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

Page 122: Manual XMaker

122

7.2.15 Função Space

• Declaração function Space(TotalLen: Integer): string;

• Descrição

Preenche uma variável string com espaços em branco conforme o tamanho contido em “TotalLen”.

• Exemplo

S := Space(40);

7.2.16 Função DataAtual

• Declaração function DataAtual: TDateTime;

• Descrição

Retorna a data atual do sistema.

• Exemplo

data := DataAtual;

7.2.17 Função HoraAtual

• Declaração

Page 123: Manual XMaker

123

function HoraAtual: string;

• Descrição

Retorna a hora atual do sistema em uma variável string, no formato 999999.

• Exemplo

hora := HoraAtual;

7.2.18 Função PorExtenso

• Declaração function PorExtenso(FValor: Double): String;

• Descrição

Retorna um valor inteiro ou fracionário por extenso.

• Exemplo

extenso := PorExtenso(100.50);

7.2.19 Função Encript

• Declaração Encript(Encript : String): string;

• Descrição

Page 124: Manual XMaker

124

Codifica uma variável string “Encript”.

• Exemplo

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

7.2.20 Função Decript

• Declaração function Decript(Decript : String): string;

• Descrição

Decodifica uma variável string “Decript”.

• Exemplo

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

7.2.21 Função StrZero

• Declaração function StrZero(N: integer; Tamanho: integer): string;

• Descrição

Converte um número inteiro em string e atribui zero à esquerda conforme o tamanho definido em “Tamanho”.

• Exemplo

Page 125: Manual XMaker

125

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

7.2.22 Função Dia

• Declaração function Dia( Data: TDateTime ): string;

• Descrição

Retorna uma variável string com o número do dia de uma data.

• Exemplo

Nr_dia := Dia(DataAtual);

7.2.23 Função Mes

• Declaração function Mes( Data: TDateTime ): string;

• Descrição

Retorna uma variável string com o número do mês de uma data.

• Exemplo

Nr_mes := Mes(DataAtual);

Page 126: Manual XMaker

126

7.2.24 Função MesAno

• Declaração function MesAno( Data: TDateTime ): string;

• Descrição

Retorna uma variável string com o número do mês e ano de uma data, no formato 99/9999.

• Exemplo

Nr_mes_ano := MesAno(DataAtual);

7.2.25 Função Ano

• Declaração function Ano( Data: TDateTime ): string;

• Descrição

Retorna uma variável string com o número do ano de uma data, no formato 9999.

• Exemplo

Nr_ano := Ano(DataAtual);

7.2.26 Função UltimoDiadoMes

• Declaração

Page 127: Manual XMaker

127

function UltimoDiaDoMes( MesAno: string ): string;

• Descrição

Retorna uma variável string com o número do último dia de determinado mês e ano.

• Exemplo

Ultimo_dia := UltimoDiadoMes(Mes(DataAtual) +

Ano(DataAtual));

7.2.27 Função DDMMAA

• Declaração function DDMMAA( Data: string ): string;

• Descrição

Converte uma variável string “Data” para o formato: 99/99/99.

• Exemplo

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

7.2.28 Função MascValor

• Declaração

Page 128: Manual XMaker

128

function MascValor(Valor: Extended; Mascara: string): string;

• Descrição

Converte uma variável fracionária “Valor” para uma string formatada “Mascara”.

• Exemplo

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

7.2.29 Função MascTexto

• Declaração function MascTexto(S, Mascara: String): string;

• Descrição

Retorna uma variável string “S” formatada “Mascara”.

• Exemplo

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

7.2.30 Função TrocaString

• Declaração function TrocaString(const S, OldPattern, NewPattern: string; Flags: TReplaceFlags): string;

Page 129: Manual XMaker

129

• Descrição

Substitui os caracteres “OldPattern” pelos caracteres “NewPattern” dentro do variável string “S”. As opções de substituição são definidos em “Flags”.

• Exemplo

cpf := TrocaString(‘999.999.999-99’, ‘.’, ‘’,

[rfReplaceAll, rfIgnoreCase]);

7.2.31 Função ContaOcorrencia

• Declaração function ContaOcorrencia(Substr: string; S: string): Integer;

• Descrição

Retorna quantas ocorrências do caractere “Substr” existe na variável “S”.

• Exemplo

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

7.2.32 Função FracToStr

• Declaração function FracToStr(Valor: Extended): String;

• Descrição

Page 130: Manual XMaker

130

Converte um número fracionário “valor” em uma variável string. É retornado o ponto para as casas decimais e não a vírgula como no método “FloatToStr”. Este método é o mais indicado para atribuições em expressões “SQL”.

• Exemplo

numero := FracToStr(100.50);

7.2.33 Função CalcC

• Declaração function CalcC(N1,N2: Extended;Operador: String; Decimal: Integer): Extended;

• Descrição

Arredonda uma expressão de cálculo e retorna com o número de casas decimais desejados “Decimal”. Os operadores suportados são: + (adição), – (subtração), * (multiplicação) e / (divisão).

• Exemplo

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

7.2.34 Função Exponencial

• Declaração

Page 131: Manual XMaker

131

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

• Descrição

Faz o cálculo exponencial entre os valores “N1” e “N2”.

• Exemplo

calculo := Exponencial(5, 2);

7.2.35 Função StrNumerica

• Declaração function StrNumerica(N: String) : Boolean;

• Descrição

Verifica se variável string “N” possui apenas números.

• Exemplo

ok := StrNumerica(‘123456’);

7.2.36 Função ConverteLogico

• Declaração function ConverteLogico(Valor: Boolean): string;

• Descrição

Page 132: Manual XMaker

132

Converte uma expressão lógica em uma variável string. True = T e False = F.

• Exemplo

ok := ConverteLogico(True);

7.2.37 Função ConverteStrToLog

• Declaração function ConverteLogico(Valor: Boolean): string;

• Descrição

Converte uma variável string em uma expressão lógica. T = True e F = False.

• Exemplo

ok := ConverteStrToLog(‘T’);

7.2.38 Função SerialHD

• Declaração Function SerialHD(FDrive:String) :String;

• Descrição

Retorna o número de série de uma unidade de disco. Pode ser utilizado para criar um sistema de proteção contra cópias não autorizadas.

Page 133: Manual XMaker

133

• Exemplo

Serial := SerialHD(‘C’); // Unidade C:\

7.2.39 Função Vnivel

• Declaração function VNivel: Boolean;

• Descrição

Caixa de diálogo de senha, o usuário digita a senha se for um usuário “Master” retorna True, senão retorna False.

• Exemplo

If Vnivel then ...

7.3. Rotinas de Edição “RotinaEd.Pas”

7.3.1 Função RetornaAutoIncremento

• Declaração function RetornaAutoIncremento(TabelaPrincipal: TTabela; Campo: String; Condicao: String; Qtd: Integer = 1): Variant;

• Descrição

Page 134: Manual XMaker

134

Retorna o próximo número a ser utilizado em uma Tabela. O projetista poderá informar uma expressão de filtro em “Condicao”, como default o próximo registro será acrescido de 1 (um).

• Exemplo

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

7.3.2 Função AtribuiAutoIncremento

• Declaração procedure AtribuiAutoIncremento(TabelaPrincipal: TTabela; Campo: String; Componente: TComponent; Condicao: String; Editavel: Boolean);

• Descrição

Atribui o próximo número a ser utilizado em uma Tabela em um objeto de edição. O projetista poderá informar uma expressão de filtro em “Condicao”, como default o próximo registro será acrescido de 1 (um).

• Exemplo

AtribuiAutoIncremento(TabGlobal.DCLIENTES, ‘CLI_CODIGO’, Xedit1, ‘’, True);

Page 135: Manual XMaker

135

7.3.3 Função LocalizaTabela

• Declaração function LocalizaTabela(Nome: String): TTabela;

• Descrição

Localiza uma Tabela do projeto pelo nome.

• Exemplo

Tabela_ed := LocalizaTabela(‘CLIENTES’);

Page 136: Manual XMaker

136

8. DICAS E MACETES

A seguir iremos mostrar algumas dicas, macetes e soluções para utilização do X-Maker e dos projetos gerados.

8.1. Ao abrir ou criar num novo projeto no X-Maker à mensagem de erro "unavailable database" (Banco de Dados Indisponível) é apresentada, o que fazer?

A mensagem "unavailable database" indica que firebird não está gerenciando corretamente. Para equipamentos que utilizem o windows 98 é necessário a reinicialização do micro após a instalação do X-Maker, se não for o caso outro problema pode ocorrer entre o FireBird e o InterBase. Em seu micro já estava instalado o InterBase ? Faça a seguinte operação: 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. Faça a instalação do FireBird "C:\XMaker\Firebird\Firebird.exe".

É possível configurar a forma de execução do Firebird, em Painel de Controle -> Firebird 1.5 Server Manager você pode alterar a forma de execução entre Service ou Application. Como padrão o Firebird é executado como Service. Faça a mudança do tipo de execução caso o problema continue.

Page 137: Manual XMaker

137

8.2. Quando tento compilar um projeto através do X-Maker a mensagem de erro “Compilador não encontrado” é apresentada, o que fazer?

Em “Propriedades” do projeto o projetista define qual versão do Delphi será usada no projeto. Provavelmente a versão definida não corresponde à versão do Delphi instalada em seu micro, vá em “Propriedades” do projeto e faça a correção.

8.3. Toda vez que mando compilar o projeto através do X-Maker o Delphi é aberto e a compilação não é concluída, o que fazer?

Em qualquer versão 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” não estiver instalado em seu micro a compilação deverá ser realizada diretamente no Delphi, veja o tópico “Compilando e Executando pelo Delphi”, não substitua o “DCC32.EXE” pelo “DELPHI32.EXE”.

Page 138: Manual XMaker

138

8.4. Eu tenho o “4DOS” instalado em meu micro, ele pode interferir na compilação do projeto através do X-Maker?

A compilação do projeto pelo X-Maker é realizada através de comandos do MS-DOS, o “4DOS”, quando instalado, faz o gerenciamento desses comandos e não o MS-DOS. Em algumas versões do “4DOS” foi constatado um tratamento diferente nos comandos fazendo com que o projeto não seja compilado. Para esse caso sugerimos que a compilação seja feita diretamente no Delphi, veja o tópico “Compilando e Executando pelo Delphi”.

8.5. Como atribuir o nome do usuário (controle de acesso) em um campo da tabela?

O X-Maker cria uma estrutura pública para armazenar vários dados referentes ao projeto. Entre esses dados existe o nome do usuário “corrente”, o termo “corrente” indica o usuário atual que acessou o projeto final.

No formulário de entrada de dados, faça a edição do evento “Ao Entrar” do campo desejado.

procedure TFormClientes.USUARIOEnter(Sender: TObject); begin TabGlobal.DCLIENTES.USUARIO.Conteudo := Sistema.Usuario; end;

Vejamos outras informações armazenadas na estrutura “Sistema”:

Page 139: Manual XMaker

139

Sistema.Titulo: String Título do projeto definido em “Propriedades”.

Sistema.Versão: String Versão do projeto definido em “Propriedades”.

Sistema.Analista: String Analista responsável pelo projeto definido em “Propriedades”.

Sistema.Programador: String Programador do projeto definido em “Propriedades”.

Sistema.EstiloData: String Estilo da data “dd/mm/yy” ou “dd/mm/yyyy” utilizado no projeto.

Sistema.ConfirmaSaida: Boolean Valor lógico (True ou False) que identifica se a mensagem de confirmação de saída do projeto final será apresentada ou não.

Sistema.ControleAcesso: Booelan

Valor lógico (True ou False) que identifica se o controle de acesso está habilitado.

Sistema.SenhaInicial: String Senha Inicial do controle de acesso definido em “Propriedades”.

Sistema.HintBalao: Boolean Valor lógico (True ou False) para habilitar ou desabilitar a visualização das mensagens (hits) na forma de balão.

Sistema.Pasta: String Pasta de localização do executável do projeto final.

Sistema.Usuário: String Usuário “corrente”. Sistema.Senha: String Senha do usuário “corrente”. Sistema.Master: Boolean Valor lógico (True ou False)

que identifica se o usuário “corrente” está classificado

Page 140: Manual XMaker

140

como “Master” (acesso total).Sistema.Grupo: String Grupo do usuário “corrente”. Sistema.ListaUsuarios: TstringList

Lista completa dos usuários cadastrados no controle de acesso.

Sistema.EmpresaUsr: String Nome da Empresa usuária “corrente”.

Sistema.EnderecoUsr: String Endereço da Empresa usuária “corrente”.

Sistema.BairroUsr: String Bairro da Empresa usuária “corrente”.

Sistema.CidadeUsr: String Cidade da Empresa usuária “corrente”.

Sistema.UfUsr: String UF da Empresa usuária “corrente”.

Sistema.CepUsr: String CEP da Empresa usuária “corrente”.

Sistema.CNPJUsr: String CNPJ / CPF da Empresa usuária “corrente”.

Sistema.IEUsr: String Inscrição Estadual da Empresa usuária “corrente”.

Sistema.FonesUsr: String Telefone(s) da Empresa usuária “corrente”.

Sistema.LogoUsr: String Localização da imagem de logotipo da Empresa usuária “corrente”.

Sistema.Integridade: Boolean Valor lógico (True ou False) para habilitar ou desabilitar o uso da verificação da integridade referencial na exclusão de um registro.

Page 141: Manual XMaker

141

8.6. Como filtrar ou ordenar uma tabela na abertura do formulário de entrada de dado?

Faça a edição do evento “Abertura de Tabelas” (AbreTabelas) do formulário.

Exemplo de Filtragem: function TFormRContas.AbreTabelas: Boolean; begin {07-Início do Bloco Modular. Modificações não serão preservadas} Result := True; {99-Final do Bloco Modular. Modificações não serão preservadas} TabGlobal.DCONTAS.Filtro.Text := 'CLI_CODIGO = 100'; end;

Exemplo de Ordenação: function TFormRContas.AbreTabelas: Boolean; begin {07-Início do Bloco Modular. Modificações não serão preservadas} Result := True; {99-Final do Bloco Modular. Modificações não serão preservadas} TabGlobal.DCONTAS.ChaveIndice := 'CON_LANCTO Desc'; end; * Desc = Indica que o índice será decrescente.

Page 142: Manual XMaker

142

8.7. Como ocultar um campo via código para que o mesmo não seja visualizado no Grid de consulta do formulário?

Faça a edição do evento de “Inicialização” (FormShow) do formulário de entrada de dados.

Exemplo: TabGlobal.DCLIENTES.NOME.Valor.Visible := False; * A propriedade Valor é um TField vinculado a tabela e ao campo.

8.8. Como configurar o projeto final para compartilhamento das Tabela em uma rede?

Para configurar o uso em Rede dos projetos gerados no X-Maker, é simples, execute o projeto e clique no Arquivo -> Empresa Usuária e clique no botão “Editar”. No campo Localização informe o número do IP ou o nome do servidor + pasta + base de dados.

Exemplo:

Localização (DataBase): C:\XMaker\Exemplos\Contas\Base.Gdb

Servidor (HostName): 195.195.1.1

Ou

Servidor (HostName): NetServidor

Page 143: Manual XMaker

143

Nas estações o FireBird tem que estar instalado ! Crie um atalho nas estações buscando o executável do projeto e pronto ! Quando usar a Pasta Básica em Exibir -> Ambiente? Caso você não queira buscar o executável da rede, cada estação teria o executável do projeto, utilize a pasta básica para buscar as definições de usuário e localização da base de dados.

Exemplo:

\\Servidor\Dados\XMaker\Exemplos\Contas\

ou

F:\XMaker\Exemplos\Contas\

* As configurações em Exibir -> Ambiente são gravadas na pasta do Windows, o nome do arquivo é o nome do executável + a extensão .INI Exemplo: C:\Windows\Contas.INI Faça e exclusão desse arquivo para voltar as configurações padrões ou faça a edição do mesmo através do Edit ou Bloco de Notas.

8.9. Como configurar o botão “Tabelas” no formulário de Entrada de Dados?

Page 144: Manual XMaker

144

Este botão é utilizado para criação de um menu de atalhos para acesso a outros formulários do projeto, normalmente são formulários que possuem algum tipo de vinculo com o formulário em questão. Como exemplo podemos citar um formulário de Cadastro de Produtos do Estoque, ao cadastrar um produto são exigidas algumas informações do tipo: Grupo, Família, Fornecedor e Unidade, e existe uma Tabela e formulário para cada uma dessas informações. Para criar um acesso mais rápido e esses formulários o projetista poderá utilizar o botão “Tabelas”.

Inicialmente este botão possui a propriedade “Visible” desabilitada, para habilitar clique no botão e escolha a opção “Rodapé – Manutenção” ou “Rodapé – Consulta”.

Clique no botão “Tabelas” e habilite a propriedade “Visible” na janela “Object Inspector”.

Page 145: Manual XMaker

145

Faça a edição do evento “BtnRelac_1Click”, clique em “OnClick” na janela “Object Inspector”.

Page 146: Manual XMaker

146

Insira a codificação entre os blocos {09} e {99}, utilize o método “AddMenuItem” para atribuir um novo item ao menu da tabelas relacionadas.

Exemplo:

AddMenuItem(PopRelacionados, 'Atividades', 'mnuAtividades', True , 0, 6001); Parâmetros do Método “AddMenuItem”: PopRelacionados = Objeto “PopMenu” a ser utilizado. ‘Atividades’ = Título a ser apresentado no menu. ‘mnuAtividades’ = Nome interno do componente, não poderá ser utilizado nome de outro componente utilizado no formulário. Como padrão o projetista poderá utilizar a sigla “mnu” + o nome do formulário. True = Habilitado e False = Desabilitado. 0 = Número do ícone de imagem de apresentação.

Page 147: Manual XMaker

147

6001 = Número de seqüência de identificação utilize a seqüência 6001, 6002, 6003, etc. para os demais formulários. Salve a codificação do evento e faça a edição do arquivo fonte,

clique no botão: “Editar arquivo fonte”. Vá para o bloco de codificação do evento “PopRelacionadosClick”.

Insira a codificação entre os blocos {10} e {99}, utilize o botão “form” na barra de ferramentas do “Mini Editor” para inserir a codificação de chamada do formulário desejado.

Exemplo: {10-Início do Bloco Modular. Modificações não serão preservadas}

Page 148: Manual XMaker

148

if MenuItem.Tag = 6001 then begin FormAtividades := TFormAtividades.Create(Application); Try FormAtividades.ShowModal; Finally FormAtividades.Free; end; end {99-Final do Bloco Modular. Modificações não serão preservadas}

É necessário referenciar as units dos formulários utilizados na cláusula “uses”.

O projetista poderá utilizar o botão “Tabelas” para outras finalidades ou até mesmo remove-lo, fica a critério do projetista.

8.10. Como posso eliminar os registros excluídos e tabelas temporárias em minha base de dados “Firebird/Interbase”?

O utilitário "GBAK" que é instalado junto com Firebird faz esse tipo de operação, a técnica é fazer um backup e depois restaurar, o "GBAK" faz um backup somente das informações realmente necessárias e depois restaura. Na restauração os índices são recriados e o seu banco de dados é totalmente "Balanceado".

Page 149: Manual XMaker

149

Após a utilização do "GBAK" o seu banco de dados irá conter um tamanho bem menor e a sua performace será melhorada. Exemplo de utilização do "GBAK": . Vá para o "Prompt do MS-DOS" . Acesse a pasta de localização 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 instalação do Firebird. SET ISC_USER = Variável de ambiente que irá conter o usuário "Master". SET ISC_PASSWORD = Variável de ambiente que irá conter a senha do usuário "Master". BASE.GDB = Nome do banco de dados de exemplo. COPY BASE.GDB = Faz uma cópia do banco de dados original, medida de segurança. GBAK -B = Faz um backup do banco de dados e grava no arquivo com extensão "GBK". GBAK -R = Restaura o backup do banco de dados "GBK". Para facilitar esses comandos poderão ser gravados em um

Page 150: Manual XMaker

150

arquivo de "Lote", exemplo: "Balancer.Bat" Execute o "Balancer.Bat" sempre que houver necessidade de melhorar a perfomace de acesso, e lembre-se nunca faça esse tipo de operação quando o banco de dados estiver em uso, seja nas estações ou no servidor.