** COND
** C O N D
* Um IF em forma de expressão
*
** X = COND dtype|#(... valores condicionados...).
DATA a type i.
data b type char10.
a = 2.
*if ( a MOD 2 = 0 ) .
* b = 'Par'.
*else.
* b = 'Impar'.
*endif.
b = COND #(
when a mod 2 = 0
then 'Par'
else 'Impar'
).
* Um IF em forma de expressão
*
** X = COND dtype|#(... valores condicionados...).
class lcl_01 definition.
PUBLIC SECTION.
CLASS-METHODS
desconto
IMPORTING
iv_price type f
iv_mode type char1
RETURNING VALUE(rv_result) type f.
ENDCLASS.
DATA v_cheio type f.
*data v_com_desc type f.
v_cheio = 150.
class lcl_01 implementation.
METHOD desconto
importing
iv_price type f
iv_mode type char1
returning
value(rv_result) type f.
ENDMETHOD.
ENDCLASS.
*if ( v_cheio > 100 ) .
* v_com_desc = desconto(.
* iv_price = v_cheio
* iv_mode = 'A'
* )
*else.
* v_com_desc = desconto(.
* iv_price = v_cheio
* iv_mode = 'B'
* )
*endif.
data(v_com_desc) = lcl_01=>desconto(
iv_price = v_cheio
iv_mode = COND #(
WHEN v_cheio > 100
THEN 'A' ELSE 'B'
)
).
*
* Usando o retorno do método
*** get_mode
*** RETURNING
*** VALUE(rv_mode) type char1.
data: v_cheio type f.
data: v_com_desc type f.
v_cheio = 150 .
v_com_desc =
COND #(
when get_mode() = 'A'
then v_cheio * '0.8'
else v_cheio * '0.9'
).
*
* Usando no preenchimento de um VALUE
TYPES: begin of y_entry,
valor type i,
tipo type char10,
end of y_entry.
data: v_valor1 type i.
v_valor1 = 3.
data(s_entry1) = VALUE y_entry(
valor = v_valor1
tipo = COND #(
when v_valor1 MOD 2 = 0
then 'Par'
else 'Impar'
)
).
write:/ '..Tipo ..', s_entry1-tipo.
** C O N D
* Um IF em forma de expressão
*
** X = COND dtype|#(... valores condicionados...).
DATA a type i.
data b type char10.
a = 2.
*if ( a MOD 2 = 0 ) .
* b = 'Par'.
*else.
* b = 'Impar'.
*endif.
b = COND #(
when a mod 2 = 0
then 'Par'
else 'Impar'
).
* Um IF em forma de expressão
*
** X = COND dtype|#(... valores condicionados...).
class lcl_01 definition.
PUBLIC SECTION.
CLASS-METHODS
desconto
IMPORTING
iv_price type f
iv_mode type char1
RETURNING VALUE(rv_result) type f.
ENDCLASS.
DATA v_cheio type f.
*data v_com_desc type f.
v_cheio = 150.
class lcl_01 implementation.
METHOD desconto
importing
iv_price type f
iv_mode type char1
returning
value(rv_result) type f.
ENDMETHOD.
ENDCLASS.
*if ( v_cheio > 100 ) .
* v_com_desc = desconto(.
* iv_price = v_cheio
* iv_mode = 'A'
* )
*else.
* v_com_desc = desconto(.
* iv_price = v_cheio
* iv_mode = 'B'
* )
*endif.
data(v_com_desc) = lcl_01=>desconto(
iv_price = v_cheio
iv_mode = COND #(
WHEN v_cheio > 100
THEN 'A' ELSE 'B'
)
).
*
* Usando o retorno do método
*** get_mode
*** RETURNING
*** VALUE(rv_mode) type char1.
data: v_cheio type f.
data: v_com_desc type f.
v_cheio = 150 .
v_com_desc =
COND #(
when get_mode() = 'A'
then v_cheio * '0.8'
else v_cheio * '0.9'
).
*
* Usando no preenchimento de um VALUE
TYPES: begin of y_entry,
valor type i,
tipo type char10,
end of y_entry.
data: v_valor1 type i.
v_valor1 = 3.
data(s_entry1) = VALUE y_entry(
valor = v_valor1
tipo = COND #(
when v_valor1 MOD 2 = 0
then 'Par'
else 'Impar'
)
).
write:/ '..Tipo ..', s_entry1-tipo.