curso de visual dataflex 7.0

40
CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO Índice: 1. DATAFLEX – BREVE HISTÓRICO...........................................................3 2. O QUE É DATAFLEX.....................................................................3 3. ACESSO AO VISUAL ESTFLEX 7.0 (VDF 7.0)...............................................4 4. WORKSPACE............................................................................4 4.1 CRIANDO UMA NOVA WORKSPACE.............................................................5 5. APRENDENDO NA PRÁTICA – SISTEMA DE CONTROLE DE PIZZARIA..............................7 5.1. INTRODUÇÃO..........................................................................7 5.2. OBJETIVO DO SISTEMA..................................................................7 5.3. DEFINIÇÃO DA LÓGICA DE FUNCIONAMENTO....................................................7 5.4. DIAGRAMA DE ENTIDADE RELACIONAMENTO.....................................................7 6. BANCO DE DADOS.......................................................................8 6.1. CRIAÇÃO E MANUTENÇÃO DE BASE DE DADOS: (GUIAS FIELDS E INDEX).............................9 6.2. CONFIGURAÇÕES DOS PARÂMETROS DE CADA BANCO DE DADOS: (GUIA PARAMETERS)......................11 7. DICIONÁRIO DE DADOS.................................................................13 7.1. DEFINIÇÃO DAS REGRAS DE NEGÓCIO DO SISTEMA DE PIZZARIA............................13 7.2. INCLUINDO AS REGRAS DE NEGÓCIO NO BANCO DE DADOS DATAFLEX - AUTO INCREMENT................13 7.3. FIELD SETTINGS / OPTIONS: (CONFIGURAÇÕES DE CAMPO / OPÇÕES)..............................14 7.4. SIGNIFICADO DE CADA UMA DAS OPÇÕES DE FIELD SETTINGS/OPTIONS: OPÇÕES DE CAMPO................14 7.5. PARTE PRÁTICA DO FIELD SETTINGS OPTIONS................................................15 8. CRIANDO UMA LOOKUP...................................................................16 8.1 INFORMANDO AO DICIONÁRIO DE DADOS O CAMPO QUE TERÁ UMA LOOKUP..............................16 8.2 CONSTRUINDO OBJETOS LOOKUP PELO IDE...................................................17 9. VALIDAÇÕES...........................................................................20 9.1. FIELD SETTINGS – VALIDATION / LOOKUP – VALIDATION METHOD.................................20 9.2. FIELD SETTINGS – VALIDATION / LOOKUP – SIMPLE VALIDATION.................................20 9.3. FIELD SETTINGS – VALIDATION / LOOKUP – RANGE FROM TO....................................20 9.4. FIELD SETTINGS – VALIDATION / LOOKUP – VALIDATION ERROR..................................20 9.5. FIELD SETTINGS – VALIDATION TABLE.....................................................21 9.5.1. TABELA DE VALIDAÇÃO STATIC.........................................................21 9.5.2. TABELA DE VALIDAÇÃO DYNAMIC........................................................21 10. MÁSCARAS - FIELD SETTINGS - MASK..................................................22 11. APARÊNCIA - FIELD SETTINGS – APPEARANCE.............................................23 12. COMPLEMENTOS DO DICIONÁRIO DE DADOS - FIELD SETTINGS – OTHER........................24 Página 1

Upload: leobastos79

Post on 01-Nov-2015

2.586 views

Category:

Documents


36 download

TRANSCRIPT

Page 1: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

Índice:

1. DATAFLEX – BREVE HISTÓRICO....................................................................................................................................................3

2. O QUE É DATAFLEX.........................................................................................................................................................................3

3. ACESSO AO VISUAL ESTFLEX 7.0 (VDF 7.0)...............................................................................................................................4

4. WORKSPACE.......................................................................................................................................................................................4

4.1 CRIANDO UMA NOVA WORKSPACE....................................................................................................................................................5

5. APRENDENDO NA PRÁTICA – SISTEMA DE CONTROLE DE PIZZARIA...........................................................................7

5.1. INTRODUÇÃO.....................................................................................................................................................................................75.2. OBJETIVO DO SISTEMA......................................................................................................................................................................75.3. DEFINIÇÃO DA LÓGICA DE FUNCIONAMENTO...................................................................................................................................75.4. DIAGRAMA DE ENTIDADE RELACIONAMENTO..................................................................................................................................7

6. BANCO DE DADOS.............................................................................................................................................................................8

6.1. CRIAÇÃO E MANUTENÇÃO DE BASE DE DADOS: (GUIAS FIELDS E INDEX)......................................................................................96.2. CONFIGURAÇÕES DOS PARÂMETROS DE CADA BANCO DE DADOS: (GUIA PARAMETERS)...............................................................11

7. DICIONÁRIO DE DADOS................................................................................................................................................................13

7.1. DEFINIÇÃO DAS REGRAS DE NEGÓCIO DO SISTEMA DE PIZZARIA..........................................................................13

7.2. INCLUINDO AS REGRAS DE NEGÓCIO NO BANCO DE DADOS DATAFLEX - AUTO INCREMENT.....................................................137.3. FIELD SETTINGS / OPTIONS: (CONFIGURAÇÕES DE CAMPO / OPÇÕES)............................................................................................147.4. SIGNIFICADO DE CADA UMA DAS OPÇÕES DE FIELD SETTINGS/OPTIONS: OPÇÕES DE CAMPO.......................................................147.5. PARTE PRÁTICA DO FIELD SETTINGS OPTIONS...............................................................................................................................15

8. CRIANDO UMA LOOKUP................................................................................................................................................................16

8.1 INFORMANDO AO DICIONÁRIO DE DADOS O CAMPO QUE TERÁ UMA LOOKUP................................................................................168.2 CONSTRUINDO OBJETOS LOOKUP PELO IDE...................................................................................................................................17

9. VALIDAÇÕES.....................................................................................................................................................................................20

9.1. FIELD SETTINGS – VALIDATION / LOOKUP – VALIDATION METHOD..............................................................................................209.2. FIELD SETTINGS – VALIDATION / LOOKUP – SIMPLE VALIDATION................................................................................................209.3. FIELD SETTINGS – VALIDATION / LOOKUP – RANGE FROM TO......................................................................................................209.4. FIELD SETTINGS – VALIDATION / LOOKUP – VALIDATION ERROR.................................................................................................209.5. FIELD SETTINGS – VALIDATION TABLE..........................................................................................................................................219.5.1. TABELA DE VALIDAÇÃO STATIC..................................................................................................................................................219.5.2. TABELA DE VALIDAÇÃO DYNAMIC..............................................................................................................................................21

10. MÁSCARAS - FIELD SETTINGS - MASK.................................................................................................................................22

11. APARÊNCIA - FIELD SETTINGS – APPEARANCE..................................................................................................................23

12. COMPLEMENTOS DO DICIONÁRIO DE DADOS - FIELD SETTINGS – OTHER.............................................................24

13. MÉTODOS – METHODS.................................................................................................................................................................25

13.1. PROCEDURES E FUNCTIONS – QUAL A DIFERENÇA ENTRE ELAS....................................................................................................2513.2. UM EXEMPLO DE ENTRY METHOD................................................................................................................................................2513.3. PROCEDURE UPDATE, BACKOUT, DELETE E CREATING...............................................................................................................26

14. GUIA STRUCTURES – ESTRUTURAS DE EXCLUSÃO E GRAVAÇÃO..............................................................................27

14.1. CASCADE DELETE..........................................................................................................................................................................27

15. GUIA OPTIONS – OPÇÕES DE RELACIONAMENTO DE ARQUIVOS................................................................................27

Página 1

Page 2: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

16. CRIANDO UMA VIEW PELO WIZARD......................................................................................................................................28

17. CRIANDO UMA VIEW PELO BLANK VIEW.............................................................................................................................28

18. Créditos...............................................................................................................................................................................................29

Página 2

Page 3: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

1. DataFlex – Breve HistóricoO DataFlex é desenvolvido pela empresa DataAccess Corporation. A DataAccess existe amais de 20 anos e tem como

objetivo produzir ferramentas de desenvolvimento rápido de sistemas.A primeira versão do Dataflex foi a versão 2.0 que rapidamente evoluiu para a versão 2.3 que é mundialmente conhecida pela

facilidade de implementação de sistemas multiusuários com acesso a banco de dados. Esta versão que hoje não é mais comercializada tornou o DataFlex líder de mercado em alguns seguimentos, como por exemplo no ambiente UNIX.

Desde o seu início o DataFlex sempre teve geradores automáticos de códigos, o que chamamos hoje de assistentes ou Wizards.

Alguns anos mais tarde foi lançado o DataFlex 3.0. Mais uma vez a DataAccess estava na frente de seus concorrentes pois a versão 3.0 já incorporava o ambiente de programação orientada a objetos (OOP). Hoje é muito difícil desenvolver sistemas sem este conceito.

Uma característica forte do DataFlex é a sua portabilidade. Provavelmente único em quantidade de sistemas operacionais que atende. Todos os sistemas operacionais utilizados em grande escala pelo mercado são atendidos pelo DataFlex. É importante salientar que para mudar um programa desenvolvido em um sistema operacional em DataFlex caracter para qualquer outro sistema operacional basta compilá-lo neste ambiente. As mudanças de código fonte de um sistema operacional para outro são praticamente inexistentes. Pequenos ajustes e o sistema está rodando em outro sistema operacional e outro tipo de máquina. Que outra ferramenta permite isto hoje ou a 20 anos atrás?

Outro ponto fantástico da linguagem é que a DataAccess se preocupa em manter o legado de software. Isto é, aquilo que foi desenvolvido em uma versão é completamente aproveitado na próxima. Desta forma as empresas que optaram por desenvolver em DataFklex nunca perderam seus códigos fonte por incompatibilidade devido a mudanças na versão, o que é muito comum com outras linguagens do mercado.

Com a evolução das plataformas gráficas a DataAcces se deparaou com uma dificuldade muito grande. O DataFlex caracter já possuia muitas funcionalidades parecidas com as do Windows, como mouse, mesnu, clipboard, etc. Mas para compatibilizar estas funcionalidade com o Windows teria que decidir em desenvolver “ DataFlex para Windows” ou “Windows para DataFlex”, isto é fazer com que o DataFlex enchergasse os controles do Windows. Porém, diversas facilidades do DataFlex não estavam disponíveis no Windows e o Windows estava longe de ser um sistema operacional predominante. Existiam outros sistemas como OS/2 da IBM e o Macintoch da Apple superiores ao Windows.

Desta forma a DataAcces resolveu não se comprometer com o Windows e reescrever as paertes do Windows necessárias para o correto funcionamento do DataFlex Visual que foi chamado de DataFlex For Windows Fase I. Na evolução deste desenvolvimento com nuitos problemas e certa perda de funciolidade e rejeição do mercado e com o lançamento do Windows 95 ficou claro que era necessário mudar a formatação e criar um DataFlex For Windows baseados nos controles nativos do Windows. Assim nasceu o Visual Dataflex 4.0 que já evoluiu muito e hoje está na versão 8.2.

A DataAccess também disponibiliza no mercado o WebApp Studio, conjunto de ferramentas para o desenvolvimento para Web com a mesma política e facilidades dos outros ambientes.

Com o DataFlex hoje é possivel desenvolver sistemas em modo caracter, visual para Windows, para Web e para Wap e se preferir ou precisar misturando todas estas plataformas. Também é possível utilizar além do banco de dados nativo da linguagem qualquer outro banco de dados ou se preferir ou precisar misturar vários bancos de dados.

2. O que é DataFlexEsta pergunta tem uma resposta multi disciplinar. DataFlex é um Banco de Dados multi-usuário sequencial indexado que nas suas versões atuais possibilita a utilização de

dicionário de dados e a utilização de 4095 tabelas no mesmo sistema e possibilitando 16.700.000 registros por arquivo.DataFlex é uma poderosa linguagem de programação que permite programação procedural e orientada a objetos e que possui

um conjunto de ferramentas facilitadoras do desenvolvimento de sistemas.DataFlex é uma metodologia de desenvolvimento de sistemas. Seguindo a metodologia proposta é possível implementar

software de uma forma rápida e segura.Com o DataFlex nas suas versões mais atuais possibilitam:-Desenvolvimento em ambiente caracter para DOS-LINUX ou qualquer UNIX – Versão 3.2-Desenvolvimento em ambiente visual para Windows 98 ou superior – Versão Visual DataFlex 8.2 VDF 8.2-Desenvolvimento para WEB e WAP – WebApp 3.0

Página 3

Page 4: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

3. Acesso ao Visual EstFlex 7.0 (VDF 7.0)

Para acessar o VDF7 7.0 o programador deverá clicar no botão [INICIAR] do Windows, escolher Programas, Visual DataFlex 7.0

Escolha a opção IDE. Este utilitário integra todos os outros utilitários do sistema.

4. Workspace O VDF trabalha com o conceito de Workspace que significa Área de Trabalho. Para cada novo projeto ou sistema que o programador for desenvolver é criado em uma área de trabalho diferente, isto é, em uma nova Workspace.

Ao criar a Workspace o VDF gera para o programador uma estrutura de pastas ou diretórios para alocação dos diversos arquivos de seu projeto. O indicado para cada aluno é criar a workspace de trabalho em uma pasta que fique em sua senha no servidor. Desta forma outros alunos não irão poder alterar ou danificar o seu trabalho.

Dica!!!!!!

Ao acessar o VDF ele sempre tentará acessar a última Workspace utilizada no computador. Como um aluno não tem acesso a pasta de outro aluno no servidor o VDF irá emitir uma mensagem de erro do tipo:

Página 4

Documentação

Exemplos de Aplicações

Compilador

Gerador de Base de Dados e Dicionário de Dados

Explorador/Editor de dados

Correção de erros de lógicaGerador de Classes

Sistema de Ajuda

*** IDE-Ambiente Integrado de Desenvolvimento

Registro do Softwaere

O QUE FAZER:1) Clique no botão [OK]2) Logo em seguida irá aparecer uma lista das Workspaces disponíveis em seu computador. Escolha uma que você tenha acesso e clique em [Select]

Você tem acesso as workspaces criadas por você e as workspaces dos exemplos do VDF, como é o caso da workspace Order Entry Sample Aplication

Page 5: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

4.1 Criando uma Nova Workspace Acesse o IDE pelo botão [INICIAR] do Windows, Programas, Visual DataFlex 7, IDENo IDE escolha o Menu File e a opção New Workspace. Neste ponto o VDF irá apresentar um Wizard para criação da workspace.

1) Clique no botão [NEXT] e irá aparecer a tela que pede o nome a a descrição da Workspace.

2) Informe o nome e a descrição da workspace.

Name of the new workspace area: Coloque neste espaço o nome da área de trabalho. Devido as limitações de diversos ambientes operacionais sugerimos que use nomes sem espaços em branco, sem caracteres especiais e com até 8 caracteres.

Exemplo: DFPIZZA

Description of the new workspace area: Neste espaço pode colocar uma descrição para facilitar a localização da Workspace na lista. Coloque o seu nome na descrição para facilitar.

Ex.: Controle de Pizzarias (Prof. Marcio)

3) Clique no botão [NEXT] e irá aparecer a tela para escolher o método e o diretório de sua workspace.

Página 5

Method: No método mantenha o default (padrão) Create a Standard WorkspaceName of the Workspace Directory: Neste espaço coloque o caminho para gerar a sua Workspace.

Ex.:digite G:\DATAFLEX\DFPIZZA

Neste exemplo o diretório DATAFLEX deve ser criado pelo explorer do windows na sua pasta G:O botão [...] é um browser para encontrar diretórios já existentes.

Page 6: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

Após estes procedimentos acesse localize pelo Explorer do Windows as pastas criadas pelo VDF. Seguido o exemplo acima você deverá ter a seguinte estrutura:

Data: Pasta que contém os aruqivos de dados e estruturas.*.DAT Arquivos de dados e da estrutura do arquivo*.HDR Arquivo de backup de segurança (header do .DAT)*.K* Arquivos de índices K1 .. K15*.TAG Arquivo com o nome dos campos da estrutura*.RPT Arquivos de relatório do Crystal Reports

DDSrc: Pasta que contem os fontes de dicionário de dados. Cada arquivo de dados possui um respectivo dicionário de dados que controla a regra de negócio referente a este arquivo. Isto é, os cálculos, validações, checagens que devem ser feitas ao incluir, alterar ou excluir um registro neste arquivo.

*.DD Arquivos de dicionários de dados*.DEF Backup da estrutura do arquivo. Pode ser aberto por qualquer editor.*.FD Estrutura de campos para o compilador

IdeSrc: Pasta que contém a personalização da ferramenta. Nesta pasta o usuário pode alterar partes de uma classe para facilitar o seu trabalho na construção dos programas.Programs: Pasta que contém os arquivos compilados.

*.VD7 Programas compilados

Para selecionar uma Workspace: IDE – Menu File – Select Workspace (escolher na lista e clicar [Select])Para pesquisar Workspace, alterar descrição ou excluir: IDE – Menu Workspace – Modify Workspace

Os dados apresentados no modify workspace são os mesmos do registro do windows. Porém, o VDF possibilita a manutençaõ do registro do windows por meio deste utilitário.

Página 6

AppHtml : Pasta que irá conter os arquivos referentes a projetos de internet.

Appsrc: Pasta que irá conter os arquivos fontes de seu projeto.

App=aplication =aplicações Src=Source=Fontes

*.VW = Views (telas e processos)*.RV = Report Views (relatórios)*.SL = Select Lists (Lookups)

Bitmaps: arquivos de figuras *.BMP

Se desejar alterar um caminho ou mesmo a descrição da sua workspace utilize este utilitário.

Obs.: Se você excluir a workspace por este diretório serão excluídos apenas os registros do windows. Os diretórios (pastas) criadas deverão ser excluídas pelo Explorer do Windows.

Page 7: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

5. Aprendendo na Prática – Sistema de Controle de Pizzaria

5.1. IntroduçãoO sistema que iremos desenvolver como exemplo é um sistema de controle de uma pizzaria. O conteúdo desta definição é básico. O aluno poderá complementar com suas idéias ao longo do trabalho.

5.2. Objetivo do SistemaPossibilitar o cadastro de bairros, clientes, produtos vendidos pela pizzaria, incluindo desde bebidas até as próprias pizzas, controle das vendas e entregadores.

5.3. Definição da Lógica de Funcionamento Cadastrar os bairros de abrangência Cadastrar os entregadoresO cliente liga para a pizzariaO atendente verifica se o cliente já está cadastrado, se não estiver cadastra o clientePreenche o pedido com as pizzas e as bebidasDefine o entregadorImprime o pedido para a cozinha montar as pizzasImprime o pedido para entrega da pizzaA pizza é entregueRecebe os valores do entregadorImprime relatório de comissões dos entregadoresImprime relatório de fechamento de diaImprime relatório de itens vendidos

5.4. Diagrama de Entidade RelacionamentoEste diagrama representa os arquivos de dados do sistema e seus relacionamentos

Página 7

1-CONFIG

2-BAIRROS

3-CLIENTES

4-ENTREGADORES

6-PEDIDOS

7-ITENS DO PEDIDO

5-PRODUTOS

Arquivos de configuraçãoArquivos paiArquivos filho

Page 8: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

6. BANCO DE DADOSO banco de dados que utilizares é o DataFlex. O utilitário utilizado para construção do banco de dados é o DataBase Builder. Para que cada aluno tenha uma visão geral serão criadas as tabelas 1,2 e 3 (CONFIG, BAIRROS e CLIENTES respectivamente) e a entrada de dados destas tabelas. Então será criado programas de entrada de dados (Views) para as tabelas Bairros e Clientes.

Abra o IDE e selecione a SUA Workspace do sistema de Controle de PizzariaEstando no IDE abra o DataBase Builder (Menu Database – DataBase Builder) Ou pelo botão da barra de tarefas.

Crie as tabelas.

Para criar uma nova tabela use o Menu File – New ou o botão Create New FilePara abrir um arquivo já gravado (salvo) use o Menu File – Open ou o botão Open files ou pela Caixa de Combinação com a

lista dos arquivos.

A tela que irá aparecer pede o s seguintes dados:

Type : Tipo do banco de dados. Nós utilizaremos o DataFlex. Este é o local que se pode optar por outros bancos de dados, como por exemplo Oracle, SQL-Server, IBM-DB2, ODBC, etc. Para isto os drivers devem estar devidamente instalados.

File Number: Número do arquivo ou tabela de dados. O DataFlex permite até 4095 tabelas de dados (a partir da versão 7.0). Com este grande número de arquivos é possivel implementar desde sistemas de pequeno porte, como é o caso de nossos exemplos, até sistemas corporativos de grande porte, como sistemas para fábricas, hospitais, distribuidoras, etc.

Rootname: É o nome do arquivo. Sugerimos utilizar até 8 (oito) caracteres para manter compatibilidade com outros sistemas operacionais. Usar apenas letras e números.

Clique no botão [OK] e preencha o File Number e o Rootname de acordo com as tabelas a seguir.

Página 8

Page 9: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

6.1. Criação e Manutenção de Base de Dados: (Guias Fields e Index)

Utilizando o DataBase Builder na Tab Page Fields crie as bases de dados a seguir e faça os respectivos relacionamentos conforme diagrama acima. Mantenha os nomes de arquivos e campos exatamente iguais, para que os códigos fontes que forem inseridos nos programas mais tarde funcionem corretamente.

1 – CONFIG

AMPO TIPO TAMANHOULTIMO_BAIRRO N 4ULTIMO_ENTREG N 4ULTIMO_PEDIDO N 8ULTIMO_PRODUTO N 6

2-BAIRROS

CAMPO TIPO TAMANHOCOD_BAIRRO N 4NOME A 25CIDADE A 30ESTADO A 2

ÍNDICE SEGMENTOS UC DES1 COD_BAIRRO

2 NOME XCIDADE X

3 CIDADE XNOME X

Página 9

Obs.: Cada número para os índices corresponde a um índice diferente.Neste arquivo são 3 (três) índices.O primeiro é um índice exclusivo e o segundo e o terceiro são indices compostos por mais de um campo ou segmento.

IMPORTANTE: Assinale a opção System File na Guia Parameters para este arquivo. Isto indicará que ele terá apenas 1 registro e servirá para configurações.

Page 10: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

3-CLIENTES

CAMPO TIPO TAMANHO RELATES TOTELEFONE A 15NOME A 40ENDERECO A 50BAIRRO N 4 BAIRRO.COD_BAIRROCEP N 8EMAIL A 40PROXIMIDADE A 50SEXO A 1QTD_PESSOAS N 2

ÍNDICE SEGMENTOS UC DES1 TELEFONE

2 NOME XRECNUM

3 BAIRROTELEFONE

4-ENTREG

CAMPO TIPO TAMANHOCODIGO N 4NOME A 50TELEFONE A 15CELULAR A 15

ÍNDICE SEGMENTOS UC DES1 CODIGO

2 NOME XCODIGO

5-PRODUTOS

CAMPO TIPO TAMANHOCODIGO N 6NOME A 40PRECO_VENDA N 4,2EM_ESTOQUE N 10,2UND_MEDIDA A 7

ÍNDICE SEGMENTOS UC DES1 CODIGO

2 NOME XCODIGO

Página 10

O campo BAIRRO deve ser relacionado com a tabela de Bairros.Clique no campo BAIRRO e no Label Relates To e escolha na primeira coluna o arquivo Bairro e na segunda coluna o campo COD_BAIRRO. Se os campos de relacionamento não aparecerem verifique o tipo e o tamanho dos campos a serem relacionados. Lembre que eles devem ser iguais.

Page 11: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

6-PEDIDO

CAMPO TIPO TAMANHO RELATES TOPED_NUMERO N 8CLIENTE A 15 CLIENTES.TELEFONEDATA D 6ENTREG N 4 ENTREG.CODIGOVALOR_TOTAL N 4,2FORMA_PAG A 1OBS T 256

ÍNDICE SEGMENTOS UC DES1 PED_NUMERO

2 CLIENTE XRECNUM

3 DATARECNUM

7-PEDITENS

CAMPO TIPO TAMANHO RELACIONAMENTOPED_NUMERO N 8 PEDIDO.PED_NUMEROPRODUTO N 6 PREODUTOS.CODIGOVALOR_UNITARIO N 4,2QTD N 4,2VALOR_TOTAL N 4,2

ÍNDICE SEGMENTOS UC DES1 PED_NUMERO

RECNUM

6.2. Configurações dos parâmetros de cada banco de dados: (Guia Parameters)

Neste ponto é possível determinar o comportamento de cada arquivo ou tabela de acordo com os seguintes parâmetros:

File Satistics (Estatíscas do arquivo): Max Records: Número máximo de registros que a tabea deverá suportar. O analista deve avaliar o número máximo de acordo

com as características de seus dados. Caso os dados armazenados na tabela ultrapassem o número previsto poderão ocorrer erro nos índices dos arquivos e também danificar os dados do banco de dados. Portanto o analista/programador deve cuidar destes valores. Esta informação é base para a criação das áreas de controle para a criação dos índices.

Record Length: Tamanho do Registo. Representa a somatória dos bytes necessários para alocação dos campos criados. O DataFLex utiliza uma técnica binária para alocação de campos numéricos, e com isto ele economiza metade do espaço para campos numéricos. O tamanho do registro nem sempre é a somatório simples dos bytes utilizados. Isto se deve ao fato da utilização de tamanhos pré-definidos de grupos de bytes.

Records Used: Número de registros armazenados no banco de dados.RecLen Used: Tamanho real de ocupação do registro em bytesFile Revision: Número da versão do banco de dados.Record Identity: Nome do campo utilizado internamente por alguns bancos de dados para identificação única de cada

registro. Deve ser um campo numércio. Para tabelas do tipo DataFlex deixar este campo em branco, pois o DataFlex já utiliza o campo RECNUM para este propósito.

Página 11

Page 12: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

File Settings: Configurações do arquivo:Multi User Reread: serve para indicar que o arquivo será utilizado por vários usuários ao mesmo tempo.

Reuse Delete Spaces: Serve para indicar que os espaços de registros excluídos devem ser reapriveitados por novos registros.Header Integrity Checking: Habilita a verificação da integrida do arquivo através da comparação do arquivo .HDR e .DAT.System File: Indica que o arquivo é arquivo de sistema e que serve para controlar entre outras configurações o sistema automático de Auto Increment ou Códigos Numéricos Automáticos.

Compression: Compactação de dados. Com esta opção o tamanho dos arquivos de dados fica reduzido, o que libera espaço em disco.None: Não usa compressão de dados.Fast: Compressão simples que analçisa um série de dois ou mais caracteres iguais em sequência.Standard: Analisa a frequência que os caracteres ocorrem no banco de dados.Custom: Analisa a performace do DataBase Builder nas ações sobre o arquivo. Esta opção requer ação de recompressão de

tempos em tempos.

Transaction Type: Tipo de Transação do banco de dados:None: Não utiliza.Client Atomic: Esta opção permite que o programa seja abortado pela aplicação ou automaticamente pelo DataFlex em caso

de DeadLock. Esta opção não prevê segurança contra problemas na estação de trabalho. Isto é, uma transação que esteja em processo ficará pela metade se a estação falhar. Este é o padrão do banco de dados DataFlex.

Server Atomic: Além das opções do client atomic permite segurança contra travamentos de estação ou de sistema operacional. Neste caso a transação iniciada e não terminada pode ser desfeita.

Server Loged: Além das opções do client atomic e do Server atomic permite o uso de rollback, que possibilita ao analista de dados voltar o banco de dados até um determinado check point. Por exemplo voltar o banco de dados nas características que tinha as 12:30.

Lock Type: Tipo de travamento em ambiente multi usuáriosNone: Não utiliza.File: Travamento de arquivo. Esta é a opção para o banco de Dados DataFlexRecord: Travamento de registro.

Página 12

Page 13: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

7. DICIONÁRIO DE DADOS

Os DDOs (Data Dictionary Object) servem para dois propósitos:Coordenar a atividade dos dados nos Objetos de Entrada de Dados (DEOs – Data Entry Object), isto é, controlar o funcionamento de cada tela (view) nas ações de inclusão, exclusão, pesquisa e alteração no bando de dados.Fornecer validações e atualizações dos dados para o programa.

A este conjunto de operações chamamos Regra de Negócio.

Exemplos:Ao cadastrarmos um item de pedido e uma certa quantidade, isto é, ao vendermos um produto, precisamos diminuir a

quantidade de estoque registrada neste produto.Em uma entrada de dado para o dado sexo, precisamos fazer a checagem de consistência ou validação para M ou F, caso

contrário não deixar salvar o registro e avisar o usuário.

Antes de inicarmos o nosso trabalho vamos definir as regras de negócio de nosso projeto.

7.1. Definição das Regras de Negócio do Sistema de Pizzaria1- Se um produto está sendo utilizado em algum pedido, não poderá ser apagado2- O campo Total em Pedido deve conter o total de todos os itens pedidos3- Os códigos de bairros, entregadores, produtos e pedidos serão automáticos pelo sistema.4-O campo subtotal dos itens do pedido deve conter a quantidade comprada multiplicada pelo preço unitário do produto.5- Se um entregador é responsável por algum pedido não poderá ser excluído6- Quando o campo data do pedido receber o foco deverá aparecer a data do dia.7- Quando o campo preço unitário do item de pedido receber o foco e estiver em branco deverá ser colocado nele o preço unitário do produto.8-A cada item de pedido salvo, o campo Total do pedido deve ser atualizado.9-Os nomes e descrições devem sempre ser em letras maiúsculas.

7.2. Incluindo as Regras de Negócio no Banco de Dados DataFlex - Auto IncrementInicialmente iremos atribuir os controles de códigos automáticos. No DataFlex é possível indicar que um campo é auto

increment, isto é, cada novo registro armazenado no banco de dados é somado de 1. Assim se o último bairro cadastrado ganhou o código 15 o próximo será o 16. Se o último pedido foi o 190 o próximo será o 191. Este controle também respeita sistemas multi-usuário, isto é, mais de um usuário cadastrando ao mesmo tempo. Por exemplo, se dois usuários estão cadastrando pedidos ao mesmo tempo e o último número foi o 191, mesmo que os dois usuários confirmem a gravação do pedido ao mesmo tempo um pedido será o número 192 e o outro o 193. Este controle é feito pelo banco de dados tanto que o dicionário de dados seja corretamente informado da regra para este procedimento.

Pela definição de nosso sistema os arquivos que serão Auto Increment, isto é, que terão controle de código automático, são bairros, entregadores, produtos e pedidos.

Abra o IDE e acesse o DataBase BuilderAbra o Arquivo 1-Config e certifique-se de que a opção System File na guia Parameters está assinalada.Abra o arquivo 2-Bairros, clique na Guia Field Settings e dentro desta guia selecione a guia Other. Na opção Auto

Increment clique no botão com 3 pontinhos e escolha na coluna File List o arquivo CONFIG e na coluna Field List o campo ULTIMO_BAIRRO e clique em OK. Caso estes campos não tenham aparecedo revise o tipo e tamanho de cada campo dos arquivos CONFIG e BAIRROS. O resultado final deverá ser:

Repita os procedimentos para os arquivos ENTREG, PRODUTOS e PEDIDO.O resultado final deverá ser:

No arquivo ENTREG: CONFIG.ULTIMO_ENTREGNo arquivo PEDIDO: CONFIG.ULTIMO_PEDIDONo arquivo PRODUTO: CONFIG.ULTIMO_PRODUTO

Página 13

Page 14: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

7.3. Field Settings / Options: (Configurações de campo / Opções)Abra o IDE e acesse o DataBase Builder

Os dados referentes ao dicionário de dados serão informados nas guias Field Settings, Methods, Options e Structures.

Na guia Field Settings Options é possível informar várias características para cada campo. Escolha o campo desejado e assinale as opções de acordo com a necessidade. Observe que cada opção tem um comportamento. Veja a seguir o significado de cada uma das opções do sistema. Após a leitura abra cada arquivo como soliciado e informe as opções de cada campo de acordo com o solicitado e interprete as opções utilizadas.

7.4. Significado de cada uma das opções de Field Settings/Options: Opções de CampoOpção DescriçãoAuto Find Esta opção é bastante utilizada em campos que fazem parte de índices exclusivos. Na janela

de entrada de dados, quando o usuário digita um valor para este campo que já foi cadastrado, o programa irá posicionar o registro automaticamente na tela.

Auto Find Ge Semelhante ao Auto Find, porém irá procurar um registro igual ao da tela de entrada de dados ou maior que. GE=Greater or Equal

Capslock Na entrada de dados para este campo irá fazer com que qualquer dado digitado fique em maiusculas.

Display Only Esta opção fará com que o campo seja exibido em Shadow (sombreado) e não permite que o usuário altere seu valor. O valor pode ser alterado através de programação.

Find Required Indica que é obrigatório que um registro relacionado seja encontrado. Utilizado normalmente para campos estrangeiros, como é o caso do cliente no arquivo PEDCABEC. Na hora de digitar o pedido enquanto o usuário não digitar um código de cliente válido o sistenma deve rejeitar a entrada de dados

Force Put Força que o conteúdo da tela de entrada de dados seja colocado no Buffer de registro, mesmo que o conteúdo não tenha sido alterado pelo usuário.

Key Field Esta opção impede que o conteúdo do campo seja alterado após ter sido salvo. Serve para proteger o campo de relacionamento em arquivos pais evitando que ocorram registros filhos órfãos em uma alteração do código principal do registro.

No Enter Não permitirá que o usuári oaltere este valor. O mesmo poderá ser alterado apenas por programação.

No Put O usuário tem acesso ao campo, mas não pode alterá-lo. Normalmente usado em campos de código automático, possibilitando pesquisa, mas o conteúdo é controlado pelo sistema.

Retain O campo não será limpo após a gravação. Serve para manter na tela o último dado digitado. O campo será limpo digitando-se outra informação ou através do botão clear all.

Página 14

Page 15: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

Retain All O campo não será limpo nem com o clear all, somente manualmente pelo usuário.Required Digitação obrigatória em campos com esta opção.Skip Found Permite a inclusão de dados, porém após o registro estar salvo não permite alteração do

campo pelo usuário.

7.5. Parte Prática do Field Settings Options

Assinale para cada arquivo as seguintes opções de banco de dados:

ARQUIVO: BAIRROSCampo OpçõesCOD_BAIRRO Auto Find, Key Field, No PutNOME Required, CapslockCIDADE Required, CapslockESTADO Required, Capslock

ARQUIVO: CLIENTESCampo OpçõesTELEFONE Auto Find, Key Field, RequiredNOME Required, CapslockENDERECO Capslock, Required

ARQUIVO: ENTREGCampo OpçõesCODIGO Auto Find, Key Field, No PutNOME Required, Capslock

ARQUIVO: PRODUTOSCampo OpçõesCODIGO Auto Find, Key Field, No putNOME CapslockUND_MEDIDA Capslock

ARQUIVO: PEDIDOCampo OpçõesPED_NUMERO Auto Find, Key Field, No PutVALOR_TOTAL Display Only

ARQUIVO: PEDITENSCampo OpçõesPED_NUMERO No PutVALOR_TOTAL Display Only

Página 15

Page 16: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

8. CRIANDO UMA LOOKUP

Uma lookup é um objeto de lista para selecionar dados cadastrados. Para que uma lookup funcione corretamente são necessários dois passos:Informar no DataBase Builder para o dicionário de dados quais os campos terão lookups e qual o nome do objeto lookup que será criado.Construir o Objeto Lookup pelo IDE.

8.1 Informando ao Dicionário de Dados o Campo que terá uma Lookup

Abra o IDE e o DataBase Builder, selecione o arquivo de Bairros e posicione na Guia Field Settings – Validation / Lookup

Selecione o campo COD_BAIRRO e digite no lookup object BAIRROS_SL (nome do objeto que será gerado). Digite no campo Lookup Package BAIRROS.SL (Nome do arquivo que conterá o objeto lookup)

Página 16

Page 17: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

8.2 Construindo Objetos Lookup pelo IDEPara construir uma Lookup vamos dar como exemplo a Lookup do arquivo de Fornecedores de nosso trabalho, isto é

forneced.Pelo IDE clique em File, New ComponentEscolha a opção Lookup, Default Lookup, e irá aparecer a tela de projeto da LookupClique em DataBase Explorer para adicionar o DDO (Objeto de dicionário de dados)

Clique em Add DDO para selecionar os dicionários de dados que farão parte de sua LookUp. Observe que o primeiro a ser escolhido normalmente é o principal (Main) . se existirem arquivos relacionados estes serão trazidos para a lista também. Neste último caso mantenha os arquivos relacionados na lista, pois serão necessários ao salvar e ao excluir registros.Escolha Forneced Data Dictionary e clique em Close

Página 17

Page 18: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

Neste ponto o DataBase Selector já está pronto para que você selecione os campos desejados a serem incluídos em sua Lookup ou em sua View. Para isto de dois clicks no Banco de Dados do Forneced e escolha os campos desejados para a sua LookupArraste os campos selecionados para dentro da LookUp em qualquer parte das linhas.

Para alterar as propriedades de cada objeto posicione o mouse em cima do objeto e clique com o botão direito do mouse e escolha a opção Properties e altere por exemplo os Labels de cada objeto. Também existe a opção Grid Options para propriedades da Grid.

Página 18

Page 19: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

Após concluído a programação da Lookup você deve salvar. Um componente VDF sempre terá um nome de arquivo e uma descrição e um nome do objeto.Para o caso das Lookups o padrão definido para o nome do arquivo foi o nome do arquivo de dados e para o nome do objeto foi o mesmo nome com a terminação _SL.Exemplo:

O erro mais comum de programadores iniciantes é ao dar o nome das lookups não respeitar aregra utilizada no Dicionário de Dados . Lembre que o nome dado para o arquivo (filename ou package) e o nome dado para o objeto (object name) devem ser os mesmos utilizados no DataBase Builder, Tab Page Field_settings- Validation/LookUp.Lembre tmbém que a LooKUp não pode ser testada separadamente. Para testá-la é preciso criar a View de entrada de dados que irá usar a lookup.

Página 19

Page 20: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

9. VALIDAÇÕESUma validação é a verificação da digitação do usuário, isto é, verificar se o usuári oestá digitando corretamente o que é solicitado no campo. A validação aliada com as facilidades do Dicionário de Dados do VDF tornam a operação do software construído intuitiva e segura. As validações são programadas no DataBase Builder.

9.1. Field Settings – Validation / Lookup – Validation MethodEsta opção é utilizada para validações ou testes mais complexos que exigem programação e não são resolvidos pelas demais validações, como por exemplo teste de dígito verificador de CGC, CPF e outros do gênero. Iremos fazer um exemplo simples para título de exemplo. A método de validação deve ser inserido na guia Methods do DataBase Builder.

Abra pelo DataBase Builder o arquivo Clientes e posicione o cursor na Guia MeThods logo abaixo do início da programação da classe de dicionário de dados (isto é, logo abaixo da linha Class Pedido_DataDictionary is a DataDictionary) e digite o código abaixo.

Function ValidaEmail Integer iField Returns Integer String sEmail Get Field_Current_Value iField To sEmail If (Not(sEmail="")) Begin If "@" in sEmail Function_Return 0 Else Begin Error 999 "Email não é válido!" Function_Return 1 End End End_Function

Após digitar esta validação entre na guia Validation/Lookup e selecione o campo E-mail e na janela Validation Method escolha com o botão [...] a validação ValidaEmail. Com isto o seu programa irá validar o E-mail e o banco de dados não permitirá que o usuário grave um E-mail fora do padrão definido.

9.2. Field Settings – Validation / Lookup – Simple ValidationEste método serve para validações de campo simples. É utilizando para campos do tipo ASCII e consiste em informar o

conjunto de caracteres aceitos na validação separados pelo símbolo Pipe “|” .

Para exemplificar abra o arquivo Clientes e posicione o cursor na janela Simple Validation do campo SEXO e digite:F|M Desta forma só será possível cadastrar um cliente com o sexo M ou F informado.

Obs.: Caso queira que os dados F e M sejam apresentados para o usuário em forma de lista utilize a opção DbComboForm que será explicada mais adiante.

9.3. Field Settings – Validation / Lookup – Range From ToEsta opção serve para informar intervalos de datas ou intervalos numéricos. Isto significa dizer que o usuário só conseguirá

cadastrar um registro que o campo configurado esteja com um valor dentro do intervalo informado.

Para exemplificar abra o arquivo Clientes e posicione o cursor na janela Range From To do campo QTD_PESSOAS e digite: FROM: 1 TO 50

Desta forma só será possível cadastrar um cliente com a quantidade de pessoas de 1 a 50.

9.4. Field Settings – Validation / Lookup – Validation ErrorEsta janela permite ao programador informar um número de erro e uma descrição de erro para a validação programada para o

campo. Normalmente já existe um erro pré-definido pelo VDF, mas é possível programar outro.Para exemplificar informe o número 101 na primeira janela e na segunda a descrição QTD DE PESSOAS FORA DO

LIMITE! Lembre de salvar o arquivo.

Página 20

Page 21: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

Para acessar a tabela de erros do DataFlex abra no Menu Workspace a opção Error Maintanance. Neste utilitário é possível identificar a estrutura de controle de erros do VDF, bem como acrescentar erros a tabela. Para incluir um erro escolha o banco de dados de erros USER e procure o erro 101. A partir deste erro o programador pode incluir seus próprios erros. Para informar um erro ao usuário o comando é ERROR xxx, onde xxx é o número do erro.

9.5. Field Settings – Validation TableEsta opção serve para o usuário criar uma tabela de validação com valor e descrição. Uma Tabela de Validação pode ser

Static, Dynamic ou Custom. Iremos aboradar neste curso Tabela Static e Dynamic.

9.5.1. Tabela de Validação Static Serve para criar tabelas que não variam ou variam muito pouco. Para incluir um novo valor na tabela é preciso que o

programador entre no DataBase Builder acrescente o valor desejado e recompile o programa.Para exemplificar abra o arquivo BAIRROS escolha o campo ESTADO clique em STATIC e digite a sigla e os estados da

federação. A opção Validate [x] serve para garantir que será feita a validação dos dados da tabela. Caso desmarcada esta opção a tabela

será apenas de sugestão. Mantenha esta opção assinalada.A opção Blanks [ ] serve para indicar a possibilidade de passar o camp oem branco. Mantenha neste exemplo a opção

desmarcada.

PR PARANASC SANTA CATARINARS RIO GRANDE DO SULSP SÃO PAULO... etc

Agora abra o arquivo Pedido e escolha o campo forma_Pag e o tipo Static. Digite a tabela a seguir.

D DinheiroC ChequeVR Vale Refeição

Desmarque a opção Validate e assinale a opção Blanks

9.5.2. Tabela de Validação DynamicServe para criar uma tabela nos mesmos moldes da anterior porém com a possibilidade de que o próprio usuário cadastre

dados na tabela através de um utilitário.

Para exemplificar faça o seguinte.- Abra o DataBase Builder mas mantenha todos os arquivos de dados fechados.- Clique no menu Workspace e na opção Code Master Maintanance- Em Type: digite UNIDADES- Em Description digite UNIDADES DE MEDIDA- Passe com o TAB e salve até entrar na linha de dados- Digite as unidades conforme a tabela a seguir:

PC PEÇAUM UNIDADEKG QUILOGRAMA

- Feche o utilitário Code Maintanance- Abra o arquivo PRODUTOS- Na guia Field Settings – Validation Table selecione o campo UND_MEDIDA e marque a opção Dynamic e na opção

Type Value selecione UNIDADES- Salve o arquivo

Página 21

Page 22: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

Após o programa compilado se for necessário incluir mais unidades de medida basta utilizar o program Code Master Maintanance e acrescentar as unidades.

10. Máscaras - Field Settings - MaskAs máscaras são usadas para a formatação de campos de entrada de dados. Ex.: CEP O usuário digita 81020010 mas na tela

aparece 81020-010. Ou telefone. O usuário digita 021142471488 e na tela aparece (02114)247-1488.Existem 4 tipos básicos de máscaras. Currency para moeda, Date para datas, Numeric para números e Text para texto. Se o

programador fizer uso do tipo básico apenas, o VDF irá verificar o padrão das configurações do windows de acordo com este tipo. Por exemplo se o tipo for Date e não houver nenhum detalhamento na janela Custom Mask (Máscara personalizada) a data será mostrada com o ano com 2 ou 4 casas de acordo com a configuração do windows da máquina que estiver rodando o sistema.

O Custom Mask é um detalhamento da máscara e depende do tipo utilizado e funciona com a utilização de tokens – simbolos pré-definidos para cada tipo. A saber:

Text Mask Type or None

Token Significado# Qualquer dígito numérico (0-9)@ Qualquer caracter alfabético (A-Z, a-z)! Qualquer caracter de pontuação* Qualquer caracter

Date Mask Type

Token Significadom Número do mes, será impresso como 1, 2, 3, …, 12mm Número do mes, será impresso como 01, 02, 03, …, 12mmm Nome do mes abreviado (traduzido para a lingua local) Jan, Fev, etcmmmm Nome completo do mês. Janeiro, Fevereiro, etcd Número do dia, impresso como 1, 2, 3, …, 31dd Número do dia, impresso como 01, 02, 03, …, 31ddd Dia da semana abreviado. Seg, Ter, Qua, etcdddd Dia da semana completo. Segunda, Terça, etcyy Ano com 2 casas. 00, 01, 02, …, 99yyyy Ano com 4 casas. 2000, 2001, 2002, …, 2099/ Separador para data

Nota: Símbolos para dia e mes são case-sensitive. Isto é, Mmm = Abr, MMM=ABR

Numeric e Currency

Token Significado, Formatação do número para milhares. Separa de três em três a esquerda do ponto decimal. Este símbolo é traduzido para o separador configurado na máquina local.. Posição do ponto decimal.; Separa números positivos a esquerda e negativos a direita do ponto e vírgula.# Nenhum dígito ou um dígito* Qualquer número de dígitos0 Um dígito ou zero.

Exemplos:

Text Mask Type or NoneMask Dado digitado Dado formatado###-##-#### "012345678" 012-34-5678###-##-#### "012-34-5678" 012-34-5678(###) ###-#### "2125551212" (212) 555-1212

Página 22

Page 23: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

(###) ###*#### "212-555-1212" (212) 555-1212

Date Mask TypeMask Dado digitado Dado Formatado Data Ddd - Mmm d, yyyy 9/22/1998 Seg - Set 22, 1998m/d/yy 9/22/1998 9/22/98Mmmm d 9/22/1998 Setembro 9

Numeric e Currency Mask TypeMask Raw Data Formatted Data (BR)$#,##0;($#,##0) 1001.536 R$1.002$#,##0;($#,##0) -1001.536 (R$1.002)0.00 -0.2 -0,2000000 123 00123-> * <- 104 -> 104 <-*0.* 30.2500 30,25+*0.00;-*0.00 12 +12,00

Para representar o nosso exemplo utilizaremos as seguintes máscarasArquivo Campo Mask type Custom MaskClientes CEP Numeric 00000-000Produtos PRECO_VENDA CurrencyPedido DATA DatePedido VALOR_TOTAL Currency

11. Aparência - Field Settings – AppearanceEsta guia permite a configuração da aparência dos objetos de entrada de dados quando forem criados pelo DataBase Selector.

Isto agiliza muito a criação de um software e principalmente determina um padrão de apresentação do mesmo, tornando o software criado mais profissional.

Visual Control: O Controle Visual determina o tipo de objeto que será gerado na tela automaticamente quando o campo for arrastado do seletor de campos para a View (tela de entrada de dados). Se não for informado o VDF irá decidir pelo objeto padrão do tipo do campo.

São eles:DbBitmap – Objeto que irá conter uma figura .bmp ou outro tipo (.jpg)DbCheckBox – Objeto para marcar – assinalar com [X]DbComboForm – Caixa de Combinação. Utilizado normalmente para campos com Simple Validation ou Validation TableDBEdit – Campos para editoração. Utilizados para campos tipo TEXTDbForm – Campo normal de entrada de dados. Utilizado para campos numéricos, data e ASCIIDbGrid – Tabela de entrada de dados composto de linhas e colunasDbSpinForm – Campo de entrada de dados numéricos ou datas com botões para incrementar ou decrementar o valor do

campo.

Long Label: É o Label ou Rótulo para cada campo que será usado nas Views. Se long label não for informado será utilizado o nome do campo como rótulo automático.

Short Label: É o Label ou rótulo para cada campo que é usado em uma Grid ou Lookup. Se não for informado será utilizado o Long Label. Se Long Label não for informado será usado o nome do campo.

Para o nosso sistema a configuração fica da seguinte forma:

Arquivo Campo Visual Control Long Label Short LabelBairros Cod_Bairro Codigo Cod

Nome Nome do Bairro Nome

Página 23

Page 24: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

Cidade Cidade CidadeEstado DbComboForm Estado UF

Clientes Telefone Telefone FoneNome Nome NomeEndereco Endereco EnderecoBairroCep Cep CepE_Mail E-Mail E-MailProximidade ProximidadeSexo dbComboForm Sexo SexoQtd_Pessoas Quantidade de

PessoasQtd

Entreg Codigo Codigo CodigoNome NomeTelefone Telefone FoneCelular Celular Celular

Produtos Codigo CodigoNome NomePreco_Venda Preço de Venda PreçoEm_Estoque dbSpinform Quantidade em

Estoque’QTD

Und_Medida dbComboForm Unidade Und

Pedido Ped_Numero Número NúmeroClienteData DbSpinForm Data DataEntregValor_Total Total TotalForma_Pag DbComboForm Forma de Pagamento Pgto emObs DbEdit Observação

Peditens Ped_NumeroProdutoValor_Unitario Valor Unitário UnitárioQtd DbSpinForm Quantidade QtdValor_Total Total Total

12. Complementos do Dicionário de Dados - Field Settings – OtherNesta guia poderemos informar outras opções como a seguir:

Status Help: Ajuda que irá aparecer na barra de status para cada campo. Informe um status help para cada campo.Default Value: Valor default do campo para um novo cadastro.

Para o arquivo de Bairros no campo Estado informe PRPara o arquivo de Peditens no campo Qtd informe o número 1

Entry Method: Neste campo informaremos o método ou procedure que será executada ao entrar no campoExit Method: Neste campo informaremos o método ou procedure a ser executada ao sair do campo.Auto Increment: Arquivo.Campo que contém a referencia para códigos automáticos. Já visto no item 7.2Short description: Ajuda ou documentação para o programador e para o analista. Não aparece para o usuário.

Página 24

Page 25: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

13. Métodos – MethodsNesta guia podemos inserir todos os métodos – procedures ou functions que precisarmos. Para cada arquivo do banco de

dados o VDF cria uma Sub Classe de dicionário de dados para possibilitar que criemos as nossas procedures e functions que irão trabalhar em cada arquivo.

13.1. Procedures e Functions – qual a diferença entre elasUma procedure normalmente executa uma tarefa e não retorna valor, embora em DataFlex seja possível uma procedure

retornar valor.Uma function executa uma rotina, um cálculo por exemplo, e sempre retorna um valor.

Exemplo:

Procedure pMostraCivil String sCivil If (sCivil = “C”) Send Info_box “Casado”If (sCivil = “S”) Send Info_box “Solteiro”If (sCivil = “V”) Send Info_box “Viúvo”If (sCivil = “D”) Send Info_box “Divorciado”

End_Procedure

Function fMostraCivil String sCivil Returns StringString sDescricao

If (sCivil = “C”) Move “Casado” To sDescricaoIf (sCivil = “S”) Move “Solteiro” To sDescricaoIf (sCivil = “V”) Move “Viúvo” To sDescricaoIf (sCivil = “D”) Move “Divorciado” To sDescricao

Function_Return sDescricaoEnd_Function

Para executar (chamar) uma procedure utilize o comando Send + nome da procedure + os parâmetrosEx.: Send pMostraCivil C Resultado: Casado

Para executar uma function pode utilizar o comando Get + nome da função + parâmetros + To + Variável destinoEx.: Get fMostraCivil “C” To sDesc_Civil Resultado: A variável sDesc_Civil terá o conteúdo igual a “Casado”

13.2. Um exemplo de Entry Method

Abra o arquivo Pedido e clique na Gui Methos. Logo abaixo da linha Class Pedido_DataDictionary is a DataDictionary digite a seguinte procedure:

Procedure pDataDoPedido Integer iField Date DataPedidoInteger Alterado

Get Field_Changed_State iField To AlteradoIf (Alterado = 0 And DataPedido = 0) Begin

Sysdate4 DataPedidoSet Field_default_Value iField To DataPedido

EndEnd_Procedure

Agora clique na Guia Others e selecione o campo Data e clique no botão [...] e escolha a procedure pDataDoPedido.Esta procedure faz com que ao entrar no campo de um novo pedido seja movida a data do sistema para a janela Data.

Página 25

Page 26: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

13.3. Procedure UpDate, BackOut, Delete e CreatingEstas procedures são utilizadas para o controle de gravação e atua lização dos dados.

Procedure Inclusão Alteração ExclusãoCreating XDeleting XUpDating X XBackOut X X

Um exemplo que ilustra muito bem o funcionamento da UpDating (atualizar) e da BackOut (desfazer) é o controle de estoque. Portanto iremos programar a seguir as procedures para o correto controle de estoque ao vendermos os nossos itens no sistema.

Abra o arquivo Peditens e posicione na guia Methods. Do lado esquerdo clique no [+] Unaugmented Methods e será mostrado a lista dos métodos padrões do VDF que ainda não foram implementados para o dicionário de dados deste arquivo.

De dois clicks em Update e em Backout. No editor do lado esquerdo estará disponível a estrutura para que seja possível a digitação do método. A seguir complemente os dois métodos e aproveite para digitar os demais métodos que serão utilizados no programa e que ainda não foram digitados. Observe que algumas procedures já estão definidas pois são default da classe.

Class Peditens_DataDictionary is a DataDictionary

// Backout: responsável por desfazer para os casos de alterações e exclusões Procedure Backout Forward Send Backout Calc (Produtos.Em_estoque + Peditens.Qtd) To Produtos.Em_Estoque Calc (Pedido.Valor_Total - Peditens.Valor_Total) To Pedido.Valor_Total End_Procedure // Backout // Update: realiza a atualização do estoque e do valor subtotal e total Procedure Update Forward Send Update Move (Peditens.Qtd * Peditens.Valor_Unitario) To Peditens.Valor_Total Calc (Produtos.Em_estoque - Peditens.Qtd) To Produtos.Em_Estoque Calc (Pedido.Valor_Total + Peditens.Valor_Total) To Pedido.Valor_Total End_Procedure // Update //Serve para incluir automaticamente o preço de tabela na grid de itens de pedido Procedure Preco_de_Tabela integer iField Number nValorUnitario If (nValorUnitario = 0) Begin Get File_Field_Current_Value File_Field Produtos.Preco_Venda To nValorUnitario Set Field_Changed_Value iField To nValorUnitario Send Exibir_Subtotal_Na_Tela End End_Procedure //Esta procedure serve apenas para atualizar o valor na tela Procedure Exibir_Subtotal_Na_Tela Integer iQtd Number nValorUnitario Get Field_Current_Value Field Peditens.Qtd To iQtd Get Field_Current_Value Field Peditens.Valor_Unitario To nValorUnitario Set Field_Current_Value Field Peditens.Valor_Total To (iQtd * nValorUnitario) End_procedure

Página 26

Page 27: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

// Define_Fields: // This procedure is used to set up all data-dictionary rules.

Procedure Define_Fields Forward Send Define_Fields //DDB-Generated-Code-Location End_Procedure // Define_Fields

// Field_Defaults: // This procedure is used to establish default field values.

Procedure Field_Defaults Forward Send Field_Defaults //DDB-Generated-Code-Location End_Procedure // Field_Defaults

End_Class // Peditens_DataDictionary

Após digitar as procedures informe ao DataBase Builder arquivo de Peditens na Guia Others para o campo Valor_Unitario o método Preco_De_Tabela.

14. Guia Structures – Estruturas de Exclusão e GravaçãoNesta guia o programador pode visualizar e alterar as estruturas de gravação e exclusão. Em VDF toda vez que é feito uma

exclusão o dicionário de dados acessa a lista Required Chield Files (Filhos) para decidir as exclusões em cascata e toda vez que é feita uma gravação o dicionário de dados acessa a lista de Required Parent Files (Pais) para verificar quais os arquivos que devem ser salvos. Esta estrutura normalmente é montada automaticamente com base no relacionamento de arquivos.

14.1. Cascade DeleteTambém podemos controlar a exclusão em cascata ou não. Isto é ao excluir um registro verificar todos os registros filhos para

proceder a exclusão.Para entender este procedimento proceda da seguinte forma:Abra o arquivo Bairros e posicione na Guia Structure. Desmarque a opção Cascade Delete, pois não desejamos que ao excluir

um bairro todos os clientes sejam excluídos.Abra o arquivo Entreg e proceda da mesma forma, pois não desejamos que todos os pedidos de um entregador sejam

excluídos na tentativa de excluir o entregador.Abra o arquivo produtos e desmarque a opção Cascade Delete pois não desejamos que seja excluído os iten

Portanto o Cascade delete desmarcado significa que só será possível excluir o registro do arquivo se não existirem registros filhos. Se o Cascade Delete estiver assinalado serão excluídos todos os registros filhos da árvore, a não ser que na árvore exista algum arquivo que esteja com Cascade Delete desmarcado.

É bom lembrar que para excluir um registro é necessário que sejam incluídos os .DDs filhos na View do arquivo principal. Exemplo. Para poder excluir um bairro é necessário que na View de bairros esteja a .DD do cliente.

15. Guia Options – Opções de relacionamento de arquivosNesta guia o programador define o comportamento do arquivo quando ele recebe o relacionamento de outro arquivo. Existem

três definições:Key Foreign Field Options : definições para os campos chaveIdex Foreign Field Options : Definições para os campos que fazem parte de um índice.Default Foreign Field Options : Definições para os demais campos

Na opção Other Settings existe uma checkbox chamada Protect Key Field normalmente assinalada para definir que os campos chave não podem ser alterados depois de gravados.

Página 27

Page 28: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

16. Criando Uma View pelo Wizard

O Wizard é um assistente para a criação de Views. É muito interessante para os iniciantes na programação VDF, porém o mais comum é a utilização de uma Blank View e a criação completa da View.

Abra o IdeClique em file – New ComponentNa guia Data Entry Views escolha View Wizard e clique no botão [OK]Digite o nome da View. Ex.: wzBairrosClique em NextVocê pode escolher

Only forms – Apenas FormuláriosOnly grids – Apenas tabelas de entrada de dados (linhas e colunas)Forms and Grids – Os dois juntos. Utilizado para telas do tipo pedido, notas fiscais, orçamentos, etc.

Escolha Only forms e clique em NextAgora Selecione o(s) Dicionários de Dados a serem usados. Para mais de um mantenha pressionado a tecla CTRL e cliqueSelecione o Dicionário de Dados de Bairros e clique em NextAgora selecione os campos desejados para compor a tela de entrada de dados.Selecione: Cod_bairro, nome, cidade, estado e clique em NextPronto. Sua tela de entrada de dados está prontaClique em Finish

Você logo irá notar que o Wizard não reconhece alguns detalhes configurados do Dicionário de Dados, como nome dos campos (appearance), Tipo de Objeto (objeto control), etc. Mas a View funciona perfeitamente.

Para testar clique no botão Teste (um homenzinho azul correndo)

Repita o processo para os cadastros de Clientes, Produtos e Entregadores

17. Criando Uma View pelo Blank ViewExemplo criando a View de entrada de dados de Bairros (Isto é, o Cadastro de Bairros)Abra o IdeClique em file – New ComponentNa guia Data Entry Views escolha BlankView e clique no botão [OK]Selecione o Dicionário de Dados a ser Utilizado clicando no botão DataBase SelectorComo não existe nenhum dicionário de dados na View irá abrir automaticamente uma tela com o botão [ADD DDO]

Adiocione o dicionário de Dados. Clique neste botão.Irá aparecer uma lista dos dicionários de dados disponíveis. A explicação para esta seleção é que quem controla a grvação,

pesquisa, alteração e exclusão no banco de dados é o dicionário de dados. Por isto a View precisa saber qual é, ou quais são, o(s) dicionário(s) de dados que irá(rão) fazer parte da View.

Escolha o Dicionário de Dados de Bairros e clique no botão SelectEle será o principal de nossa View (neste caso o único), clique em Sim (Yes) para a Pergunta se ele será o pricnipal (Main?)Clique em close para fechar a tela de Dicionários de Dados e trabalhar com a tela Database SelectorEsta tela mostra os bancos de dados disponíveis para que possamos escolher os campos que farão parte da View.Antes de escolhermos os campos vamos dar um toque profissional a nossa ViewClique no Menu Tools – controls Pallete (Ou no botão com o martelo e a chave de boca)Este Painel possibilita a escolha de objetos para a composição de nossa ViewClique na Guia Data Containers – Clique no segundo container (dbContainer3d) – Clique, segure e arraste para o canto

superior esquerdo da View e solte. Redimensione o container para ocupar a maior parte da View.Agora no Database Selector de 2 clicks no banco de dados de BairrosAssinale os campos: Cod_Bairro, Nome, Cidade e EstadoClique em um deles, segure e arraste para o canto superior esquerdo do Container, deixando espaço a esquerda para os

Rótulos (Labels).Ajuste os tamanhos dos objetos para ficar com uma boa aparência.Clique no disquete para Salvar.

File Name=BairrosDescription=Cadastro de BairrosObject-Name=wBairros

Página 28

Page 29: Curso de Visual Dataflex 7.0

CURSO DE VISUAL DATAFLEX 7.0 PROFESSOR: MARCIO MARINO GUSSO

Deferred=[x]18. Créditos

Marcio Marino Gusso é analista de sistemas e programador de computador formado pelo Centro Federal de Educação Tecnológica do Paraná em Eletrônica e graduado em Cienência da Computação pela Pontifícia Universidade Católica do Paraná e com pós-graduação em Engenharia da Informação pela mesma instituição.

Atua com a ferramenta Dataflex desde a versão 2.3b tendo trabalhado em ambiente UNIX, MS-DOS, Novell, NT e Windows.Instrutor oficial de VDF-Visual DataFlex da DataAccess WorldWide, empresa que fornece o DataFlex.Atualmente professor titular de Banco de Dados e de Visual DataFlex no Colégio e Faculdade Padre João Bagozzi e analista

de sistemas da empresa Marcol Informática Ltda.

DataFlex e Visual DataFlex são marcas registradas da empresa DataAccess World Wide

Links de interesse:

[email protected]@bagozzi.com.brwww.marcol.inf.brwww.dataaccess.com.brwww.dataflex.com.brwww.apoioinfo.comwww.netpar.com.br

Página 29