terça-feira, 12 de abril de 2011

Perform's

  "  Este tipo de código e muito usado em Batch Imput, Alimentando fieldcat,
" e muitas outras coisas, O perform e usado pra organizar e pra trabalhar
" com rotinas.
"  Testem aih pessoal, daki por diante soh estarei mandando os posts
" prontos pra testar eh soh copiar e colar aih assim vcs podem debuggar
" e ver como funciona pro sistema e tambem caso vc tenham que usa o codigo
" pra algum trampo rsrs.

*&---------------------------------------------------------------------*
*& Report  ZMJ_PROG_FORMS.
*&
*&---------------------------------------------------------------------*

REPORT  zmj_prog_forms.

" Tipos ......
types begin of ty_mara,
          matnr type mara-matnr,
          ernam type mara-ernam,
          pstat type mara-pstat,
        end of ty_mara
         .

" Estruturas ......
DATA : st_itteste  type ty_mara
        .

" Tabelas Internas .....
DATA : it_itteste  type table of ty_mara
        .

" Variaveis .....
DATA : vg_repid TYPE sy-repid
       .

" inicialization
vg_repid = sy-repid
.

" Inicio do processo ....
PERFORM : z_alimenta,
          z_alimenta2
                .

*&---------------------------------------------------------------------*
*&      Form  Z_ALIMENTA
*&---------------------------------------------------------------------*
"  Aqui é imput de dados na tabela interna da forma mais simples possivel,
" onde eh usado um form normal.

form Z_ALIMENTA .

  clear : it_itteste. " limpa a tabela para receber os dados

  st_itteste-matnr = '88988298839'" Dados do primeiro registro
  st_itteste-ernam = 'EU MESMO'.
  st_itteste-pstat = 'REGISTRO 1'.
  APPEND st_itteste TO it_itteste.  " Coloca o registro na tabela

  st_itteste-matnr = '90889878787'" Dados do segundo registro
  st_itteste-ernam = 'EU MESMO2'.
  st_itteste-pstat = 'REGISTRO 2'.
  APPEND st_itteste TO it_itteste.  " Coloca o registro na tabela

endform.                    " Z_ALIMENTA

*&---------------------------------------------------------------------*
*&      Form  Z_ALIMENTA2
*&---------------------------------------------------------------------*

FORM z_alimenta2.

  clear : it_itteste. " limpa a tabela para receber os dados

"  O 'Perform declarado aki estah informando que estará usando os dados
" abaixo, eh muito importante a sequencia de dados pois eh pela sequencia
" que o 'Form se relaciona com os dados do 'Perform

  PERFORM z_alimenta_itteste USING :
        '88988298839' 'EU MESMO'  'REGISTRO 1',  " Dados do registro 1
        '90889878787' 'EU MESMO2' 'REGISTRO 2'  " Dados do registro 2
          .

ENDFORM.                    " Z_ALIMENTA2

*&---------------------------------------------------------------------*
*&      Form  Z_ALIMENTA_ITTESTE
*&---------------------------------------------------------------------*
"  O 'Form foi declado onde o primeiro dado do registro que tah no
" 'Perform eh a variavel p_matnr que tem o tipo mara-matnr essa variável
" poderia ter qualquer nome e qualquer tipo

FORM z_alimenta_itteste  USING  p_matnr TYPE mara-matnr
                                p_ernam TYPE mara-ernam
                                p_pstat type mara-pstat.

  st_itteste-matnr = p_matnr. " Relaciona a variavel com o campo da estr.
  st_itteste-ernam = p_ernam.
  st_itteste-pstat = p_pstat.

 APPEND st_itteste TO it_itteste.  " Coloca o registro na tabela
ENDFORM.                    " Z_ALIMENTA_ITTESTE.
Comentários
0 Comentários

Nenhum comentário:

Postar um comentário