* SWITCH
* S W I T C H
*
* 'CASE' em forma de expressão
X = SWITCH dtype|#(Y WHEN A then A WHEN B then B ELSE C).
X = SWITCH dtype|#(Y
WHEN A then A
WHEN B then B
ELSE C
).
data: a type char1 VALUE '5'.
data: b type char10.
b = SWITCH #(
a
WHEN 1 THEN 'Hum'
WHEN 2 THEN 'Dois'
ELSE 'Outro numero'
).
write:/ '..A..', a.
write:/ '..B..', b.
*
* Uso em uma entrada de método
*
**METHOD desconto
** importing
** iv_price type f
** iv_mode type char1
** returning
** value(rv_result) type f.
**ENDMETHOD.
data: v_cheio type f .
data: v_com_desc type f .
data: v_promocao type char1 .
v_com_desc = desconto(
iv_price = v_cheio
iv_mode = SWITCH #(
v_promocao
WHEN 'X' THEN 'A'
WHEN ' ' THEN 'B'
)
).
*
* Usando com um retorno de 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 =
SWITCH #(
get_mode()
when '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,
descr type char10,
end of y_entry.
data: v_vlr type i.
data: v_vlr2 type i.
v_vlr = 5.
data(s_entry1) = VALUE y_entry(
valor = v_vlr
descr = SWITCH #(
v_vlr
when 1 THEN 'Hum'
when 2 THEN 'Dois'
ELSE 'Sei lá...'
)
).
write:/ '..Descrição ..', s_entry1-descr.
* S W I T C H
*
* 'CASE' em forma de expressão
X = SWITCH dtype|#(Y WHEN A then A WHEN B then B ELSE C).
X = SWITCH dtype|#(Y
WHEN A then A
WHEN B then B
ELSE C
).
data: a type char1 VALUE '5'.
data: b type char10.
b = SWITCH #(
a
WHEN 1 THEN 'Hum'
WHEN 2 THEN 'Dois'
ELSE 'Outro numero'
).
write:/ '..A..', a.
write:/ '..B..', b.
*
* Uso em uma entrada de método
*
**METHOD desconto
** importing
** iv_price type f
** iv_mode type char1
** returning
** value(rv_result) type f.
**ENDMETHOD.
data: v_cheio type f .
data: v_com_desc type f .
data: v_promocao type char1 .
v_com_desc = desconto(
iv_price = v_cheio
iv_mode = SWITCH #(
v_promocao
WHEN 'X' THEN 'A'
WHEN ' ' THEN 'B'
)
).
*
* Usando com um retorno de 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 =
SWITCH #(
get_mode()
when '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,
descr type char10,
end of y_entry.
data: v_vlr type i.
data: v_vlr2 type i.
v_vlr = 5.
data(s_entry1) = VALUE y_entry(
valor = v_vlr
descr = SWITCH #(
v_vlr
when 1 THEN 'Hum'
when 2 THEN 'Dois'
ELSE 'Sei lá...'
)
).
write:/ '..Descrição ..', s_entry1-descr.