*&---------------------------------------------------------------------*
*& Report YSTEST_ALV *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT ystest_alv .
TABLES: mara.
*----------------------------------------------------------------------*
* TYPE-POOLS
*----------------------------------------------------------------------*
TYPE-POOLS: slis.
*----------------------------------------------------------------------*
* TYPES DECLARATION
*----------------------------------------------------------------------*
TYPES : BEGIN OF ty_mara,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
END OF ty_mara .
TYPES: BEGIN OF gy_final,
matnr TYPE mara-matnr,
ersda TYPE mara-ersda,
ernam TYPE mara-ernam,
laeda TYPE mara-ernam,
aenam TYPE mara-ernam,
vpsta TYPE mara-ernam,
pstat TYPE mara-ernam,
lvorm TYPE mara-ernam,
mtart TYPE mara-ernam,
END OF gy_final.
DATA: gt_mara TYPE STANDARD TABLE OF ty_mara,
gw_mara TYPE ty_mara,
gt_final TYPE TABLE OF gy_final,
gw_final TYPE gy_final.
*--------------------------------------------------------------------*
* SLIS Variables
*--------------------------------------------------------------------*
DATA: gw_event TYPE slis_alv_event, " ALV EVENT
gw_layout TYPE slis_layout_alv,
gt_fieldcat TYPE slis_t_fieldcat_alv,
gt_event TYPE slis_t_event, " ALV EVENT
gt_heading TYPE slis_t_listheader, " ALV HEADING
gw_grid_settings TYPE lvc_s_glay,
gw_variant TYPE disvariant,
gw_fieldcat TYPE slis_fieldcat_alv.
DATA : gv_date(60) TYPE c .
*----------------------------------------------------------------------*
* CONSTANTS
*----------------------------------------------------------------------*
CONSTANTS : gc_s TYPE c VALUE 'S',
gc_x TYPE char1 VALUE 'X',
gc_top TYPE slis_formname VALUE 'TOP_OF_PAGE',
gc_a TYPE char1 VALUE 'A'.
*----------------------------------------------------------------------*
* SELECT-OPTIONS
*----------------------------------------------------------------------*
SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: p_matnr TYPE mara-matnr.
SELECTION-SCREEN: END OF BLOCK b1.
*--------------------------------------------------------------------*
* START-OF-SELECTION
*--------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM sub_populate_mara.
PERFORM sub_populate_final.
* Prepare fieldcatalog
PERFORM sub_fieldcat.
* Build Event
PERFORM populate_event.
* FOR ALV HEADER
PERFORM build_comment USING gt_heading[].
* output display
PERFORM sub_output_display.
*&---------------------------------------------------------------------*
*& Form SUB_POPULATE_MARA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sub_populate_mara .
SELECT matnr
ersda
ernam
FROM mara INTO TABLE gt_mara
WHERE matnr EQ p_matnr.
ENDFORM. " SUB_POPULATE_MARA
*&---------------------------------------------------------------------*
*& Form SUB_POPULATE_FINAL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sub_populate_final .
LOOP AT gt_mara INTO gw_mara.
gw_final-matnr = gw_mara-matnr.
gw_final-ersda = gw_mara-ersda.
gw_final-ernam = gw_mara-ernam.
APPEND gw_final TO gt_final.
CLEAR: gw_final.
ENDLOOP.
ENDFORM. " SUB_POPULATE_FINAL
*&---------------------------------------------------------------------*
*& Form SUB_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sub_fieldcat .
gw_fieldcat-fieldname = 'MATNR'.
gw_fieldcat-seltext_l = 'Material Number'(004).
gw_fieldcat-col_pos = 0.
APPEND gw_fieldcat TO gt_fieldcat.
CLEAR : gw_fieldcat.
gw_fieldcat-fieldname = 'ERSDA'.
gw_fieldcat-seltext_l = 'Creation Date'(005).
gw_fieldcat-col_pos = 1.
APPEND gw_fieldcat TO gt_fieldcat.
CLEAR : gw_fieldcat.
gw_fieldcat-fieldname = 'ERNAM'.
gw_fieldcat-seltext_l = 'Created By'(005).
gw_fieldcat-col_pos = 1.
APPEND gw_fieldcat TO gt_fieldcat.
CLEAR : gw_fieldcat.
ENDFORM. " SUB_FIELDCAT
*&---------------------------------------------------------------------*
*& Form POPULATE_EVENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM populate_event .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = gt_event
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
SORT gt_event BY name.
READ TABLE gt_event WITH KEY name = slis_ev_top_of_page INTO gw_event
BINARY SEARCH.
IF sy-subrc = 0.
MOVE gc_top TO gw_event-form.
MODIFY gt_event FROM gw_event INDEX sy-tabix TRANSPORTING form.
ENDIF.
ENDIF.
ENDFORM. " POPULATE_EVENT
*&---------------------------------------------------------------------*
*& Form BUILD_COMMENT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->P_GT_HEADING[] text
*----------------------------------------------------------------------*
FORM build_comment USING p_heading TYPE slis_t_listheader.
DATA: l_hline TYPE slis_listheader,
lv_title(50),
lv_progname(20),
lv_datum(11),
lv_time(10),
lv_username(30),
lv_pagno(2),
lv_pagno1(2),
lv_client(10),
l_f_info(132),
lv_host(10).
lv_title = sy-title.
lv_progname = sy-cprog.
lv_datum = sy-datum.
lv_time = sy-uzeit.
lv_username = sy-uname.
* lv_pagno = sy-pagno.
lv_pagno = sy-pagno + 1.
lv_pagno1 = sy-pagno + 1.
lv_client = sy-mandt.
lv_host = sy-sysid.
l_hline-typ = gc_s.
l_hline-key = 'REPORT TITLE:'.
l_hline-info = lv_title.
APPEND l_hline TO p_heading.
CLEAR l_hline.
l_hline-typ = gc_s.
l_hline-key = 'PROGRAM NAME:'.
l_hline-info = lv_progname.
APPEND l_hline TO p_heading.
CLEAR l_hline.
PERFORM get_gdp_date.
CONCATENATE sy-timlo+0(2) ':' sy-timlo+2(2) ':' sy-timlo+4(2)
INTO lv_time.
l_hline-typ = gc_s.
l_hline-key = 'DATE:'.
l_hline-info = gv_date.
APPEND l_hline TO p_heading.
CLEAR l_hline.
l_hline-typ = gc_s.
l_hline-key = 'TIME:'.
l_hline-info = lv_time.
APPEND l_hline TO p_heading.
CLEAR l_hline.
CONCATENATE lv_pagno '/' lv_pagno1 INTO l_f_info
*
SEPARATED BY ' '.
l_hline-typ = gc_s.
l_hline-key = 'PAGNO:'.
l_hline-info = l_f_info.
APPEND l_hline TO p_heading.
CLEAR l_hline.
l_hline-typ = gc_s.
l_hline-key = 'USERID:'.
l_hline-info = lv_username.
APPEND l_hline TO p_heading.
CLEAR l_hline.
l_hline-typ = gc_s.
l_hline-key = 'CLIENT:'.
l_hline-info = lv_client.
APPEND l_hline TO p_heading.
CLEAR l_hline.
l_hline-typ = gc_s.
l_hline-key = 'SAP SYSTEM:'.
l_hline-info = lv_host.
APPEND l_hline TO p_heading.
CLEAR l_hline.
ENDFORM. " BUILD_COMMENT
***---------------------------------------------------------------------*
*** FORM TOP_OF_PAGE *
**----------------------------------------------------------------------*
*Display top of page details which we defined in the report
*---------------------------------------------------------------------*
FORM top_of_page. "#EC CALLED
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_heading[].
ENDFORM. " BUILD_COMMENT
*&---------------------------------------------------------------------*
*& Form GET_GDP_DATE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_gdp_date .
DATA : lt_month_names TYPE TABLE OF t247 ,
ls_month_names TYPE t247 .
gv_date = sy-datlo .
CALL FUNCTION 'MONTH_NAMES_GET'
EXPORTING
language = sy-langu
TABLES
month_names = lt_month_names.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
READ TABLE lt_month_names INTO ls_month_names
WITH KEY mnr = sy-datlo+4(2).
IF sy-subrc EQ 0 .
CLEAR gv_date.
CONCATENATE sy-datlo+6(2) ls_month_names-ktx
sy-datlo+0(4) INTO gv_date.
ENDIF.
ENDIF.
ENDFORM. " GET_GDP_DATE
*&---------------------------------------------------------------------*
*& Form SUB_OUTPUT_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM sub_output_display .
gw_layout-colwidth_optimize = 'X'.
gw_grid_settings-no_colwopt = 'X'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_grid_settings = gw_grid_settings
is_layout = gw_layout
it_fieldcat = gt_fieldcat[]
i_default = gc_x
i_save = gc_a
is_variant = gw_variant
it_events = gt_event[]
TABLES
t_outtab = gt_final[]
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " SUB_OUTPUT_DISPLAY
No comments:
Post a Comment