SAP – NMIN e NMAX – Numerical Extremum Functions – Abap

Publicado: 14 de julho de 2014 em Abap

Você pode utilizar as funções NMIN e NMAX para retornar os valores mínimos e máximos entre pelo menos dois parâmetros. Estas funções fazem o mesmo trabalho da clausula IF efetuando comparações utilizando os sinais de maior (>) ou menor (<), porem possuem uma sintaxe muito menos complexa se utilizados muitos parâmetros.

Fora de uma expressão aritmética, um tipo de cálculo é determinado a partir de todos os argumentos, e é utilizado para realizar a comparação. O tipo de cálculo é determinado apenas como uma expressão aritmética e também determina o tipo do valor de retorno de dados.

Em uma expressão aritmética, os argumentos da função contribuem para o tipo de cálculo de toda a expressão e a função é calculada usando o tipo do cálculo. Se um argumento em si é uma expressão aritmética, os operandos contribuem para todo o tipo de cálculo e o argumento também é calculado usando esse mesmo tipo.

 

Funções - Extremum

Funções – Extremum

Exemplo:

Neste exemplo criamos uma tela de seleção com três parâmetros e as funções Extremum verificam e exibem uma mensagem retornando o maior e o menor parâmetro dentro das possibilidades alimentadas pelo usuário.

Abap

*&---------------------------------------------------------------------*
*& Report  ZMAXMIN
*&
*&---------------------------------------------------------------------*
*& Desenvolvimento Aberto
*& Numerical Extremum Functions
*&---------------------------------------------------------------------*

REPORT  ZMAXMIN.

* Cria parametros de seleção
SELECTION-SCREEN COMMENT /1(10) text-par.
PARAMETERS: valor1 TYPE i DEFAULT 0,
            valor2 TYPE i DEFAULT 0,
            valor3 TYPE i DEFAULT 0.

* Declara variáveis
DATA:   minimo    TYPE decfloat34,
        maximo    TYPE decfloat34,
        val1      TYPE decfloat34,
        val2      TYPE decfloat34,
        val3      TYPE decfloat34,
        txt       TYPE string.

* Inicio da seleção
START-OF-SELECTION.

* Verifica os valores minimos e máximos
minimo =  nmin( val1 = valor1 val2 = valor2 val3 = valor3 ).
maximo =  nmax( val1 = valor1 val2 = valor2 val3 = valor3 ).

* Cria texto da menssagem
 txt = |{ txt } o valor minimo é: { minimo } e o valor máximo é: { maximo } |.

* Exibe menssagem de informação
 MESSAGE txt TYPE 'I'.

* Exibe menssagem de erro (valida campos)
AT SELECTION-SCREEN.
  IF valor1 = 0 or valor2 = 0 or valor3 = 0.
    MESSAGE 'Você deve entrar com um valor diferente de zero' TYPE 'E'.
  ENDIF.
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s