INTRODUÇÃO
O Easytrieve Plus é um sistema de gerenciamento de
dados que oferece facilidades para desenvolvimento de aplicações
comerciais.
Esta facilidade de obtenção de informação permite
que pessoas não envolvidas no processamento de dados gerem relatórios que
satisfaçam as necessidades das empresas.
A característica de composição automática de
relatório embutida no Easytrieve Plus
proporciona uma produtividade
imediata até mesmo para programadores inexperientes. Para programadores
experientes, foi acrescentado mais
procedimentos sofisticados para providenciar relatórios de maior complexidade
sem sacrificar a simplicidade.
A característica de gerenciamento de dados do
Easytrieve Plus torna-o uma efetiva ferramenta de desenvolvimento de aplicação.
Você pode usar essa poderosa linguagem para:
·
Auxiliar no design e desenvolvimento rápido de programas de produção
·
Executar manutenção em arquivos de vários tipos.
NOMENCLATURA E TIPOS DE VARIÁVEIS
As
variáveis no Easytrieve Plus pode ser formada por até no máximo 40 caracteres
alfanuméricos e podem armazenar os seguintes tipos de informações:
·
A Alfanumérica
·
N Numérica
·
P Compactada
·
U Compactada sem sinal
·
B Binaria
DELIMITADORES
: - Serve para qualificar uma variável
Ex.
CLIENTES:NOME
* - Serve para indicar o inicio de uma comentário
Ex. * Inicio da lógica
. - Serve para indicar o final de uma linha de comando, para
dar inicio a um
comentário
Ex. IF DEPT = 910. * Tipo de departamento administrativo
+ - Serve para indicar que a instrução continua no primeiro
caractere não branco da
próxima linha.
Ex. TITLE
‘ABC+
DEF’
Na impressão ABCDEF
DEFINIÇÃO DE ARQUIVOS
FILE
Esta
instrução tem a função de definir arquivos no EasyTrieve.
Formato:
FILE
{Nome-arquivo} [atributos
de arquivo]
Exemplo:
FILE
CLIENTES
FILE
CLIENTES ISAM
FILE
RELATO PRINTER
DEFINIÇÃO DE VARIÁVEIS DE ARQUIVO
Formato:
Nome-campo posição-inicial
tamanho tipo casas-decimais HEADING ‘literal’
MASK
Exemplo:
FILE CLIENTE
NOME 01 20 A
IDADE 21 02 N
SALARIO 23 08 P 2
FILE CLIENTE
%INCLUDE
FILE CLIENTE
NOME 01 20 A HEADING ‘NOME’
IDADE * 02 N HEADING
‘IDADE’
SALARIO * 08 P 2 HEADING ‘SALARIO’
DATA-NASC * 08 A HEADING
‘DATA’ ‘NASC.’
DEFINIÇÃO DE VARIÁVEIS DE TRABALHO
Áreas: S - Área para
acumuladores, contadores, não tem à ver com os dados dos
arquivos
W- Área para completar dados de um arquivo.
Exemplo:
FILE CLIENTE
NOME 01 20 A
IDADE 21 02 N
SALARIO 23 08 P 2
RG W 11 N
CIC W 12 N
AC-GRAVADOS S N 5
AC-LIDOS S N 5
REDEFINIÇÃO DE VARIÁVEIS
Exemplo:
DATA-NASC 103 6 N
ANO 103 2 N
MÊS 105 2 N
DIA 107 2 N
DATA-NASC 103 6 N
ANO 103 2 N
MÊS * 2 N
DIA * 2 N
DATA-NASC W 6 N
ANO DATA-NASC 2 N
MÊS DATA-NASC +2 2 N
DIA DATA-NASC +4 2 N
MASK
Esta instrução tem como função formatar informações de
saída.
Formato:
MASK
[letra] [BWZ] [‘mascara’]
Letra : Serve para nomear uma mascara
BWZ : Quando um campo numérico for totalmente
zero, este será substituído por
brancos
(Blank When Zero)
Exemplo:
MASK
(A BWZ ‘999-99-9999’) - 012-34-5678
MASK
(B ‘$$,$$9-‘) - $1,234
MASK B - $5,678
MASK
(C ‘Z9/99/99’) - 3/08/99
MASK
(D ‘--,---,-9.99’) - - 10.40
VALUE
Esta
instrução tem a função de inicializar variáveis, já em sua declaração.
Formato
:
Variável tipo tam. VALUE
valor inicial
Exemplo:
CURR-MON W 10 A VALUE
‘JANEIRO’
AC-LIDOS S 05 N VALUE
0
JOB
A
instrução JOB define e inicializa a atividade de processamento, e também
identifica o nome do arquivo de entrada automaticamente.
Formato:
JOB INPUT nome-arquivo NAME nome-job
JOB INPUT
NULL à não faz leitura automática
Exemplo:
JOB INPUT
CLIENTES
JOB INPUT
(CLIENTES KEY(CODIGO) CONTAS-PAG
KEY(CTA-COD))
JOB INPUT
NULL
IF/ELSE
A instrução IF/ELSE tem a função de realizar comparações
dentro de um programa EasyTrieve. Esta instrução deve ser finalizada com um
END-IF.
Formato:
IF condição
Instrução
ELSE
Instrução
END-IF
Operadores:
Relacionais:
EQ - Igual a
NE - Diferente de
GT - Maior que
GE - Maior ou igual a
LT - Menor que
LT - Menor que
LE - Menor ou igual a
Exemplo:
IF
SALARIO <= MINIMO
SALARIO = SALARIO +
ABONO
END-IF
Lógicos:
AND - E
OR -
OU
NOT - Não
Exemplo:
IF SALARIO >= 100 AND SALARIO < 1000
SALARIO = SALARIO +
ABONO
END-IF
IF’s especiais
IF field-name
[NOT] ALPHABETIC
NUMERIC
SPACE
SPACES
ZERO
ZEROS
ZEROES
Aritméticos:
* - Multiplicação
/ - Divisão
+ - Adição
- - Subtração
Cálculos
e atribuições à variáveis são feitas através de operações aritméticas.
Exemplo:
RESULT = ( NOTA1 + NOTA2) / 2
NOME = NOME-W
PRINT
Esta
instrução tem a função de invocar o relatório indicado.
Formato:
PRINT nome-relatorio
Exemplo:
IF REG = 25
PRINT
RPT1
END-IF
COMANDOS DE RELATÓRIO
REPORT
Este
instrução tem a função de definir a rotina de criação de relatório
Formato:
REPORT nome-relatorio
Parâmetros utilizados com a instrução REPORT
Pagesize : Número de linhas por pagina
Linesize : Número de colunas por linha (default é 132)
Skip : Salto entre linhas
Space : Numero de espaços entre colunas
Nodate : Inibe a impressão da data
Nopage : Inibe a impressão do número da pagina
Noadjust : Permite ao programador ajuste manual do relatório.
DTLCTL : Controla a impressão de quebra de nível.
·
FIRST : só imprime a primeira ocorrência (DEFAULT).
·
EVERY : imprime todas
·
NONE : não imprime nenhum
SUMCTL : Controla a impressão das linhas de totais.
·
HIAR : Imprime todos os campos (DEFAULT).
·
NONE : Não imprime nenhuma linha.
·
TAG : Imprime o nome do campo seguido da palavra TOTAL.
SUMMARY : Com este argumento é gerado um relatório resumo, só com linhas de
totais, sem detalhe.
SEQUENCE
Esta
instrução permite especificar a ordem de impressão dos dados
Formato:
SEQUENCE field-name1
[D] field-name2 [D] ...
Exemplo:
SEQUENCE nome data-nasc D
CONTROL
Esta
instrução controla as quebras de nível e a impressão de totais de colunas.
FINAL : Serve para imprimir o total geral no final do relatório.
NOPRINT : Inibe a impressão dos totais nas quebras e/ou no final do
relatório
NEWPAGE : Faz com que toda quebra seja impressa em uma nova pagina
RENUM : Renum seguindo qualquer campo ou FINAL causa uma nova
pagina c/ números começando por um depois da impressão do controle de quebra de
totais (ou, no caso do FINAL, antes da impressão dos totais finais)
SUM
Esta
instrução permite a sumarização dos campos desejados, desde que estes campos
possuam casas decimais.
Formato:
SUM field-name1 field-name2 ...
TITLE
Esta
instrução define as linhas de cabeçalhos/títulos do relatório. Pode ter de 1 a
99 TITLES. Esta instrução alinha automaticamente o relatório (centralizando)
desde que não se utiliza a instrução NOADJUST.
Formato:
TITLE [nn] [COL
nn] [field-name / literal]
HEADING
Esta
instrução define o cabeçalho das colunas. Ela pode ser usada na definição das
variáveis ou dentro do REPORT.
Formato:
HEADING field-name
(‘literal’...)
LINE
Esta
instrução define as linhas detalhes do relatório.
Formato:
LINE nn [POS
nn / COL nn] [field-name / literal]
Obs.
O argumento POS faz relação com a posição da primeira linha LINE 1.
STOP
Esta
instrução pára o fluxo normal de leitura e vai para outra, ou interrompe a
execução do programa.
Exemplo:
IF
AMT NOT NUMERIC
STOP
ENDIF
IF
AMT NOT NUMERIC
STOP
EXECUTE
ENDIF
DISPLAY
Imprime informações no Easytrieve
Formato:
DISPLAY [nome-arquivo] [NEWPAGE/SKIP] [COL] [POS]
[Literal1/field-name]
Exemplo:
DISPLAY SKIP2 ‘***
Total de registros impressos = ‘ TOT-REG
REPORT
PROCEDURES (PROCs)
BEFORE-BREAK.
PROC : antes da quebra, esta procedure é invocada.
Obs:
o level equivale ao numero da quebra, da esquerda para a direita.
AFTER-BREAK. PROC : depois da quebra, esta
procedure é invocada.
ENDPAGE. PROC : esta procedure é invocada
toda vez que estourar o numero de linhas da pagina.
TERMINATION. PROC : esta procedure é
invocada, quando terminar o relatório.
CALL
A
instrução CALL tem a função de acessar sub-rotinas externas.
Formato:
CALL nome-rotina [USING
parâmetros]
MOVE
Tem
a função de movimentar dados para variáveis.
Formato:
MOVE
dado1 to dado2,dado3,...
MOVE SPACE/SPACES/ZERO/ZEROS to
dado1
MOVE LIKE itemgrupo1 to itemgrupo2
Criação de Proc’s
Formato:
Proc-name. PROC
*** lógica ***
END-PROC.
PERFORM
Esta
instrução desvia a execução do programa para a Proc especificada, só retornando
quando encontrar a instrução END-PROC.
Formato:
PERFORM Proc-name
GOTO
Esta
instrução desvia a execução do programa para um endereço especificação ou para
o JOB corrente.
Formato:
GOTO [JOB /
Label]
·
JOB - JOB corrente
·
LABEL - Nome de uma seção
DO WHILE / END-DO
Esta
instrução executa um trecho do programa até que a condição seja satisfeita.
Formato:
DO WHILE
**** lógica ***
END-DO
SORT
Esta
instrução cria um arquivo organizado, a partir de um arquivo já existente, sem
precisar de um JOB INPUT.
Formato:
SORT file-name1 TO
file-name2 USING (field-name1 [D]
field-name2 [D] ...)
GET
Esta
instrução faz uma leitura seqüencial de um arquivo. Deve ser utilizado a
instrução JOB INPUT NULL.
Formato:
GET file-name
Obs.
Para se testar a chegada do final do arquivo, usa-se a instrução EOF
PUT
Esta
instrução faz a gravação de registros em um arquivo seqüencial.
Formato:
PUT file-name [FROM file-name]
MATCHED
Esta
instrução verifica se houve o sincronismo entre dois ou mais arquivos.
Formato:
IF [NOT]
MATCHED [file-name1 file-name2 file-name3 ...]
Ex:
JOB INPUT
(file-1 KEY (código)
file-2 KEY (codigo-w))
IF
MATCHED
*** lógica
***
END-IF
Muito bom. Parabéns e obrigado.
ResponderExcluir