quarta-feira, 21 de dezembro de 2011

'LEFT DELETING LEADING' e/ou 'RIGHT DELETING TRAILING'

  " 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
Comentários
0 Comentários

Nenhum comentário:

Postar um comentário