Mostrando postagens com marcador Include's Ativos. Mostrar todas as postagens
Mostrando postagens com marcador Include's Ativos. Mostrar todas as postagens

quinta-feira, 14 de julho de 2011

Include - Z_INCL_FEED_DEFAULT

  " Include - Z_INCL_FEED_DEFAULT.

*&---------------------------------------------------------------------*
*&      Form  Z_SELECAO
*&---------------------------------------------------------------------*
form Z_SELECAO .

  PERFORM z_select_mara.
" Confere se retornou dados no select
  IF sy-subrc = 0.
    PERFORM z_select_makt.
    PERFORM z_select_mard.
  ELSE.
    MESSAGE 'Não foi encontrados registro(s) com os dados informados ' TYPE 'I'.
  ENDIF.
  PERFORM z_feed_table.

endform.                    " Z_SELECAO

*&---------------------------------------------------------------------*
*&      Form  Z_SELECT_MARA
*&---------------------------------------------------------------------*
FORM z_select_mara .

  SELECT matnr
         ersda
         ernam
    FROM mara
    INTO TABLE it_mara
    UP TO 100 ROWS
    WHERE matnr IN so_matnr
    .

ENDFORM.                    " Z_SELECT_MARA
*&---------------------------------------------------------------------*
*&      Form  Z_SELECT_MAKT
*&---------------------------------------------------------------------*
FORM z_select_makt .

  SELECT  matnr
          spras
          maktx
    FROM makt
    INTO TABLE it_makt
    FOR ALL ENTRIES IN it_mara
    WHERE matnr = it_mara-matnr
    AND   spras = p_spras
    .

ENDFORM.                    " Z_SELECT_MAKT

*&---------------------------------------------------------------------*
*&      Form  Z_SELECT_MARD
*&---------------------------------------------------------------------*
FORM z_select_mard .

  SELECT  matnr
          werks
          lgort
          pstat
    FROM mard
    INTO TABLE it_mard
    FOR ALL ENTRIES IN it_mara
    WHERE matnr = it_mara-matnr
    AND   werks = p_werks
    AND   lgort = p_lgort
    .

ENDFORM.                    " Z_SELECT_MARD

*&---------------------------------------------------------------------*
*&      Form  Z_feed_table
*&---------------------------------------------------------------------*
FORM z_feed_table .

  LOOP AT it_mara INTO st_mara.
    READ TABLE it_makt INTO st_makt WITH KEY matnr = st_mara-matnr.
    READ TABLE it_mard INTO st_mard WITH KEY matnr = st_mara-matnr
                                             werks = p_werks
                                             lgort = p_lgort .
    st_outtab-check = space.
    st_outtab-matnr = st_mara-matnr.
    st_outtab-ersda = st_mara-ersda.
    st_outtab-maktx = st_makt-maktx.
    st_outtab-werks = st_mard-werks.
    st_outtab-lgort = st_mard-lgort.
    st_outtab-pstat = st_mard-pstat.

    APPEND st_outtab TO it_outtab.

    CLEAR : st_outtab.
  ENDLOOP.
ENDFORM.                    " Z_feed_table

Include - Z_INCL_DECLARA_DEFAULT

  *&---------------------------------------------------------------------*
"  Aee gente, hoje eu acordei com mou preguiça de fika fazendo as mesmas
" declarações e selects portanto estarei mostrando como faz um include,
" éééé... vcs vão ver como eh facil.
"  O objetivo das includes e elas virarem objetos para uso de varios
" programas ao mesmo tempo, portanto depois de criados (caso esteja sendo
" usados pro programas que vc não tem o controle ) tentem não mexer neles
" o maximo possivel.
"  Pra faze eh muito facil, soh escrever 'INCLUDE' e escrever o nome da
" da mesma, ai é soh clicar duas vezes e pronto.

" A include criada abaixo será uma declaração de tipos, estruturas e
" tabelas internas padrão pra que eu não precisemos declarar isso toda hora.

" Include -- Z_INCL_DECLARA_DEFAULT "

" Tabelas transparentes ....
TABLES : mara
  .
" Tipos .....
TYPES :
" Tabela de clientes ..
  BEGIN OF ty_mara,
    matnr TYPE mara-matnr,
    ersda TYPE mara-ersda,
    ernam TYPE mara-ernam,
  END OF   ty_mara,

  BEGIN OF ty_makt,
    matnr TYPE makt-matnr,
    spras TYPE makt-spras,
    maktx TYPE makt-maktx,
  END OF   ty_makt,

  BEGIN OF ty_mard,
    matnr TYPE mard-matnr,
    werks TYPE mard-werks,
    lgort TYPE mard-lgort,
    pstat TYPE mard-pstat,
  END OF   ty_mard,

  BEGIN OF ty_outtab,
    check TYPE c,
    matnr TYPE mara-matnr,
    ersda TYPE mara-matnr,
    maktx TYPE makt-maktx,
    werks TYPE mard-werks,
    lgort TYPE mard-lgort,
    pstat TYPE mard-pstat,
  END OF ty_outtab
       .

" Estruturas ....
DATA : st_mara    TYPE ty_mara,
       st_makt    TYPE ty_makt,
       st_mard    TYPE ty_mard,
       st_outtab  TYPE ty_outtab,
       st_outtab2 TYPE ty_outtab
      .

" Tabelas internas ....
DATA : it_mara    TYPE TABLE OF ty_mara,
       it_makt    TYPE TABLE OF ty_makt,
       it_mard    TYPE TABLE OF ty_mard,
       it_outtab  TYPE TABLE OF ty_outtab,
       it_outtab2 TYPE TABLE OF ty_outtab
      .

" Tela de seleção .....
SELECTION-SCREEN BEGIN OF BLOCK b1.
SELECT-OPTIONS : so_matnr FOR  mara-matnr.
PARAMETERS :     p_spras  TYPE makt-spras,
                 p_werks  TYPE mard-werks,
                 p_lgort  TYPE mard-lgort
            .
SELECTION-SCREEN END OF BLOCK b1.