Criando um Programa Calculadora – Versão Report

Problema

Criar um programa ABAP que receba dois valores digitados pelo usuário e execute as quatro operações (adição, subtração, divisão e multiplicação) entre os dois valores.

Solução

Passo 1: Criar um programa executável chamado ZRCALC.

Passo 2: Definir os dois parâmetros nos quais o usuário irá utilizar para digitar os valores para o cálculo e também outro para indicar a operação desejada.

calc01a.png

Passo 3: Definir uma variável local do tipo package, com duas casas decimais, para atribuir o valor calculado.

calc01b.png

Passo 4: Definir uma estrutura CASE para escolher a operação escolhida pelo usuário.

calc02a.png

Passo 5: Imprima o valor na saída do relatório.

calc02b.png

Passo 6 (opcional): Inclua uma verificação se a operação escolhida é válida e se escolhido a divisão, verificar se o valor 2 é diferente de zero.

calc03a.png

A listagem completa do programa, você encontra na seção Anexos.

Execução e Teste

Execute o programa (F8) e entre os seguintes na tela de seleção:

calc04a.png

Execute o relátorio (F8) e você deverá obter uma saída parecida com a descrita abaixo:

calc05.png

Não esqueça de testar também o caso de uma operação inválida e um caso de divisão por zero.

Discussão

Nesse simples programa já vemos uma séria de elementos comuns em programa ABAP.

A primeira tela do programa é chamada de Tela de Seleção (Selection Screen), onde o usuário entra com os parâmetros que serão utilizados no relatório.

Um dos comandos usados para desenhar a tela de seleção é a instrução PARAMETERS. Usamos a forma mais simples, ainda há muitas outras possibilidades, que discutiremos mais a frente.

Declaramos variáveis com o comando DATA, indicando o nome da variável e o tipo. No nosso programa, usamos somente tipos primitivos, mas as possibilidades são ilimitadas, já que o ABAP Objects é fortemente tipado.

Os tipos padrão usados no ABAP Object são:

Tipos completos, sem necessidade de complemento:

  • D – Data, no formato AAAAMMDD, com tamanho fixo de 8;
  • T – Tempo, no formato HHMMSS, com tamanho fixo de 8;
  • I – Inteiro, tamanho fixo de 4;
  • F – Número de ponto flutuante, tamanho fixo de 8;
  • STRING – Cadeia de caracteres, sem tamanho fixo;
  • XSTRING – Cadeia de caracteres (Hexadecimal), sem tamanho fixo;

Tipos incompletos:

  • C – Caracter string, podendo ter um complemento, por exemplo a intrução “DATA vl_var(4) TYPE C.“;
  • N – Caracter numérico, com características de caracter e número;
  • X – Seqüência de bytes (Hexadecimal);
  • P – Package.

Para imprimir o valor na tela, usamos a instrução WRITE.

Usamos duas estruturas de decisão, a IF/ELSEIF/ELSE/ENDIF para verificar a operação escolhia e se há divisão por zero e CASE para escolher a operação.

Essa verificação de divisão por zero é necessária para evitar um possível erro em tempo de execução no caso de uma divisão por zero. Poderíamos também usar Exceptions, mas discutiremos no futuro.

No caso de uma operação inválida, também poderíamos usar a seguinte construção no lugar o IF:

CASE p_op.

WHEN OTHERS.
WRITE: ‘No valid operation'(iop).
ENDCASE.

A opção OTHERS significa que se nenhuma das alternativas do WHEN foi satisfeita, o opção OTHERS é executada. Então, se a operação escolhida não foi válida, o WHEN OTHERS é executado e a mensagem de erro é impressa na saída do programa.

A segunda tela, é onde é apresentado a saída do programa, comandos WRITE.

Anexos

Programa ZPCALC

Veja Também

Criando o Programa ABAP Hello World

6 Resultados

  1. Luciano disse:

    Olá, estou iniciando meus estudos ABAP. Não entedi o que são (iop), (zer) e (res) que aparecem depois dos literais.

    • furlan disse:

      Isso são text symbols, servem para que não usemos literais no programa, permitindo assim que o programa possa “falar” vários idiomas.

  2. Luciano disse:

    Entendi. Porque com eles dá pra traduzir depois. Obrigado pelo esclarecimento. Na academia a gente acaba vendo tanto conteúdo e as vezes não tem muito tempo de estudar fora que fica confuso, rs. Valeu.

  1. setembro 25, 2007

    […] dos tipos fundamentais da linguagem ABAP (veja mais na discussão desse post), podemos criar qualquer tipo de estrutura de dados, como por exemplo, workareas (área de […]

  2. Abril 14, 2008

    […] Programa com Tela de seleção, processamento e apresentação de relatório, você encontra no exemplo de calculadora em ABAP. […]

  3. outubro 29, 2008

    […] um screencast sobre programação acaba de sair. É criação do programa de Calculadora que publiquei aqui há um tempo, agora com […]