0% found this document useful (0 votes)
21 views

Programa Teste

Uploaded by

mssv_silvia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Programa Teste

Uploaded by

mssv_silvia
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

*&---------------------------------------------------------------------*

*& Report ZTESTENAD2


*&
*&---------------------------------------------------------------------*
*&
*&

REPORT zexercicio NO STANDARD PAGE HEADING


LINE-SIZE 110
LINE-COUNT 65
MESSAGE-ID sy.

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

SELECTION-SCREEN END OF BLOCK b1.

*----------------------------------------------------------
*** Evento: AT SELECTION-SCREEN
*----------------------------------------------------------
*Tratamento para o centro
AT SELECTION-SCREEN ON s_werks.

IF NOT s_werks-low IS INITIAL.

SELECT SINGLE werks


FROM t001w
INTO v_werks
WHERE werks EQ s_werks-low .

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 NOT s_lgort-low IS INITIAL.

SELECT SINGLE lgort


FROM t001l
INTO v_lgort
WHERE werks EQ s_werks-low AND
lgort EQ s_lgort-low.

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.

* Seleciona campos da tabela MSEG


SELECT mblnr
mjahr
matnr
werks
lgort
bwart
menge
meins
xauto
FROM mseg
INTO TABLE t_mseg
WHERE matnr IN s_matnr AND
werks IN s_werks AND
lgort IN s_lgort AND
mblnr IN s_mblnr.

IF NOT sy-subrc IS INITIAL.

MESSAGE i499 WITH text-001. "Deposito não existe


LEAVE LIST-PROCESSING.

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.

* excluir os itens gerados automaticamente


DELETE t_mseg WHERE xauto EQ c_x.

* verifica se a tabela está vazia


IF t_mseg[] IS INITIAL.
MESSAGE i000.
LEAVE LIST-PROCESSING.

" Dados nao encontrados


ENDIF.

ENDFORM
.
" z_agrupa_dados
*&---------------------------------------------------------
*& Form z_exibe_tela
*&--------------------------------------------------------- * Imprime dados na tela
*----------------------------------------------------------
FORM z_exibe_tela.

LOOP AT t_mseg INTO wa_mseg.


WRITE:/(0001) sy-vline NO-GAP,
(0018) wa_mseg-matnr "Nº do material
CENTERED,

(0001) sy-vline NO-GAP,


(0006) wa_mseg-werks "Centro
CENTERED,

(0001) sy-vline NO-GAP,


(0010) wa_mseg-lgort "Depósito
CENTERED,

(0001) sy-vline NO-GAP,


(0010) wa_mseg-bwart "Tipo de movimento
CENTERED,

(0001) sy-vline NO-GAP,


(0010) wa_mseg-mblnr "Nº documento de material
CENTERED,

(0001) sy-vline NO-GAP,


(0004) wa_mseg-mjahr "Ano do documento do material
CENTERED,

(0001) sy-vline NO-GAP,


(0015) wa_mseg-menge "Quantidade
UNIT wa_mseg-meins
CENTERED,

(0001) sy-vline NO-GAP,


(0010) wa_mseg-meins "Unidade de medida básica
CENTERED,

110(0001) sy-vline.

WRITE: (0110) sy-uline.


ENDLOOP.
ENDFORM. " z_exibe_tela
*&---------------------------------------------------------
*& Form z_top_of_page
*&---------------------------------------------------------
* Cabeçalho principal do relatório
*----------------------------------------------------------
FORM z_top_of_page.

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.

ENDFORM. " z_top_f_page


*&---------------------------------------------------------
*& Form z_free_memory
*&---------------------------------------------------------
* Libera memória das tabelas internas
*----------------------------------------------------------
FORM z_free_memory.
*** Tabela interna

FREE: t_mseg.
ENDFORM. " z_free_memory

You might also like