Académique Documents
Professionnel Documents
Culture Documents
*-----------------------------------------------------------------------
* TIPOS STANDARD
*-----------------------------------------------------------------------
TYPE-POOLS:
vrm, "Necess�rio para uso de ALV
slis. "Tipos globais para ALV
************************************************************************
* Tabelas *
************************************************************************
TABLES: mbew, "Avalia��o do material
asmd. "Mestre de servi�o: dados b�sicos
************************************************************************
* Constantes *
************************************************************************
CONSTANTS: c_x TYPE c VALUE 'X', "X
c_pt(02) TYPE c VALUE 'PT', "PT
c_t01(03) TYPE c VALUE 'T01', "T01
c_bloq(4) TYPE c VALUE 'BLOQ', "BLOQ
***ALV
* c_r TYPE c VALUE 'R', "R
c_l TYPE c VALUE 'L', "L
c_a TYPE c VALUE 'A', "A
c_h TYPE c VALUE 'H', "H
c_mask_data(12) TYPE c VALUE '__/__/____', "__/__/____
c_mask_hora(10) TYPE c VALUE '__:__:__', "__:__:
c_t_fser(06) TYPE c VALUE 'T_FSER', "T_FSERV
c_t_fmat(06) TYPE c VALUE 'T_FMAT'. "T_FMAT
************************************************************************
* Tabelas internas *
************************************************************************
***Avalia��o do material
DATA: BEGIN OF t_mbew OCCURS 0,
matnr LIKE mbew-matnr, "N� do material
bwkey LIKE mbew-bwkey, "�rea de avalia��o
bwtar LIKE mbew-bwtar, "Tipo de avalia��o
bklas LIKE mbew-bklas, "Classe de avalia��o
END OF t_mbew.
***TABELAS EM COMUM
***TABELAS FINAIS
***ALV
***Interface do ALV
data: t_fcode TYPE slis_extab,
t_tab_fcode TYPE slis_t_extab.
************************************************************************
* Vari�veis *
************************************************************************
data:
w_repid like sy-repid, "Nome do Programa
w_listheader type slis_listheader. "Cabe�alho
************************************************************************
* Par�metros *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-002.
SELECTION-SCREEN SKIP.
SELECTION-SCREEN ULINE.
PARAMETERS:
p_matnr RADIOBUTTON GROUP a. "Relatorio de Materias
SELECT-OPTIONS:
s_matnr FOR mbew-matnr, "n� do material
s_bwkey FOR mbew-bwkey, "area de avalia��o
s_bklas FOR mbew-bklas. "classe de avalia��o
SELECTION-SCREEN SKIP.
SELECTION-SCREEN ULINE.
PARAMETERS:
p_asnum RADIOBUTTON GROUP a. "Relatorio de servi�os
SELECTION-SCREEN SKIP.
SELECT-OPTIONS:
s_asnum FOR asmd-asnum, "n� do servi�o
s_bkla FOR asmd-bklas. "classe de avalia��o
SELECTION-SCREEN SKIP.
SELECTION-SCREEN END OF BLOCK b1.
************************************************************************
* EVENTO: AT SELECTION SCREEN *
************************************************************************
AT SELECTION-SCREEN.
IF p_matnr = c_x.
IF s_matnr IS INITIAL.
MESSAGE e020 WITH text-005. "Favor preencher o n� do material
ENDIF.
ELSEIF s_asnum IS INITIAL.
MESSAGE e020 WITH text-006. "Favor preencher o C�digo do servi�o
ENDIF.
*-----------------------------------------------------------------------
* EVENTO: TOP-OF-PAGE
*-----------------------------------------------------------------------
TOP-OF-PAGE.
***********************************************************************
* Programa Principal *
************************************************************************
START-OF-SELECTION.
IF p_matnr IS INITIAL.
ELSE.
***Executa a sele��o para o relat�rio de materiais
PERFORM f_sel_material.
ENDIF.
*----------------------------------------------------------------------
* evento: end-of-selection
*----------------------------------------------------------------------
END-OF-SELECTION.
IF p_matnr IS INITIAL.
IF t_fser[] IS INITIAL.
STOP.
ENDIF.
ELSE.
IF t_fmat[] IS INITIAL.
STOP.
ENDIF.
ENDIF.
***cria a fieldcat
PERFORM f_cria_fieldcat.
FREE: t_mbew,
t_makt,
t_asmd,
t_asmdt,
t_t030,
t_skat,
t_fser,
t_fmat.
************************************************************************
* Sub-rotinas *
************************************************************************
*&---------------------------------------------------------------------*
*& Form f_limpar
*&---------------------------------------------------------------------*
* limpa as tabelas
*----------------------------------------------------------------------*
FORM f_limpar .
CLEAR: t_mbew,
t_makt,
t_asmd,
t_asmdt,
t_t030,
t_skat,
t_fser,
t_fmat.
REFRESH: t_mbew,
t_makt,
t_asmd,
t_asmdt,
t_t030,
t_skat,
t_fser,
t_fmat.
IF sy-subrc = 0.
IF sy-subrc = 0.
ENDIF.
ELSE.
ENDIF.
IF sy-subrc = 0.
IF sy-subrc = 0.
DELETE t_t030 WHERE konts < 40000000.
DELETE t_t030 WHERE konts > 49999999.
ENDIF.
ELSE.
ENDIF.
*&---------------------------------------------------------------------*
*& Form f_t_servico
*&---------------------------------------------------------------------*
* Monta a tabela de servi�o
*----------------------------------------------------------------------*
FORM f_t_servico .
LOOP AT t_asmd.
CLEAR: t_asmd,
t_asmdt,
t_fser.
CONTINUE.
ELSE.
t_fser-asktx = t_asmdt-asktx.
ENDIF.
ENDIF.
***busca o n� da conta do raz�o
READ TABLE t_t030 WITH KEY bklas = t_asmd-bklas.
IF sy-subrc = 0.
IF t_t030-bklas = t_asmd-bklas.
t_fser-konts = t_t030-konts.
IF sy-subrc = 0.
t_fser-txt50 = t_skat-txt50.
ENDIF.
ELSE.
EXIT.
ENDIF.
APPEND t_fser.
ENDLOOP.
ENDIF.
APPEND t_fser.
CLEAR t_fser.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form f_t_material
*&---------------------------------------------------------------------*
* Monta a tabela de material
*----------------------------------------------------------------------*
FORM f_t_material .
LOOP AT t_mbew.
t_fmat-matnr = t_mbew-matnr.
t_fmat-bwkey = t_mbew-bwkey.
t_fmat-bklas = t_mbew-bklas.
IF sy-subrc = 0.
t_fmat-maktx = t_makt-maktx.
ENDIF.
IF sy-subrc = 0.
IF t_t030-bklas = t_mbew-bklas.
t_fmat-konts = t_t030-konts.
IF sy-subrc = 0.
t_fmat-txt50 = t_skat-txt50.
ENDIF.
ELSE.
EXIT.
ENDIF.
APPEND t_fmat.
ENDLOOP.
ENDIF.
APPEND t_fmat.
CLEAR t_fmat.
ENDLOOP.
*&---------------------------------------------------------------------*
*& Form f_t_top_of_page
*&---------------------------------------------------------------------*
* cabe�alho ALV
*----------------------------------------------------------------------*
FORM f_t_top_of_page .
* varialve local.
*** Titulo
CLEAR w_listheader.
w_listheader-typ = c_h.
IF p_matnr IS INITIAL.
w_listheader-info = text-012.
ELSE.
w_listheader-info = text-013.
ENDIF.
APPEND w_listheader TO t_listheader.
CONCATENATE sy-datum+6(02)
sy-datum+4(02)
sy-datum(04)
INTO l_data.
w_repid = sy-repid.
CLEAR t_arq_fieldcat.
REFRESH t_arq_fieldcat.
LOOP AT t_arq_fieldcat.
CLEAR:
t_arq_fieldcat-key,
t_arq_fieldcat-seltext_s,
t_arq_fieldcat-seltext_m,
t_arq_fieldcat-seltext_l,
t_arq_fieldcat-ref_fieldname,
t_arq_fieldcat-ref_tabname.
CASE t_arq_fieldcat-fieldname.
WHEN 'ASNUM'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 1.
t_arq_fieldcat-reptext_ddic = text-014. "C�digo do Servi�o
t_arq_fieldcat-outputlen = 20. "tamanho
WHEN 'ASKTX'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 2.
t_arq_fieldcat-reptext_ddic = text-015.
"Texto Breve do Servi�o
t_arq_fieldcat-outputlen = 40. "tamanho
WHEN 'BKLAS'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 3.
t_arq_fieldcat-reptext_ddic = text-016. "Classe de Avalia��o
t_arq_fieldcat-outputlen = 19. "tamanho
WHEN 'KONTS'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 4.
t_arq_fieldcat-reptext_ddic = text-017. "Conta do Raz�o
t_arq_fieldcat-outputlen = 14. "tamanho
WHEN 'TXT50'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 4.
t_arq_fieldcat-reptext_ddic = text-018.
"Denomina��o da Conta Raz�o
t_arq_fieldcat-outputlen = 50. "tamanho
ENDCASE.
MODIFY t_arq_fieldcat.
ELSE.
CASE t_arq_fieldcat-fieldname.
WHEN 'MATNR'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 1.
t_arq_fieldcat-reptext_ddic = text-019. "C�digo do Material
t_arq_fieldcat-outputlen = 20. "tamanho
WHEN 'MAKTX'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 2.
t_arq_fieldcat-reptext_ddic = text-020.
"Texto Breve do Material
t_arq_fieldcat-outputlen = 40. "tamanho
WHEN 'BWKEY'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 3.
t_arq_fieldcat-reptext_ddic = text-021. "Centro
t_arq_fieldcat-outputlen = 6. "tamanho
WHEN 'BKLAS'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 4.
t_arq_fieldcat-reptext_ddic = text-016. "Classe de Avalia��o
t_arq_fieldcat-outputlen = 19. "tamanho
WHEN 'KONTS'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 5.
t_arq_fieldcat-reptext_ddic = text-017. "Conta do Raz�o
t_arq_fieldcat-outputlen = 14. "tamanho
WHEN 'TXT50'.
t_arq_fieldcat-just = c_l.
t_arq_fieldcat-col_pos = 6.
t_arq_fieldcat-reptext_ddic = text-018.
"Denomina��o da Conta Raz�o
t_arq_fieldcat-outputlen = 50. "tamanho
ENDCASE.
MODIFY t_arq_fieldcat.
ENDIF.
ENDLOOP.
REFRESH t_tab_fcode.
w_repid = sy-repid.
ELSE.
ENDIF.
************************************************************************
* Fim do Abap *