SlideShare uma empresa Scribd logo
1 de 120
Baixar para ler offline
MANUAL DO USUÁRIO
www.xmaker.com.br
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 Domínio Tecnologia
Ltda. A Domínio Tecnologia Ltda. 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.
1. O QUE É O X-MAKER?...................................................................................................6
2. INTERFACE DO X-MAKER ...........................................................................................8
2.1. Menu Principal do X-Maker ............................................................................................. 8
2.2. Barra de Ferramentas ....................................................................................................... 9
2.3. Barra de Assistente.......................................................................................................... 10
3. CONCEITOS BÁSICOS .................................................................................................11
3.1. Banco de Dados................................................................................................................ 11
3.2. Tabelas............................................................................................................................. 11
3.3. Campos ............................................................................................................................ 11
3.4. Campo Calculado ............................................................................................................ 12
3.5. Integridades & Relacionamentos .................................................................................... 12
3.6. Processos Diretos/Inversos .............................................................................................. 12
3.6. Dicionário de Dados......................................................................................................... 13
4.CONTEÚDO DAS PASTAS ............................................................................................14
5. CONFIGURANDO O X-MAKER...................................................................................15
5.1. Compilando e Executando pelo Delphi ........................................................................... 16
5.2. Modelos............................................................................................................................ 17
5.3. Propriedades do Editor ................................................................................................... 18
5.4. Campos Predefinidos....................................................................................................... 19
6.CONHECENDO AS ETAPAS DE DEFINIÇÃO DE UM PROJETO..........................20
6.1. 1º Passo – Propriedades do Projeto................................................................................. 21
6.2. 2º Passo – Tabelas............................................................................................................ 23
6.2.1 Definindo Atributos da Tabela ........................................................................................................ 24
6.2.2 Definição do Banco de Dados ......................................................................................................... 26
6.2.4 Campos da Tabela ........................................................................................................................... 28
6.2.5 Nome ............................................................................................................................................... 29
6.2.5.1 Tipo .............................................................................................................................................. 29
6.2.5.2 Chave............................................................................................................................................ 30
6.2.5.3 Tamanho....................................................................................................................................... 30
6.2.5.4 Autoincremento............................................................................................................................ 30
6.2.5.5 Edição........................................................................................................................................... 30
6.2.5.6 Calculado...................................................................................................................................... 31
6.2.5.7 Máscara ........................................................................................................................................ 31
6.2.5.8 Campos Numéricos e Fracionários:.............................................................................................. 31
6.2.5.9 Campos Alfanuméricos: ............................................................................................................... 32
6.2.5.10 Título .......................................................................................................................................... 32
6.2.5.11 Índice.......................................................................................................................................... 32
6.2.5.12 Invisível...................................................................................................................................... 32
6.2.5.13 Ajuda .......................................................................................................................................... 32
6.2.5.14 Valor Padrão............................................................................................................................... 33
6.2.5.15 S. Atribui “Sempre Atribui”....................................................................................................... 33
6.2.5.16 Pré-Validação ............................................................................................................................. 33
6.2.5.17 Ação............................................................................................................................................ 33
6.2.5.18 Limpar Campo............................................................................................................................ 33
6.2.5.19 Validação.................................................................................................................................... 33
6.2.5.20 Procurar em ................................................................................................................................ 35
6.2.5.21 Msg. de Erro “Mensagem de Erro” ............................................................................................ 35
6.2.5.22 Valores Válidos .......................................................................................................................... 35
6.2.6 Definição da Chave Estrangeira ...................................................................................................... 36
6.2.7 Edição de Campo Calculado............................................................................................................ 38
6.2.8 Índices (Chaves Secundárias).......................................................................................................... 39
6.2.9 Integridades & Relacionamentos..................................................................................................... 40
6.2.10 Processos Diretos/Inversos............................................................................................................ 42
6.2.11 Lançamentos.................................................................................................................................. 46
6.3. 3º Passo – Formulários .................................................................................................... 49
6.3.1 Definindo o Layout do formulário................................................................................................... 50
6.3.2. Propriedades (Object Inspector) ..................................................................................................... 52
6.3.2.2 Grid de Relacionamento ............................................................................................................... 53
6.3.2.3 Movimentação e Redimensionamento.......................................................................................... 55
6.3.3 Mini Editor ...................................................................................................................................... 57
6.3.3.1 Estrutura do Arquivo Fonte .......................................................................................................... 58
6.3.4 Principais eventos............................................................................................................................ 59
6.3.4.1 Inicialização (FormShow) ............................................................................................................ 59
6.3.4.2 Abertura de Tabelas (AbreTabelas).............................................................................................. 59
6.3.4.3 Confirma Inclusão (ConfirmaInclusao)........................................................................................ 60
6.3.4.4 Confirma Modificação (ConfirmaModificacao)........................................................................... 60
6.3.4.5 Confirma Exclusão (ConfirmaExclusao)...................................................................................... 60
6.3.4.6 Confirma Gravação (ConfirmaGravacao) .................................................................................... 60
6.3.4.7 Ao Entrar Manutenção (TelaManutencao) ................................................................................... 60
6.3.4.8 Ao Entrar Consulta (TelaConsulta) .............................................................................................. 60
6.3.4.9 Atribui Valores (AtribuiValoresPadrao)....................................................................................... 61
6.3.4.10 Antes de Salvar (AntesdeSalvar)................................................................................................ 61
6.3.4.11 Antes de Incluir (AntesdeIncluir)............................................................................................... 61
6.3.4.12 Antes de Modificar (AntesdeModificar)..................................................................................... 61
6.3.4.13 Antes de Excluir (AntesdeExcluir)............................................................................................. 61
6.3.4.14 Depois de Incluir (DepoisdeIncluir) ........................................................................................... 61
6.3.4.15 Depois de Modificar (DepoisdeModificar)................................................................................. 61
6.3.4.16 Depois de Excluir (DepoisdeExcluir)......................................................................................... 61
6.3.4.17 Finalização (FormClose) ............................................................................................................ 62
6.4. 4º Passo – Relatórios, Etiquetas e Gráficos..................................................................... 62
6.4.1 Definindo o Relatório...................................................................................................................... 63
6.4.2 Filtragem ......................................................................................................................................... 64
6.4.3 Ordenação........................................................................................................................................ 67
6.4.4 Layout do Relatório......................................................................................................................... 67
6.4.5 Configurando Etiquetas................................................................................................................... 74
6.4.6 Configurando o Gráfico................................................................................................................... 74
6.5. 5º Passo – Menu ............................................................................................................... 76
Barra de Ferramentas................................................................................................................................ 77
Rotina Avulsa........................................................................................................................................... 77
6.5. 6º Passo – Compilação ..................................................................................................... 78
7. FONTES GERADOS PELO X-MAKER........................................................................80
7.1. Estrutura do componente “Tabela”................................................................................ 82
7.2. Métodos Pré-definidos..................................................................................................... 89
7.3. Métodos de Edição..........................................................................................................101
8. FAQ (Perguntas Freqüentes)........................................................................................102
9.DICAS DE PROGRAMAÇÃO.......................................................................................115
1. O QUE É O X-MAKER?
O X-Maker é um gerador de aplicativos para o ambiente Windows, voltado
para desenvolvedores de software. Utilizando todo potencial da linguagem
orientada a objetos, acelera o processo de desenvolvimento de forma
extremamente eficiente, 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, 7, 2005, 2006 e
Turbo Delphi 2006, 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/2.x, SQLBase,
Oracle, SQLServer, SyBase, DB2, Informix, ODBC, MySql, PostgreSQL e OLEDB.
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:
• Microsoft Windows (98 ou versão posterior).
• Delphi 5, 6, 7, 2005, 2006 ou Turbo Delphi 2006 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.
1.2. Instalando o X-Maker
A instalação do X-Maker em seu computador é feita pelo programa Instalar.
1.2.1 Para instalar o X-Maker através do arquivo Instalar:
* Execute o arquivo em seu computador.
* Siga as instruções mostradas na tela.
1.2.2 Pasta de Instalação:
A pasta de Instalação do X-Maker padrão é – C:XMaker6 - 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:XMaker6 -
D:XMaker6 – F:XMaker6 - …
1.2.3 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.
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:
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.
Abrir Projeto: Faz a abertura de projetos já existentes.
Fechar Projeto: Fecha o projeto em aberto.
Salvar Arquivo (Ctrl+S): Salva as modificações realizadas em um arquivo fonte em
edição.
Fontes do Projeto: Lista os arquivos fontes da pasta do projeto.
Formulários do Projeto: Lista os formulários da pasta do projeto.
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 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 ou o utilitário “Adapter” previamente compilados.
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 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.
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 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 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.
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.6. 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.
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:XMaker6), outras pastas são criadas
para diversas finalidades.
• C:XMaker6Comp : 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:XMaker6Delphi : 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:XMaker6Doc: Contém os arquivos de ajuda interna do X-Maker.
• C:XMaker6Exemplos : 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:XMaker6Imagem : Contém uma coletânea de mais de 700 bitmaps
(bmp) e ícones (ico), para utilização nos projetos.
• C:XMaker6Projetos : Esta pasta é criada para armazenamento de novos
projetos, inicialmente não possui nenhum arquivo, serve apenas como uma
sugestão de pasta de localização dos projetos, sua utilização é opcional.
• C:XMaker6Firebird : Contém o instalador do Firebird 2.x e o utilitário
IBConsole, esse utilitário é utilizado para manipular tabelas criadas pelo
Firebird.
5. CONFIGURANDO O X-MAKER
Uma configuração padrão acompanha o X-Maker em 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.
• 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, 7, 2005, 2006 ou
Turbo Delphi 2006) 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 CompDelphiFr234 e CompDelphi – “Exemplo:
C:XMaker6CompDelphi “.
• Componente do FreeReport: Abra o arquivo correspondente a versão do
Delphi.
• FREEREP5.DPK: Free Report para Delphi 5.
• FREEREP6.DPK: Free Report para Delphi 6.
• FREEREP7.DPK: Free Report para Delphi 7.
• FREEREP9.DPK: Free Report para Delphi 2005.
• FREEREP10.DPK: Free Report para Delphi 2006.
• FREEREP10.DPK: Free Report para Turbo Delphi 2006. Para
instalar o Free Report no Delphi utilize a pasta “Fr234Source” dentro
da pasta “CompDelphiFr234”, exemplo:
C:XMaker6CompDelphiFr234Source
• Instalando: Clique no botão Install. Ao fechar a janela de instalação
confirme qualquer mensagem de confirmação de atualização.
• Componentes do X-Maker: Abra o arquivo correspondente a versão do
Delphi.
• XMaker5.DPK: X-Maker para Delphi 5.
• XMaker6.DPK: X-Maker para Delphi 6.
• Xmaker7a2007.DPK: X-Maker para Delphi 7, 2005, 2006 e Turbo
Delphi 2006 e Delphi2007.
• Instalando: Clique no 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 ToolsEnvironment Options
selecione a aba “Library” no campo “Library Path”, verifique se existe o
seguinte path “C:XMaker6CompDelphi” (C:XMaker6 –Corresponde a
pasta de instalação do X-Maker) se não existir faça a inclusão do mesmo.
5.2. Modelos
O X-Maker utiliza a pasta “Delphi” (C:XMaker6Delphi) para armazenar os
modelos de módulos dos projetos, o projetista poderá alterar os modelos e
armazenar em pastas diferentes, dessa forma o modelo padrão é preservado.
O modelo padrão do X-Maker utiliza a pasta: C:XMaker6Delphi, se estiver
utilizando uma pasta diferente de C:XMaker6 faça a alteração através do botão
“Editar”. Ao criar um novo modelo informe o título de identificação e a pasta de
localização. Copie os arquivos da pasta padrão (C:XMaker6Delphi) para a pasta
do novo modelo. Em Propriedades do Projeto é possível escolher o modelo a ser
utilizado.
5.3. Propriedades do Editor
Essa opção fica disponível quando algum arquivo fonte fica aberto. É possível
personalizar algumas propriedades do editor.
• 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.
• 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.4. 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.
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
maior segurança para o projetista. A barra de Assistente do X-Maker contém as 6
(seis) 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.
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á
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.
• Controle de Acesso – Interno: Habilita a criação das tabelas do controle de
acesso dentro do próprio banco de dados do projeto, essa opção
desabilitada cria as tabelas de controle de acesso em arquivos externos
com extensão “.dat”.
• 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.
• 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.
• Modelo: Informe o modelo a ser utilizado no projeto.
• 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 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, 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.
Dica:
Para forçar uma geração dos arquivos fonte das Tabelas, marque a opção
“Regerar Fontes”. Ao fechar a janela de “Tabelas” os arquivos fonte serão
regerados.
6.2.1 Definindo Atributos da Tabela
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.
• Ativa: Informe se a Tabela está ativa no projeto, ou seja, opcionalmente o
projetista poderá desativar o uso da Tabela no projeto sem remover as
definições.
• 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.
• Abrir Tabela: Informe se a Tabela será aberta na inicialização do sistema, o
projetista poderá otimizar os processos de abertura de registros através
dessa propriedade.
• 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 na
aba “Banco de Dados”.
• 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.
• 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
O Banco de Dados irá gerenciar as Tabelas do projeto, sua utilização é
obrigatória.
• 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.
• 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.
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.
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 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.1 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.
• 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.2 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.3 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.
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.4 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.5 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 “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.6 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.7 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).
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 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.9 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.
• * 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.10 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.11 Í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.12 Invisível
Informe se o campo não será visível durante a consulta no formulário de
“Entrada de Dados”.
6.2.5.13 Ajuda
Informe a mensagem de ajuda do campo, essa mensagem é utilizada no
formulário de entrada dados (Hint).
6.2.5.14 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 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.15 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.16 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.17 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”.
6.2.5.18 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.19 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:XMaker3DelphiValidar.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:XMaker3Validacao.Lst” trata-se de um 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
• 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.20 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.21 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.22 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).
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)” irão permitir que o
usuário final pesquise um registro em uma Tabela relacionada, como exemplo
podemos citar a Tabela de Clientes e Atividades Comerciais em um Projeto, veja a
figura abaixo para uma maior compreensão.
O campo de "Atividade" possui um botão associado, ao clicar neste botão
um formulário de pesquisa é aberto, veja a imagem abaixo.
Através deste formulário o usuário poderá pesquisar e selecionar o registro
desejado.
Em "Relacionada com" você deverá escolher a Tabela de relacionamento, o
campo da "Tabela" em definição deverá ser associado com o campo
correspondente da Tabela "Relacionada com", não é obrigatório a utilização de um
mesmo nome para os campos a serem associados, mas o mesmos deverão
possuir uma mesma estrutura (tipo e tamanho).
Todos os campos "físicos" da Tabela relacionada poderão ser mostrados,
escolha os campos e a ordem de apresentação em "Campos a serem mostrados",
o primeiro campo da lista indica a ordenação da consulta.
O "Estilo de Pesquisa" pode ser "Formulário" ou "Combo Drop", o
"Formulário" possui recursos de "Filtragem Fixa" e "Pesquisar após", o "Combo
Drop" é mais simples e objetivo, é indicado para Tabelas com poucos registros e
campos.
A "Filtragem Fixa" cria uma seleção de registros a serem visualizados e
"Pesquisar após" pode ser "Cada caractere" ou "Enter", isso indica se a pesquisa
será automática a cada caractere digitado ou somente após o pressionamento da
tecla "Enter".
Criar Relacionamento em "Integridades & Relacionamentos"
Após a confirmação da definição o X-Maker poderá criar automaticamente um
"Relacionamento" em "Integridades & Relacionamentos", este tipo de
"Relacionamento" é independente da definição da "Lista Externa", para que os
campos das Tabelas relacionadas possam ser visualizados junto com a Tabela em
Definição é necessário criar o "Relacionamento" em "Integridades &
Relacionamentos", o simples fato de criar uma "Lista Externa" não habilita a
utilização de campos "Extras", ou seja, campos de outras Tabelas. Os "Processos
Diretos/Inversos" também utilizam os "Relacionamentos". Nem toda Tabela
necessita da criação dos "Relacionamentos" após a definição da "Lista Externa".
O atributo "Procurar em:" do campo em definição é preenchido automaticamente
quando este tipo de "Relacionamento" é criado através da "Lista Externa", este
atributo irá realizar uma validação do campo quando o mesmo estiver em edição
em formulários de "Entrada de Dados" e "Entrada de Dados Filho", ou seja, é
obrigatório informar um conteúdo que satisfaça a condição de registro válido na
Tabela relacionada. Exemplo: Ao digitar o número da Atividade Comercial na
Ficha Cadastral de Clientes o mesmo deverá ser válido, não será permitido
informar um número de Atividade Comercial que não esteja cadastrado. Você
poderá desabilitar esta validação, faça a edição do Campo em deixe o atributo
"Procurar em" vazio.
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.
Codificar um “Campo Calculado” exige um conhecimento básico de programação.
A opção "Campo não virtual" habilitado indica que o campo será criado
fisicamente na tabela, porém a fórmula de cálculo será executada a cada inclusão
ou modificação na tabela. Campos calculados virtuais não podem ser editados,
filtrados e ordenados.
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.
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 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.
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). O projetista poderá definir Processos e Lançamentos avulso,
neste caso não é necessário nenhum tipo de relacionamento e a codificação é
livre, ou seja, o projetista poderá codificar qualquer tipo de instruções.
Tabela alvo: Somente Tabelas relacionadas poderão ser escolhidas.
Campo alvo: Campo da Tabela alvo que irá sofrer o processo.
Condição: Expressão lógica de condição para execução do processo, quando
não houver expressão o processo sempre será executado.
Processo direto: Expressão de atualização após a inclusão ou modificação.
Processo inverso: Expressão de atualização antes de exclusão ou modificação.
Condição, Processo direto e inverso são blocos de codificações, a
"Condição" deverá ser definida com a sintaxe da linguagem Delphi, os
"Processos" utiliza a sintaxe "SQL" que é a linguagem nativa do Banco de Dados.
Opcionalmente você poderá utilizar a caixa de definição de expressão, conforme
imagem acima.
A "Condição" será utilizada na criação de uma condição para execução dos
"Processos", tanto para o direto quanto para o inverso, na imagem abaixo é
possível visualizar a expressão de "Condição" transformada em linha de código
com a utilização do condicional "if ... then".
As expressões de "Processos" são vinculadas ao "Campo alvo" da "Tabela
alvo", utilize o botão "Campo" na janela de definição da Expressão para obter a
sintaxe correta do campo a ser utilizado, na figura abaixo o processo é realizado
no campo "CON_BAIXA" da Tabela "Contas", a sintaxe final em SQL será:
set update Contas CON_BAIXA = :BX_CONTAS_CON_BAIXA, CON_PAGO =
CON_PAGO + :BXCONTAS_CON_PAGO where CLI_CODIGO = 1 and
CON_DOCUMENTO = '1' and CON_PARCELA = 1
Os valores de atribuição na clausula "where" é apenas ilustrativo, pois o
relacionamento é que irá fornecê-los. O "Campo alvo" será atualizado somente
com a expressão ":BX_CONTAS_CON_BAIXA", o conteúdo restante após a
vírgula é um complemento, pois podemos inserir mais atualizações em um mesmo
processo separados por vírgula.
Processo “Direto”.
Processo “Inverso”.
Processo “Avulso - Direto/Inverso”
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. O projetista poderá definir lançamento avulso de livre
codificação.
Tabela alvo: Tabela que irá receber o novo registro.
Condição p/ inclusão: Expressão lógica de condição para criação do novo
registro.
Campos da Tabela alvo: Campos que poderão ser preenchidos, os campos
chaves são obrigatórios.
Preencher com: Valores a serem atribuídos.
Condição e Preencher com são blocos de codificações, a "Condição"
deverá ser definida com a sintaxe da linguagem Delphi, os campos "Preencher
com" utilizam a sintaxe "SQL" que é a linguagem nativa do Banco de Dados.
Opcionalmente você poderá utilizar a caixa de definição de expressão, conforme
imagem acima.
Para realizar concatenação de expressão é necessário utilizar as aspas('), como
exemplo podemos citar o campo "CAI_TIPO" da Tabela "LcCxBco", este campo
recebe o valor "E" = Entrada ou "S" = Saída, a expressão "Preencher com" do
campo alvo irá gravar a letra correspondente ao tipo de baixa ou estorno e não
poderá ser utilizado "E" ou "S" diretamente sem a devida concatenação, a
expressão final é: '+#39+'E'+#39+' ou '+#39+'S'+#39+' veja logo abaixo a imagem
com o código gerado.
Toda linha de "Preencher com" é transformada em linha de código, o
atributo "SQL" recebe as linhas de codificação através do método "add", este
método aceita somente expressões do tipo "String", as aspas (') são utilizadas
para determinar o ínicio e fim de uma "String", isso é válido tanto para linguagem
Delphi (Object Pascal) como para "SQL", a expressão final em "SQL" deverá ser:
'E' ou 'S', para não gerar conflito entre as linguagens na hora da compilação as
aspas da expressão é representada pelo caractere "#39", "#39" é o código ASCII
das aspas, vamos analisar a linha para uma maior compreensão:
Sql.Add(','+#39+'E'+#39+'');
O sinal de "+" faz a concatenação de "Strings", então será: , (vírgula) + '
(aspas) + E (Letra) + ' (aspas) = , 'E'
O método "RetornaAutoIncremento" pode ser utilizado para buscar o
próximo número de campo, exemplo: Campo alvo: "CAI_SEQUENCIA", a
seqüência deste campo é subordinada aos campos "CONTA" e "CAI_DATA".
Como o método retorna um número o método "IntToStr" é utilizado para converter
em "String", o "#39" não é utilizado porque o campo é numérico.
Declaração do Método "RetornaAutoIncremento":
function RetornaAutoIncremento(TabelaPrincipal: TTabela; Campo: String;
Condicao: String; Qtd: Integer = 1): Variant;
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).
Lançamento “Avulso”
O projetista poderá codificar as instruções a serem executadas após a
inclusão do registro.
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 projeto final possa entrar com as 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.
• 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.
6.3.1 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, 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 “Propriedades (Object Inspector)” permite a manipulação
direta dos componentes, criação de páginas e/ou acesso aos eventos disponíveis.
O arquivo fonte poderá ser editado através da aba “Código”, 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”.
6.3.2. Propriedades (Object Inspector)
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.
6.3.2.2 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.
Para inserir um Grid de Relacionamento clique no botão na janela
Propriedades “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.
6.3.2.3 Movimentação e Redimensionamento
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.
• Ctrl + Setas: Movimenta os componentes selecionados em uma
posição.
• Ctrl + Shift + Setas: Movimentam os componentes selecionados em
oito posições.
• Shift + Setas: Redimensiona os componentes selecionados.
• Del: Exclui os componentes selecionados.
• Ctrl + C: Copia os componentes selecionados.
• Ctrl + V: Cola os componentes selecionados.
• Ctrl + X: Recorta os componentes selecionados.
Clique com o botão da direita do mouse para obter uma lista de
propriedades “extra” de configuração.
6.3.3 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.
Vejamos as funções da barra de ferramentas do editor:
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 X-Maker. Modificações não serão preservadas}” e finalizados em
“{99-Final do Bloco X-Maker. 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).
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 sendo a
primeira vez. O projetista deverá respeitar os blocos 05 e 05.
6.3.4.2 Abertura de Tabelas (AbreTabelas)
Todas as Tabelas do projeto 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 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.
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.
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.
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.
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.
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.
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.1 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 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.
6.4.2 Filtragem
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 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.
• ? 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.
6.4.3 Ordenação
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.
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.
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”.
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.
Exemplo de “Bandas”.
Barra de Ferramentas Lateral
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.
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, 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>)
• 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>), 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>, <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:XMaker6CompDelphi”, 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”.
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.
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.
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.
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
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.
6.5. 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 irá verificar 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.
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.
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.
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 “Restaurar ...”.
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker
Manual do X-Maker

Mais conteúdo relacionado

Mais procurados

Apostila Arduino Basico
Apostila Arduino BasicoApostila Arduino Basico
Apostila Arduino BasicoFernando Palma
 
Programando ooo b
Programando ooo bProgramando ooo b
Programando ooo bvangney
 
Manual do Usuario.pdf
Manual do Usuario.pdfManual do Usuario.pdf
Manual do Usuario.pdfZenildaDurci1
 
Apostila informatica basica pronatec
Apostila informatica basica   pronatecApostila informatica basica   pronatec
Apostila informatica basica pronatecThales Menezes
 
Manual gps tracker 7, multilaser gp015
Manual gps tracker 7, multilaser  gp015Manual gps tracker 7, multilaser  gp015
Manual gps tracker 7, multilaser gp015Jose llIMA
 
Manual geogebra 3_2
Manual geogebra 3_2Manual geogebra 3_2
Manual geogebra 3_2cluz01
 
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃOLIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃOOs Fantasmas !
 
Ferramenta Criando Mundo - The Sims 3
Ferramenta Criando Mundo - The Sims 3Ferramenta Criando Mundo - The Sims 3
Ferramenta Criando Mundo - The Sims 3Elisiane Alves
 

Mais procurados (15)

Apostila Arduino Basico
Apostila Arduino BasicoApostila Arduino Basico
Apostila Arduino Basico
 
Apostila autocad
Apostila autocadApostila autocad
Apostila autocad
 
Grelha 06-elementos finitos de placas
Grelha 06-elementos finitos de placasGrelha 06-elementos finitos de placas
Grelha 06-elementos finitos de placas
 
Programando ooo b
Programando ooo bProgramando ooo b
Programando ooo b
 
Manual do Usuario.pdf
Manual do Usuario.pdfManual do Usuario.pdf
Manual do Usuario.pdf
 
Curso estatistica descritiva no r
Curso   estatistica descritiva no rCurso   estatistica descritiva no r
Curso estatistica descritiva no r
 
Apostila informatica basica pronatec
Apostila informatica basica   pronatecApostila informatica basica   pronatec
Apostila informatica basica pronatec
 
Manual gps tracker 7, multilaser gp015
Manual gps tracker 7, multilaser  gp015Manual gps tracker 7, multilaser  gp015
Manual gps tracker 7, multilaser gp015
 
Guia xerox workcentre_3550
Guia xerox workcentre_3550Guia xerox workcentre_3550
Guia xerox workcentre_3550
 
Manual do usuário
Manual do usuárioManual do usuário
Manual do usuário
 
Apostila Autocad
Apostila AutocadApostila Autocad
Apostila Autocad
 
Manual geogebra 3_2
Manual geogebra 3_2Manual geogebra 3_2
Manual geogebra 3_2
 
Apostila UML
Apostila UML Apostila UML
Apostila UML
 
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃOLIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
LIVRO PROPRIETÁRIO - TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO
 
Ferramenta Criando Mundo - The Sims 3
Ferramenta Criando Mundo - The Sims 3Ferramenta Criando Mundo - The Sims 3
Ferramenta Criando Mundo - The Sims 3
 

Semelhante a Manual do X-Maker

1455 sistemas operacionais
1455 sistemas operacionais1455 sistemas operacionais
1455 sistemas operacionaismauromagule
 
Sistema Operacional de Redes I
Sistema Operacional de Redes ISistema Operacional de Redes I
Sistema Operacional de Redes ISebastião Benicio
 
Fenix Nox 199
Fenix Nox 199Fenix Nox 199
Fenix Nox 199Alan Lima
 
Alvest 04-edição gráfica de paredes
Alvest 04-edição gráfica de paredesAlvest 04-edição gráfica de paredes
Alvest 04-edição gráfica de paredesAnderson Ricardo Cunha
 
Apostila ms project 2007
Apostila ms project 2007Apostila ms project 2007
Apostila ms project 2007Renan Miranda
 
Apostila ata informatica_julio_alves
Apostila ata informatica_julio_alvesApostila ata informatica_julio_alves
Apostila ata informatica_julio_alvesYara Grasielle
 
Manual usuario promob_5_plus
Manual usuario promob_5_plusManual usuario promob_5_plus
Manual usuario promob_5_plusSavio Fernandes
 
ZD420 - Manual Para Usuário da Impressora
ZD420 - Manual Para Usuário da ImpressoraZD420 - Manual Para Usuário da Impressora
ZD420 - Manual Para Usuário da ImpressoraUseZ
 
Apostila Curso Montagem E Manutenção De Micros
Apostila Curso Montagem E Manutenção De MicrosApostila Curso Montagem E Manutenção De Micros
Apostila Curso Montagem E Manutenção De MicrosInge Christmann
 
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAsLivro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAsEdward David Moreno
 
Manual da interface de Áudio FOCUSRITE FORTE
Manual da interface de Áudio FOCUSRITE FORTEManual da interface de Áudio FOCUSRITE FORTE
Manual da interface de Áudio FOCUSRITE FORTEHabro Group
 
Power net pq-700_g4_manual_de_instalação_e_operação
Power net pq-700_g4_manual_de_instalação_e_operaçãoPower net pq-700_g4_manual_de_instalação_e_operação
Power net pq-700_g4_manual_de_instalação_e_operaçãoDiego Melo Sônego
 

Semelhante a Manual do X-Maker (20)

1455 sistemas operacionais
1455 sistemas operacionais1455 sistemas operacionais
1455 sistemas operacionais
 
Sistema Operacional de Redes I
Sistema Operacional de Redes ISistema Operacional de Redes I
Sistema Operacional de Redes I
 
Fenix Nox 199
Fenix Nox 199Fenix Nox 199
Fenix Nox 199
 
Mnl gp015
Mnl gp015Mnl gp015
Mnl gp015
 
Alvest 04-edição gráfica de paredes
Alvest 04-edição gráfica de paredesAlvest 04-edição gráfica de paredes
Alvest 04-edição gráfica de paredes
 
Apostila ms project 2007
Apostila ms project 2007Apostila ms project 2007
Apostila ms project 2007
 
Apostila ata informatica_julio_alves
Apostila ata informatica_julio_alvesApostila ata informatica_julio_alves
Apostila ata informatica_julio_alves
 
Photoshop cs3
Photoshop cs3Photoshop cs3
Photoshop cs3
 
Photoshop cs3
Photoshop cs3Photoshop cs3
Photoshop cs3
 
Tutorial java
Tutorial javaTutorial java
Tutorial java
 
Apostila Java
Apostila JavaApostila Java
Apostila Java
 
Manual usuario promob_5_plus
Manual usuario promob_5_plusManual usuario promob_5_plus
Manual usuario promob_5_plus
 
MIDI E MICROMASTER.en.pt.pdf
MIDI E MICROMASTER.en.pt.pdfMIDI E MICROMASTER.en.pt.pdf
MIDI E MICROMASTER.en.pt.pdf
 
ZD420 - Manual Para Usuário da Impressora
ZD420 - Manual Para Usuário da ImpressoraZD420 - Manual Para Usuário da Impressora
ZD420 - Manual Para Usuário da Impressora
 
Apostila Curso Montagem E Manutenção De Micros
Apostila Curso Montagem E Manutenção De MicrosApostila Curso Montagem E Manutenção De Micros
Apostila Curso Montagem E Manutenção De Micros
 
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAsLivro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
Livro - Projeto, Desempenho e Aplicacoes de Sistemas Digitais em FPGAs
 
Manual da interface de Áudio FOCUSRITE FORTE
Manual da interface de Áudio FOCUSRITE FORTEManual da interface de Áudio FOCUSRITE FORTE
Manual da interface de Áudio FOCUSRITE FORTE
 
Power net pq-700_g4_manual_de_instalação_e_operação
Power net pq-700_g4_manual_de_instalação_e_operaçãoPower net pq-700_g4_manual_de_instalação_e_operação
Power net pq-700_g4_manual_de_instalação_e_operação
 
Manual
ManualManual
Manual
 
Manual_OKI_MC363.pdf
Manual_OKI_MC363.pdfManual_OKI_MC363.pdf
Manual_OKI_MC363.pdf
 

Manual do X-Maker

  • 2. 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 Domínio Tecnologia Ltda. A Domínio Tecnologia Ltda. 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.
  • 3. 1. O QUE É O X-MAKER?...................................................................................................6 2. INTERFACE DO X-MAKER ...........................................................................................8 2.1. Menu Principal do X-Maker ............................................................................................. 8 2.2. Barra de Ferramentas ....................................................................................................... 9 2.3. Barra de Assistente.......................................................................................................... 10 3. CONCEITOS BÁSICOS .................................................................................................11 3.1. Banco de Dados................................................................................................................ 11 3.2. Tabelas............................................................................................................................. 11 3.3. Campos ............................................................................................................................ 11 3.4. Campo Calculado ............................................................................................................ 12 3.5. Integridades & Relacionamentos .................................................................................... 12 3.6. Processos Diretos/Inversos .............................................................................................. 12 3.6. Dicionário de Dados......................................................................................................... 13 4.CONTEÚDO DAS PASTAS ............................................................................................14 5. CONFIGURANDO O X-MAKER...................................................................................15 5.1. Compilando e Executando pelo Delphi ........................................................................... 16 5.2. Modelos............................................................................................................................ 17 5.3. Propriedades do Editor ................................................................................................... 18 5.4. Campos Predefinidos....................................................................................................... 19 6.CONHECENDO AS ETAPAS DE DEFINIÇÃO DE UM PROJETO..........................20 6.1. 1º Passo – Propriedades do Projeto................................................................................. 21 6.2. 2º Passo – Tabelas............................................................................................................ 23 6.2.1 Definindo Atributos da Tabela ........................................................................................................ 24 6.2.2 Definição do Banco de Dados ......................................................................................................... 26 6.2.4 Campos da Tabela ........................................................................................................................... 28 6.2.5 Nome ............................................................................................................................................... 29 6.2.5.1 Tipo .............................................................................................................................................. 29 6.2.5.2 Chave............................................................................................................................................ 30 6.2.5.3 Tamanho....................................................................................................................................... 30 6.2.5.4 Autoincremento............................................................................................................................ 30 6.2.5.5 Edição........................................................................................................................................... 30 6.2.5.6 Calculado...................................................................................................................................... 31 6.2.5.7 Máscara ........................................................................................................................................ 31 6.2.5.8 Campos Numéricos e Fracionários:.............................................................................................. 31 6.2.5.9 Campos Alfanuméricos: ............................................................................................................... 32 6.2.5.10 Título .......................................................................................................................................... 32 6.2.5.11 Índice.......................................................................................................................................... 32 6.2.5.12 Invisível...................................................................................................................................... 32 6.2.5.13 Ajuda .......................................................................................................................................... 32 6.2.5.14 Valor Padrão............................................................................................................................... 33 6.2.5.15 S. Atribui “Sempre Atribui”....................................................................................................... 33 6.2.5.16 Pré-Validação ............................................................................................................................. 33 6.2.5.17 Ação............................................................................................................................................ 33
  • 4. 6.2.5.18 Limpar Campo............................................................................................................................ 33 6.2.5.19 Validação.................................................................................................................................... 33 6.2.5.20 Procurar em ................................................................................................................................ 35 6.2.5.21 Msg. de Erro “Mensagem de Erro” ............................................................................................ 35 6.2.5.22 Valores Válidos .......................................................................................................................... 35 6.2.6 Definição da Chave Estrangeira ...................................................................................................... 36 6.2.7 Edição de Campo Calculado............................................................................................................ 38 6.2.8 Índices (Chaves Secundárias).......................................................................................................... 39 6.2.9 Integridades & Relacionamentos..................................................................................................... 40 6.2.10 Processos Diretos/Inversos............................................................................................................ 42 6.2.11 Lançamentos.................................................................................................................................. 46 6.3. 3º Passo – Formulários .................................................................................................... 49 6.3.1 Definindo o Layout do formulário................................................................................................... 50 6.3.2. Propriedades (Object Inspector) ..................................................................................................... 52 6.3.2.2 Grid de Relacionamento ............................................................................................................... 53 6.3.2.3 Movimentação e Redimensionamento.......................................................................................... 55 6.3.3 Mini Editor ...................................................................................................................................... 57 6.3.3.1 Estrutura do Arquivo Fonte .......................................................................................................... 58 6.3.4 Principais eventos............................................................................................................................ 59 6.3.4.1 Inicialização (FormShow) ............................................................................................................ 59 6.3.4.2 Abertura de Tabelas (AbreTabelas).............................................................................................. 59 6.3.4.3 Confirma Inclusão (ConfirmaInclusao)........................................................................................ 60 6.3.4.4 Confirma Modificação (ConfirmaModificacao)........................................................................... 60 6.3.4.5 Confirma Exclusão (ConfirmaExclusao)...................................................................................... 60 6.3.4.6 Confirma Gravação (ConfirmaGravacao) .................................................................................... 60 6.3.4.7 Ao Entrar Manutenção (TelaManutencao) ................................................................................... 60 6.3.4.8 Ao Entrar Consulta (TelaConsulta) .............................................................................................. 60 6.3.4.9 Atribui Valores (AtribuiValoresPadrao)....................................................................................... 61 6.3.4.10 Antes de Salvar (AntesdeSalvar)................................................................................................ 61 6.3.4.11 Antes de Incluir (AntesdeIncluir)............................................................................................... 61 6.3.4.12 Antes de Modificar (AntesdeModificar)..................................................................................... 61 6.3.4.13 Antes de Excluir (AntesdeExcluir)............................................................................................. 61 6.3.4.14 Depois de Incluir (DepoisdeIncluir) ........................................................................................... 61 6.3.4.15 Depois de Modificar (DepoisdeModificar)................................................................................. 61 6.3.4.16 Depois de Excluir (DepoisdeExcluir)......................................................................................... 61 6.3.4.17 Finalização (FormClose) ............................................................................................................ 62 6.4. 4º Passo – Relatórios, Etiquetas e Gráficos..................................................................... 62 6.4.1 Definindo o Relatório...................................................................................................................... 63 6.4.2 Filtragem ......................................................................................................................................... 64 6.4.3 Ordenação........................................................................................................................................ 67 6.4.4 Layout do Relatório......................................................................................................................... 67 6.4.5 Configurando Etiquetas................................................................................................................... 74 6.4.6 Configurando o Gráfico................................................................................................................... 74 6.5. 5º Passo – Menu ............................................................................................................... 76 Barra de Ferramentas................................................................................................................................ 77 Rotina Avulsa........................................................................................................................................... 77 6.5. 6º Passo – Compilação ..................................................................................................... 78 7. FONTES GERADOS PELO X-MAKER........................................................................80 7.1. Estrutura do componente “Tabela”................................................................................ 82 7.2. Métodos Pré-definidos..................................................................................................... 89 7.3. Métodos de Edição..........................................................................................................101
  • 5. 8. FAQ (Perguntas Freqüentes)........................................................................................102 9.DICAS DE PROGRAMAÇÃO.......................................................................................115
  • 6. 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, 7, 2005, 2006 e Turbo Delphi 2006, 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/2.x, SQLBase, Oracle, SQLServer, SyBase, DB2, Informix, ODBC, MySql, PostgreSQL e OLEDB. 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.
  • 7. 1.1. Pré-requisitos As exigências mínimas de software e hardware para que seu sistema execute corretamente o X-Maker são: • Microsoft Windows (98 ou versão posterior). • Delphi 5, 6, 7, 2005, 2006 ou Turbo Delphi 2006 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. 1.2. Instalando o X-Maker A instalação do X-Maker em seu computador é feita pelo programa Instalar. 1.2.1 Para instalar o X-Maker através do arquivo Instalar: * Execute o arquivo em seu computador. * Siga as instruções mostradas na tela. 1.2.2 Pasta de Instalação: A pasta de Instalação do X-Maker padrão é – C:XMaker6 - 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:XMaker6 - D:XMaker6 – F:XMaker6 - … 1.2.3 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.
  • 8. 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: 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).
  • 9. • 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. Abrir Projeto: Faz a abertura de projetos já existentes. Fechar Projeto: Fecha o projeto em aberto. Salvar Arquivo (Ctrl+S): Salva as modificações realizadas em um arquivo fonte em edição. Fontes do Projeto: Lista os arquivos fontes da pasta do projeto. Formulários do Projeto: Lista os formulários da pasta do projeto. 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.
  • 10. 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 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 ou o utilitário “Adapter” previamente compilados. 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 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.
  • 11. 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 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”.
  • 12. 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 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. 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
  • 13. 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.6. 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.
  • 14. 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:XMaker6), outras pastas são criadas para diversas finalidades. • C:XMaker6Comp : 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:XMaker6Delphi : 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:XMaker6Doc: Contém os arquivos de ajuda interna do X-Maker. • C:XMaker6Exemplos : 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:XMaker6Imagem : Contém uma coletânea de mais de 700 bitmaps (bmp) e ícones (ico), para utilização nos projetos. • C:XMaker6Projetos : Esta pasta é criada para armazenamento de novos projetos, inicialmente não possui nenhum arquivo, serve apenas como uma sugestão de pasta de localização dos projetos, sua utilização é opcional. • C:XMaker6Firebird : Contém o instalador do Firebird 2.x e o utilitário IBConsole, esse utilitário é utilizado para manipular tabelas criadas pelo Firebird.
  • 15. 5. CONFIGURANDO O X-MAKER Uma configuração padrão acompanha o X-Maker em 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. • 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.
  • 16. 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, 7, 2005, 2006 ou Turbo Delphi 2006) 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 CompDelphiFr234 e CompDelphi – “Exemplo: C:XMaker6CompDelphi “. • Componente do FreeReport: Abra o arquivo correspondente a versão do Delphi. • FREEREP5.DPK: Free Report para Delphi 5. • FREEREP6.DPK: Free Report para Delphi 6. • FREEREP7.DPK: Free Report para Delphi 7. • FREEREP9.DPK: Free Report para Delphi 2005. • FREEREP10.DPK: Free Report para Delphi 2006. • FREEREP10.DPK: Free Report para Turbo Delphi 2006. Para instalar o Free Report no Delphi utilize a pasta “Fr234Source” dentro da pasta “CompDelphiFr234”, exemplo: C:XMaker6CompDelphiFr234Source • Instalando: Clique no botão Install. Ao fechar a janela de instalação confirme qualquer mensagem de confirmação de atualização. • Componentes do X-Maker: Abra o arquivo correspondente a versão do Delphi. • XMaker5.DPK: X-Maker para Delphi 5. • XMaker6.DPK: X-Maker para Delphi 6. • Xmaker7a2007.DPK: X-Maker para Delphi 7, 2005, 2006 e Turbo Delphi 2006 e Delphi2007. • Instalando: Clique no 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 ToolsEnvironment Options selecione a aba “Library” no campo “Library Path”, verifique se existe o seguinte path “C:XMaker6CompDelphi” (C:XMaker6 –Corresponde a pasta de instalação do X-Maker) se não existir faça a inclusão do mesmo.
  • 17. 5.2. Modelos O X-Maker utiliza a pasta “Delphi” (C:XMaker6Delphi) para armazenar os modelos de módulos dos projetos, o projetista poderá alterar os modelos e armazenar em pastas diferentes, dessa forma o modelo padrão é preservado. O modelo padrão do X-Maker utiliza a pasta: C:XMaker6Delphi, se estiver utilizando uma pasta diferente de C:XMaker6 faça a alteração através do botão “Editar”. Ao criar um novo modelo informe o título de identificação e a pasta de localização. Copie os arquivos da pasta padrão (C:XMaker6Delphi) para a pasta do novo modelo. Em Propriedades do Projeto é possível escolher o modelo a ser utilizado.
  • 18. 5.3. Propriedades do Editor Essa opção fica disponível quando algum arquivo fonte fica aberto. É possível personalizar algumas propriedades do editor. • 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. • 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.
  • 19. • Mostra Nº de Linhas: Mostra o número de linhas na barra lateral do editor. 5.4. 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.
  • 20. 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 maior segurança para o projetista. A barra de Assistente do X-Maker contém as 6 (seis) 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.
  • 21. 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á 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.
  • 22. • 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. • Controle de Acesso – Interno: Habilita a criação das tabelas do controle de acesso dentro do próprio banco de dados do projeto, essa opção desabilitada cria as tabelas de controle de acesso em arquivos externos com extensão “.dat”. • 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. • 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. • Modelo: Informe o modelo a ser utilizado no projeto. • 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.
  • 23. • 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 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
  • 24. Este é o segundo passo para a criação de um projeto, as Tabelas são estruturas formadas por campos, chave primária e, 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. Dica: Para forçar uma geração dos arquivos fonte das Tabelas, marque a opção “Regerar Fontes”. Ao fechar a janela de “Tabelas” os arquivos fonte serão regerados. 6.2.1 Definindo Atributos da Tabela 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.
  • 25. • Ativa: Informe se a Tabela está ativa no projeto, ou seja, opcionalmente o projetista poderá desativar o uso da Tabela no projeto sem remover as definições. • 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. • Abrir Tabela: Informe se a Tabela será aberta na inicialização do sistema, o projetista poderá otimizar os processos de abertura de registros através dessa propriedade. • 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 na aba “Banco de Dados”. • 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. • 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.
  • 26. 6.2.2 Definição do Banco de Dados O Banco de Dados irá gerenciar as Tabelas do projeto, sua utilização é obrigatória. • 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.
  • 27. • 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. • 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.
  • 28. 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. 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.
  • 29. 6.2.5 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.1 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. • 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.
  • 30. • 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.2 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.3 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. 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.4 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.5 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:
  • 31. • 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 “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.6 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.7 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). 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 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.
  • 32. • - 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.9 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. • * 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.10 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.11 Í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.12 Invisível Informe se o campo não será visível durante a consulta no formulário de “Entrada de Dados”. 6.2.5.13 Ajuda Informe a mensagem de ajuda do campo, essa mensagem é utilizada no formulário de entrada dados (Hint).
  • 33. 6.2.5.14 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 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.15 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.16 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.17 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”. 6.2.5.18 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.19 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
  • 34. 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:XMaker3DelphiValidar.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:XMaker3Validacao.Lst” trata-se de um 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 • 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
  • 35. 6.2.5.20 Procurar em Informe se o campo será pesquisado e validado em outra Tabela, a mesma deverá ser definida em “Relacionamentos”, somente tabelas relacionadas 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.21 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.22 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). 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.
  • 36. 6.2.6 Definição da Chave Estrangeira Os campos definidos como “Lista Externa (Estrangeira)” irão permitir que o usuário final pesquise um registro em uma Tabela relacionada, como exemplo podemos citar a Tabela de Clientes e Atividades Comerciais em um Projeto, veja a figura abaixo para uma maior compreensão. O campo de "Atividade" possui um botão associado, ao clicar neste botão um formulário de pesquisa é aberto, veja a imagem abaixo.
  • 37. Através deste formulário o usuário poderá pesquisar e selecionar o registro desejado. Em "Relacionada com" você deverá escolher a Tabela de relacionamento, o campo da "Tabela" em definição deverá ser associado com o campo correspondente da Tabela "Relacionada com", não é obrigatório a utilização de um mesmo nome para os campos a serem associados, mas o mesmos deverão possuir uma mesma estrutura (tipo e tamanho).
  • 38. Todos os campos "físicos" da Tabela relacionada poderão ser mostrados, escolha os campos e a ordem de apresentação em "Campos a serem mostrados", o primeiro campo da lista indica a ordenação da consulta. O "Estilo de Pesquisa" pode ser "Formulário" ou "Combo Drop", o "Formulário" possui recursos de "Filtragem Fixa" e "Pesquisar após", o "Combo Drop" é mais simples e objetivo, é indicado para Tabelas com poucos registros e campos. A "Filtragem Fixa" cria uma seleção de registros a serem visualizados e "Pesquisar após" pode ser "Cada caractere" ou "Enter", isso indica se a pesquisa será automática a cada caractere digitado ou somente após o pressionamento da tecla "Enter". Criar Relacionamento em "Integridades & Relacionamentos" Após a confirmação da definição o X-Maker poderá criar automaticamente um "Relacionamento" em "Integridades & Relacionamentos", este tipo de "Relacionamento" é independente da definição da "Lista Externa", para que os campos das Tabelas relacionadas possam ser visualizados junto com a Tabela em Definição é necessário criar o "Relacionamento" em "Integridades & Relacionamentos", o simples fato de criar uma "Lista Externa" não habilita a utilização de campos "Extras", ou seja, campos de outras Tabelas. Os "Processos Diretos/Inversos" também utilizam os "Relacionamentos". Nem toda Tabela necessita da criação dos "Relacionamentos" após a definição da "Lista Externa". O atributo "Procurar em:" do campo em definição é preenchido automaticamente quando este tipo de "Relacionamento" é criado através da "Lista Externa", este atributo irá realizar uma validação do campo quando o mesmo estiver em edição em formulários de "Entrada de Dados" e "Entrada de Dados Filho", ou seja, é obrigatório informar um conteúdo que satisfaça a condição de registro válido na Tabela relacionada. Exemplo: Ao digitar o número da Atividade Comercial na Ficha Cadastral de Clientes o mesmo deverá ser válido, não será permitido informar um número de Atividade Comercial que não esteja cadastrado. Você poderá desabilitar esta validação, faça a edição do Campo em deixe o atributo "Procurar em" vazio. 6.2.7 Edição de Campo Calculado Os campos definidos como “Campo Calculado” são codificados conforme a linguagem utilizada no projeto.
  • 39. 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. Codificar um “Campo Calculado” exige um conhecimento básico de programação. A opção "Campo não virtual" habilitado indica que o campo será criado fisicamente na tabela, porém a fórmula de cálculo será executada a cada inclusão ou modificação na tabela. Campos calculados virtuais não podem ser editados, filtrados e ordenados. 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.
  • 40. 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. 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
  • 41. 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. • 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.
  • 42. 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). O projetista poderá definir Processos e Lançamentos avulso, neste caso não é necessário nenhum tipo de relacionamento e a codificação é livre, ou seja, o projetista poderá codificar qualquer tipo de instruções. Tabela alvo: Somente Tabelas relacionadas poderão ser escolhidas. Campo alvo: Campo da Tabela alvo que irá sofrer o processo. Condição: Expressão lógica de condição para execução do processo, quando não houver expressão o processo sempre será executado. Processo direto: Expressão de atualização após a inclusão ou modificação. Processo inverso: Expressão de atualização antes de exclusão ou modificação.
  • 43. Condição, Processo direto e inverso são blocos de codificações, a "Condição" deverá ser definida com a sintaxe da linguagem Delphi, os "Processos" utiliza a sintaxe "SQL" que é a linguagem nativa do Banco de Dados. Opcionalmente você poderá utilizar a caixa de definição de expressão, conforme imagem acima. A "Condição" será utilizada na criação de uma condição para execução dos "Processos", tanto para o direto quanto para o inverso, na imagem abaixo é possível visualizar a expressão de "Condição" transformada em linha de código com a utilização do condicional "if ... then". As expressões de "Processos" são vinculadas ao "Campo alvo" da "Tabela alvo", utilize o botão "Campo" na janela de definição da Expressão para obter a sintaxe correta do campo a ser utilizado, na figura abaixo o processo é realizado no campo "CON_BAIXA" da Tabela "Contas", a sintaxe final em SQL será: set update Contas CON_BAIXA = :BX_CONTAS_CON_BAIXA, CON_PAGO = CON_PAGO + :BXCONTAS_CON_PAGO where CLI_CODIGO = 1 and CON_DOCUMENTO = '1' and CON_PARCELA = 1 Os valores de atribuição na clausula "where" é apenas ilustrativo, pois o relacionamento é que irá fornecê-los. O "Campo alvo" será atualizado somente com a expressão ":BX_CONTAS_CON_BAIXA", o conteúdo restante após a vírgula é um complemento, pois podemos inserir mais atualizações em um mesmo processo separados por vírgula.
  • 46. 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. O projetista poderá definir lançamento avulso de livre codificação. Tabela alvo: Tabela que irá receber o novo registro. Condição p/ inclusão: Expressão lógica de condição para criação do novo registro. Campos da Tabela alvo: Campos que poderão ser preenchidos, os campos chaves são obrigatórios. Preencher com: Valores a serem atribuídos. Condição e Preencher com são blocos de codificações, a "Condição" deverá ser definida com a sintaxe da linguagem Delphi, os campos "Preencher com" utilizam a sintaxe "SQL" que é a linguagem nativa do Banco de Dados. Opcionalmente você poderá utilizar a caixa de definição de expressão, conforme imagem acima. Para realizar concatenação de expressão é necessário utilizar as aspas('), como exemplo podemos citar o campo "CAI_TIPO" da Tabela "LcCxBco", este campo recebe o valor "E" = Entrada ou "S" = Saída, a expressão "Preencher com" do campo alvo irá gravar a letra correspondente ao tipo de baixa ou estorno e não poderá ser utilizado "E" ou "S" diretamente sem a devida concatenação, a expressão final é: '+#39+'E'+#39+' ou '+#39+'S'+#39+' veja logo abaixo a imagem com o código gerado.
  • 47. Toda linha de "Preencher com" é transformada em linha de código, o atributo "SQL" recebe as linhas de codificação através do método "add", este método aceita somente expressões do tipo "String", as aspas (') são utilizadas para determinar o ínicio e fim de uma "String", isso é válido tanto para linguagem Delphi (Object Pascal) como para "SQL", a expressão final em "SQL" deverá ser: 'E' ou 'S', para não gerar conflito entre as linguagens na hora da compilação as aspas da expressão é representada pelo caractere "#39", "#39" é o código ASCII das aspas, vamos analisar a linha para uma maior compreensão: Sql.Add(','+#39+'E'+#39+''); O sinal de "+" faz a concatenação de "Strings", então será: , (vírgula) + ' (aspas) + E (Letra) + ' (aspas) = , 'E' O método "RetornaAutoIncremento" pode ser utilizado para buscar o próximo número de campo, exemplo: Campo alvo: "CAI_SEQUENCIA", a seqüência deste campo é subordinada aos campos "CONTA" e "CAI_DATA". Como o método retorna um número o método "IntToStr" é utilizado para converter em "String", o "#39" não é utilizado porque o campo é numérico. Declaração do Método "RetornaAutoIncremento": function RetornaAutoIncremento(TabelaPrincipal: TTabela; Campo: String; Condicao: String; Qtd: Integer = 1): Variant;
  • 48. 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). Lançamento “Avulso” O projetista poderá codificar as instruções a serem executadas após a inclusão do registro.
  • 49. 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 projeto final possa entrar com as 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
  • 50. 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. • 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. 6.3.1 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, 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.
  • 51. Um protótipo do formulário é criado para facilitar a referência visual dos componentes, a janela “Propriedades (Object Inspector)” permite a manipulação direta dos componentes, criação de páginas e/ou acesso aos eventos disponíveis. O arquivo fonte poderá ser editado através da aba “Código”, 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”.
  • 53. 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. 6.3.2.2 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.
  • 54. 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. Para inserir um Grid de Relacionamento clique no botão na janela Propriedades “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”.
  • 55. • 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. 6.3.2.3 Movimentação e Redimensionamento 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. • Ctrl + Setas: Movimenta os componentes selecionados em uma posição. • Ctrl + Shift + Setas: Movimentam os componentes selecionados em oito posições. • Shift + Setas: Redimensiona os componentes selecionados. • Del: Exclui os componentes selecionados. • Ctrl + C: Copia os componentes selecionados. • Ctrl + V: Cola os componentes selecionados. • Ctrl + X: Recorta os componentes selecionados.
  • 56. Clique com o botão da direita do mouse para obter uma lista de propriedades “extra” de configuração.
  • 57. 6.3.3 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.
  • 58. Vejamos as funções da barra de ferramentas do editor: 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 X-Maker. Modificações não serão preservadas}” e finalizados em “{99-Final do Bloco X-Maker. 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).
  • 59. 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 sendo a primeira vez. O projetista deverá respeitar os blocos 05 e 05. 6.3.4.2 Abertura de Tabelas (AbreTabelas) Todas as Tabelas do projeto 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.
  • 60. 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 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.
  • 61. 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. 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.
  • 62. 6.3.4.17 Finalização (FormClose) Este evento será chamado quando o usuário do projeto final fechar o formulário. 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. 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.
  • 63. • 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. 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. 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.1 Definindo o Relatório A definição do relatório é composta pelos campos a serem listados, Relacionamentos, Filtragem, Ordenação e Layout.
  • 64. É possível definir uma filtragem (seleção) de registros, quando um relatório não possui nenhuma filtragem todos os 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. 6.4.2 Filtragem
  • 65. 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 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
  • 66. 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. • ? 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.
  • 67. 6.4.3 Ordenação 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.
  • 68. 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.
  • 69. 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”. 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. Exemplo de “Bandas”.
  • 70. Barra de Ferramentas Lateral 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.
  • 71. 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, 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)]
  • 72. • 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>) • 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)]
  • 73. • 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>), 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, ‘-‘)]
  • 74. • CalcC_2: Arredonda uma expressão de cálculo e retorna com duas casas decimais, sintaxe: CalcC_2(<valor 1>, <valor 2>, <operador>, exemplo: [CalcC_2(99.56, 85.56, ‘*‘)] • CalcC_3: Arredonda uma 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:XMaker6CompDelphi”, 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”. 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.
  • 75. 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.
  • 76. 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. 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.
  • 77. Barra de Ferramentas 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.
  • 78. 6.5. 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 irá verificar 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. 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
  • 79. 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.
  • 80. 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.
  • 81. 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 “Restaurar ...”.