Programa Teste
Programa Teste
*-----------------------------------------------------------------------
*** Tabelas
*---------------------------------------------------------------------
TABLES: mara, "Dados gerais de material
mseg. "Segmento de documento - material
*---------------------------------------------------------------------
*** Tipos
*---------------------------------------------------------------------
TYPES:
BEGIN OF type_mseg,
mblnr TYPE mblnr,
mjahr TYPE mjahr,
matnr TYPE matnr,
werks TYPE werks_d,
lgort TYPE lgort_d,
bwart TYPE bwart,
menge TYPE menge_d,
meins TYPE meins,
xauto TYPE mb_xauto,
END OF type_mseg.
*---------------------------------------------------------------------
*** Tabelas Internas
*---------------------------------------------------------------------
*Tabela interna de documentos de Materiais
DATA: t_mseg TYPE TABLE OF type_mseg.
*---------------------------------------------------------------------
*** Work Area
*---------------------------------------------------------------------
DATA: wa_mseg TYPE type_mseg.
*---------------------------------------------------------------------
*** Constantes
*---------------------------------------------------------------------
CONSTANTS: c_0100 LIKE mseg-werks VALUE '0100',
c_h10 LIKE mseg-werks VALUE 'H10',
c_x TYPE c VALUE 'X'.
*---------------------------------------------------------------------
*** Variaveis
*---------------------------------------------------------------------
DATA: v_lgort TYPE t001l-lgort,
v_werks TYPE t001w-werks. "#EC NEEDE
*---------------------------------------------------------------------
*** Parâmetros de Seleção
*---------------------------------------------------------------------
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.
SELECT-OPTIONS:
s_matnr FOR mara-matnr DEFAULT c_h10,
s_mblnr FOR mseg-mblnr,
s_werks FOR mseg-werks NO INTERVALS NO-EXTENSION OBLIGATORY DEFAULT c_0100,
s_lgort FOR mseg-lgort NO INTERVALS NO-EXTENSION.
*----------------------------------------------------------
*** Evento: AT SELECTION-SCREEN
*----------------------------------------------------------
*Tratamento para o centro
AT SELECTION-SCREEN ON s_werks.
IF sy-subrc NE 0.
MESSAGE e499 WITH text-002. "Centro não existe
ENDIF.
CLEAR v_werks.
ENDIF.
*Tratamento para Deposito
AT SELECTION-SCREEN ON s_lgort.
IF sy-subrc NE 0.
MESSAGE e001 WITH text-002. "Deposito não existe
ENDIF.
CLEAR v_lgort.
ENDIF.
********** FIM DO EVENTO AT SELECTION-SCREEN ************
*----------------------------------------------------------
*** Evento: START-OF-SELECTION
*----------------------------------------------------------
START-OF-SELECTION.
*** Limpa Variáveis e tabelas internas
PERFORM z_limpa_tabelas.
*** Seleciona dados das tabelas
PERFORM z_select_data.
*** Agrupa dados das tabelas
PERFORM z_agrupa_dados.
*** Imprime dados na tela
PERFORM z_exibe_tela.
*** Libera memória das tabelas internas
PERFORM z_free_memory.
********** FIM DO EVENTO START-OF-SELECTION ************
*----------------------------------------------------------
*** Evento: TOP-OF-PAGE
*----------------------------------------------------------
TOP-OF-PAGE.
* Cabeçalho principal do relatório
PERFORM z_top_of_page.
********** FIM DO EVENTO TOP-OF-PAGE ************
*&---------------------------------------------------------
*& Form z_limpa_tabelas
*&---------------------------------------------------------
* Limpa Variáveis e tabelas internas
*----------------------------------------------------------
FORM z_limpa_tabelas.
*** Limpa Tabelas internas
CLEAR: t_mseg.
ENDFORM. " z_limpa_tabelas
*&---------------------------------------------------------
*& Form z_select_data
*&---------------------------------------------------------
* Seleciona dados das tabelas
*----------------------------------------------------------
FORM z_select_data.
ENDIF
.
ENDFORM
.
" z_select_data
*&---------------------------------------------------------
*& Form z_agrupa_dados
*&--------------------------------------------------------- * Agrupa dados das
tabelas *----------------------------------------------------------
FORM z_agrupa_dados.
* ordenar a tabela interna
SORT t_mseg BY matnr werks lgort mblnr.
ENDFORM
.
" z_agrupa_dados
*&---------------------------------------------------------
*& Form z_exibe_tela
*&--------------------------------------------------------- * Imprime dados na tela
*----------------------------------------------------------
FORM z_exibe_tela.
110(0001) sy-vline.
ULINE.
FORMAT COLOR COL_KEY INTENSIFIED ON.
WRITE: (0001) sy-vline
NO-GAP,
(0108) text-h01 "Listagem de Documentos
CENTERED,
110(0001) sy-vline.
WRITE: (0001) sy-vline,
text-h02, "Data:
sy-datum,
110(0001) sy-vline,
(0001) sy-vline,
text-h03, "Hora:
sy-uzeit,
90 text-h04, "Página:
sy-pagno,
110(0001) sy-vline.
ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/(0001) sy-vline
NO-GAP,
(0018) text-c01 "Material
CENTERED,
(0001) sy-vline
NO-GAP,
(0006) text-c02 "Centro
CENTERED,
(0001) sy-vline
NO-GAP,
(0010) text-c03 "Deposito
CENTERED,
(0001) sy-vline
NO-GAP,
(0010) text-c04 "TP. Mov.
CENTERED,
(0001) sy-vline
NO-GAP,
(0010) text-c05 "Nro. Docto.
CENTERED,
(0001) sy-vline
NO-GAP,
(0004) text-c06 "Ano
CENTERED,
(0001) sy-vline
NO-GAP,
(0015) text-c07 "Quantidade
CENTERED,
(0001) sy-vline
NO-GAP,
(0010) text-c08 "Unidade
CENTERED,
110(0001) sy-vline.
WRITE: (0110) sy-uline.
FREE: t_mseg.
ENDFORM. " z_free_memory