" As vezes precisamos trabalhar com valores que recebemos, principalmente
" para usar em Selects, funções e etc, mas temos que adaptar o valor no
" imput para não ter problema, abaixo segue um programa que mostra como
" os comandos LEFT DELETING LEADING' e 'RIGHT DELETING TRAILING' trabalham.
" Debuggem e vejam o que acontece, mas vou dar uma resumo abaixo.
" 'LEFT DELETING LEADING' - Deleta o valor informado da Esquerda pra direita,
" quando chegar um valor diferente ele pára e fica com os dados alinhados a
" esquerda.
" 'RIGHT DELETING TRAILING' - Deleta o valor informado da direita pra
" esquerda, quando chegar um valor diferente ele pára e fica com os dados
" alinhados a direita.
REPORT zmj_ldl_rdt.
" Variáveis.
DATA : varia1 TYPE string VALUE '000011110000111',
varia2 TYPE string VALUE '010101010101010',
varia3 TYPE string VALUE '000000000000001',
varia4 TYPE string VALUE '100000000000000',
varia5 TYPE string VALUE '111111111011111'
.
" Tela de seleção.
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS :
" Elemento de texto = 'LEFT DELETING LEADING'
rb_left RADIOBUTTON GROUP rb_1 DEFAULT 'X',
" Elemento de texto = 'RIGHT DELETING TRAILING'
vb_right RADIOBUTTON GROUP rb_1
.
SELECTION-SCREEN END OF BLOCK b1.
*&---------------------------------------------------------------------*
" Inicio do processo.
START-OF-SELECTION.
IF rb_left = 'X'.
PERFORM zf_left.
else.
PERFORM zf_right.
ENDIF.
*&---------------------------------------------------------------------*
*& Form ZF_LEFT
*&---------------------------------------------------------------------*
form ZF_LEFT .
" Se não lembra como funciona os performs com 'USING' acesse aqui...
" http://abapjuniores.blogspot.com/2011/04/performs.html
PERFORM zf_LDL USING : varia1 ,
varia2 ,
varia3 ,
varia4 ,
varia5 .
PERFORM zf_show_all.
endform. " ZF_LEFT
*&---------------------------------------------------------------------*
*& Form ZF_RIGHT
*&---------------------------------------------------------------------*
form ZF_RIGHT .
" Se não lembra como funciona os performs acesse aqui...
" http://abapjuniores.blogspot.com/2011/04/performs.html
PERFORM zf_RDT USING : varia1 ,
varia2 ,
varia3 ,
varia4 ,
varia5 .
PERFORM zf_show_all.
endform. " ZF_RIGHT
*&---------------------------------------------------------------------*
*& Form ZF_LDL
*&---------------------------------------------------------------------*
form ZF_LDL using variavel.
SHIFT variavel LEFT DELETING LEADING '0'.
endform. " ZF_LDL
*&---------------------------------------------------------------------*
*& Form ZF_RDT
*&---------------------------------------------------------------------*
form ZF_RDT using variavel.
SHIFT variavel RIGHT DELETING TRAILING '0'.
endform. " ZF_RDT
*&---------------------------------------------------------------------*
*& Form ZF_SHOW_ALL
*&---------------------------------------------------------------------*
form ZF_SHOW_ALL .
WRITE : varia1, /
varia2, /
varia3, /
varia4, /
varia5, / .
endform. " ZF_SHOW_ALL