quarta-feira, 6 de junho de 2012

Easytrieve - Guia Rápido


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
          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



Um comentário: