" 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.