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.
|
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.
|
|
Exemplo | Para o diagrama:
![]() O arquivo Fornecedor terá 3 campos: CGC, Nome e Endereço, sendo que a chave será o CGC.
|
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.
|
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.
|