manual xmaker
DESCRIPTION
Xmaker tutorialTRANSCRIPT
![Page 1: Manual XMaker](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/1.jpg)
1
MANUAL DO USUÁRIO
http://www.xmaker.com.br
Modular Software Uberaba – M.G.
![Page 2: Manual XMaker](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/24.jpg)
24
Barra de Ferramentas
Menu Principal
![Page 25: Manual XMaker](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/39.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/41.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/42.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/43.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/44.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/45.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/46.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/47.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/48.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/49.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/50.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/51.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/52.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/53.jpg)
53
Processo “Direto”.
Processo “Inverso”.
![Page 54: Manual XMaker](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/54.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/55.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/56.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/57.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/58.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/59.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/60.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/61.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/62.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/63.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/64.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/65.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/66.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/67.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/68.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/69.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/70.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/71.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/72.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/73.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/74.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/75.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/76.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/77.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/78.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/79.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/80.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/81.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/82.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/83.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/84.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/85.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/86.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/87.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/88.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/89.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/90.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/91.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/92.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/93.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/94.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/95.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/96.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/97.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/98.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/99.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/100.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/101.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/102.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/103.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/104.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/105.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/106.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/107.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/108.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/109.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/110.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/111.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/112.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/113.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/114.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/115.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/116.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/117.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/118.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/119.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/120.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/121.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/122.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/123.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/124.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/125.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/126.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/127.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/128.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/129.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/130.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/131.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/132.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/133.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/134.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/135.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/136.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/137.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/138.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/139.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/140.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/141.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/142.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/143.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/144.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/145.jpg)
145
Faça a edição do evento “BtnRelac_1Click”, clique em “OnClick” na janela “Object Inspector”.
![Page 146: Manual XMaker](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/146.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/147.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/148.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/149.jpg)
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](https://reader030.vdocuments.pub/reader030/viewer/2022033011/563db9e0550346aa9aa0bfb8/html5/thumbnails/150.jpg)
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.