Capítulo 7

Implementação
 

  Após a modelagem que identificou o diagrama do sistema, o projetista deverá descrever suas informações ao LANCE. Cada Tabela, Arquivo ou Parâmetro identificado na modelagem será transcrito para o LANCE a partir de seu menu principal, utilizando-se das suas respectivas opções.

Para cada Tabela, o projetista informará o conteúdo de seus Itens. Para cada Arquivo ou Parâmetro, ele descreverá seus Campos e, opcionalmente, suas Visões e Formulários.

A seguir, definirá ao menos um Menu que contenha, por exemplo, uma opção de folheamento para cada arquivo ou tabela definidos. Só então, comandará a Geração de seu sistema. O LANCE fará uma crítica global da descrição fornecida, passará a gerar os programas fontes necessários e, ao final, comandará sua compilação.

O sistema gerado poderá ser executada de dentro do LANCE, ao final da compilação, bem como diretamente do DOS ou WINDOWS. Vale relembrar que o sistema gerado é um código executável, não protegido e independente do LANCE.

Exemplo Para o diagrama:

Deverão ser criados o arquivo Cidade com seus campos, a tabela Estado com seus Itens e um menu Principal com opções para folhear cada um.

 

Definição dos Campos

 

A modelagem define as informações mais importantes de um campo: seu Nome, se é ou não parte da chave do registro e seu Modo de Obtenção.

 

Nome e Chave

Os nomes dos campos de um arquivo serão aqueles que o projetista especificar ao lado do mesmo na representação do modelo, além dos que representam os relacionamentos. Os campos chave são os que foram representados sublinhados no diagrama ou com ligação por seta dupla.

Exemplo Para o diagrama:

O arquivo Fornecedor terá 3 campos: CGC, Nome e Endereço, sendo que a chave será o CGC.

 

Modo de Obtenção

Quanto ao Modo de Obtenção, um campo pode ser Digitado, Ligado, Calculado ou Multivalorado. No Modelo estão implicitamente definidas ocorrências de todos estes modos.

Campo Digitado é todo aquele que armazena uma informação básica, e é 1:1 com um dos arquivos.

Exemplo No exemplo anterior, todos os três campos (CGC, Nome e Endereço) são digitados.

As informações que complementam a definição de um campo digitado são suas críticas (tipo, tamanho, sinal, obrigatoriedade de preenchimento e condições de existência, alteração, erro e advertência), sua aparência (condição de folheamento, máscara de exibição, apresentação especial e cor), seus auxílios à digitação (cabeçalho de folheamento, mensagem, sugestão, texto de auxílio e função F2) e sua permanência em memória.

No registro, um campo digitado ocupa um espaço de acordo com o seu tipo e tamanho (veja Capítulo 16 - "Formato e Conversão de Arquivos").

Campo Ligado é todo aquele que será criado no arquivo Filho para representar um relacionamento com seu Pai.

Exemplo Para o diagrama:

No arquivo Fornecedor, além dos campos digitados já mencionados, será criado um campo ligado com o arquivo Cidade, indicando a cidade em que o fornecedor está sediado.

Normalmente, os campos Ligados são criados com o mesmo nome do Arquivo com o qual ele se liga. No caso do exemplo, o nome do campo Ligado poderia ser Cidade.

As informações que complementam a definição de um campo Ligado são suas críticas (obrigatoriedade de preenchimento e condições de existência, alteração, erro e advertência), sua aparência (condição de folheamento e cor), seus auxílios à digitação (cabeçalho de folheamento, sugestão e texto de auxílio) e sua ligação (arquivo ou tabela pai, permissão de navegação e de deleção do pai).

Vale ressaltar que a definição de um campo Ligado substitui a repetição dos campos que compõem a chave do arquivo pai no arquivo filho. No exemplo, no arquivo Fornecedor a informação relevante é o relacionamento que ele tem com a sua Cidade sede, não importando que a chave da Cidade é o campo Nome (como poderia ser outro qualquer).

No registro filho, um campo Ligado armazena internamente o n° de ordem do registro pai para o qual ele aponta (em 1 ou 2 bytes, ver Capítulo 16 - "Formato e Conversão de Arquivos"). Externamente ele apresenta ao operador a chave deste registro.

Exemplo Os registros dos arquivos do exemplo anterior poderiam ter o seguinte conteúdo:

Nos Fornecedores 'Kogumelo' e 'Agarte', o campo Ligado Cidade contém internamente o valor 2, indicando a 2ª cidade do cadastro de cidades. Ao operador será apresentado 'Rio de Janeiro' , como se houvesse a repetição da chave no arquivo Fornecedor.

Campo Calculado é todo aquele cujo valor é sempre derivado de outros campos.

Exemplo Para o diagrama:

Os campos TotNota e TotItem são campos Calculados, cujas fórmulas são:

TotItem = Qtd * Preço do Item

TotNota = Somatório de TotItem de cada Item da Nota

As informações que complementam a definição de um campo Calculado são sua aparência (tipo, tamanho, sinal, máscara de exibição, apresentação especial, condição de existência e de folheamento, cabeçalho e cor) e seu cálculo (tipo e expressão).

Um campo Calculado não ocupa espaço em disco, pois ele depende apenas de uma fórmula, cujo valor é calculado automaticamente sempre que for necessário.

O valor de um campo Calculado só é alterado quando o operador modificar quaisquer das informações que participem do cálculo. Caso seja necessário que o resultado do cálculo precise ser alterado pelo operador ou que este valor deva permanecer inalterado mesmo quando uma de suas parcelas for modificada, então o projetista deve criar este campo como Digitado, tendo a expressão de cálculo como sugestão de valor - ela será avaliada somente na inclusão de um novo registro - e não permitir alterações.

O LANCE otimiza a avaliação de campos calculados de forma a utilizar, sempre que possível, o último valor previamente obtido, aumentando a eficiência do sistema gerado.

Exemplo Para o diagrama:

O Preço de Venda de um produto é sempre o preço atual de tabela. Mas como o valor histórico da venda deve ser armazenado, mesmo que o preço de tabela mude, neste caso o Preço de Venda é, na verdade, um campo digitado, pois deve armazenar um valor histórico e não apenas calculá-lo pelo valor atual. O campo Total sim, é sempre calculado pela fórmula Qtd * Preço.

Campo Multivalorado é todo aquele que será criado no Arquivo Pai para complementar a representação de um relacionamento que seja multivalor.

Exemplo Para o diagrama:

No arquivo NotaFiscal será criado um campo Itens com modo Multivalorado, indicando o momento onde serão pedidos os ítens dentro de Nota Fiscal. O campo ligado do arquivo Item com Nota Fiscal continua existindo.

As informações que complementam a definição de um campo Multivalorado são suas críticas (obrigatoriedade de preenchimento e condição de existência) e sua multivaloração (arquivo filho, sua visão e seu campo ligado).

Um campo Multivalorado não ocupa espaço em disco, pois apenas representa um momento de navegação automática. É uma forma de orientar o operador na digitação de um registro. No exemplo acima, ele começará digitando os dados básicos da Nota Fiscal, seguirá automaticamente na digitação dos ítens da Nota e terminará por informar os dados finais da Nota, como se fossem todos campos de um mesmo registro do arquivo Nota Fiscal.

 

Recomendações

 

Por estar localizada na definição dos campos a essência da descrição do sistema, o LANCE coloca à disposição do projetista um grande número de possibilidades.

Em uma primeira transcrição, o projetista menos experiente deve aceitar a maioria dos valores sugeridos pelo LANCE para preenchimento das diversas informações a respeito dos dados de seu sistema. Após a primeira geração e, consequentemente, a primeira execução, ficará mais fácil de se perceber os pontos onde o projetista deverá ser mais específico, atentando para as mensagens "(opcional)" e "ou <F2>" que aparecem na linha de mensagens durante a definição dos dados.

Nota A ordem de definição dos campos em um arquivo é muito importante, pois será a mesma que o sistema gerado usará para pedi-los ou calculá-los. Dentre os campos Chave, somente o último deles pode ser Digitado.