*&---------------------------------------------------------------------*
*& Report ZRA_TEST_040 *
*& *
*&---------------------------------------------------------------------*
*& *
*& *
*&---------------------------------------------------------------------*
REPORT zra_test_040 .
TABLES : mara.
TYPE-POOLS : slis.
TYPES : BEGIN OF t_mara,
matnr TYPE matnr,
ernam TYPE ernam,
pstat TYPE pstat_d,
END OF t_mara,
BEGIN OF t_makt,
matnr TYPE matnr,
maktx TYPE maktx,
END OF t_makt.
DATA : it_mara TYPE STANDARD TABLE OF t_mara,
wa_mara TYPE t_mara,
it_makt TYPE STANDARD TABLE OF t_makt,
wa_makt TYPE t_makt,
lv_matnr type matnr.
DATA : i_fldcat TYPE slis_t_fieldcat_alv,
w_fldcat TYPE slis_fieldcat_alv,
w_layout TYPE slis_layout_alv,
i_fldcat1 TYPE slis_t_fieldcat_alv,
w_fldcat1 TYPE slis_fieldcat_alv,
w_layout1 TYPE slis_layout_alv.
SELECT-OPTIONS : s_matnr FOR mara-matnr.
START-OF-SELECTION.
PERFORM get_mara.
END-OF-SELECTION.
PERFORM create_fieldcatalog.
PERFORM create_layout.
PERFORM create_display.
*&---------------------------------------------------------------------*
*& Form GET_MARA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_mara .
SELECT matnr
ernam
pstat
FROM mara INTO TABLE it_mara
WHERE matnr IN s_matnr.
IF sy-subrc NE 0.
MESSAGE ' PLS START INPUT FROM 38 ' TYPE 'I'.
LEAVE LIST-PROCESSING.
ENDIF.
sort it_mara by matnr.
ENDFORM. " GET_MARA
*&---------------------------------------------------------------------*
*& Form GET_MAKT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_makt .
IF it_mara IS NOT INITIAL.
SORT it_mara BY matnr.
SELECT matnr
maktx
FROM makt INTO TABLE it_makt
WHERE matnr = lv_matnr.
ENDIF.
ENDFORM. " GET_MAKT
*&---------------------------------------------------------------------*
*& Form CREATE_FIELDCATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_fieldcatalog .
DATA: c_pos TYPE i VALUE 1,
r_pos TYPE i VALUE 1.
w_fldcat-col_pos = c_pos.
w_fldcat-row_pos = r_pos.
w_fldcat-fieldname = 'MATNR'.
w_fldcat-seltext_l = 'MATERIAL NO.'.
w_fldcat-tabname = 'IT_MARA'.
APPEND w_fldcat TO i_fldcat.
CLEAR w_fldcat.
c_pos = c_pos + 1.
w_fldcat-col_pos = c_pos.
w_fldcat-row_pos = r_pos.
w_fldcat-fieldname = 'ERNAM'.
w_fldcat-seltext_l = 'CREATED BY'.
w_fldcat-tabname = 'IT_MARA'.
APPEND w_fldcat TO i_fldcat.
CLEAR w_fldcat.
c_pos = c_pos + 1.
w_fldcat-col_pos = c_pos.
w_fldcat-row_pos = r_pos.
w_fldcat-fieldname = 'PSTAT'.
w_fldcat-seltext_l = 'MATERIAL STATUS'.
w_fldcat-tabname = 'IT_MARA'.
APPEND w_fldcat TO i_fldcat.
CLEAR w_fldcat.
ENDFORM. " CREATE_FIELDCATALOG
*&---------------------------------------------------------------------*
*& Form CREATE_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_layout .
w_layout-colwidth_optimize = 'X'.
w_layout-zebra = 'X'.
ENDFORM. " CREATE_LAYOUT
*&---------------------------------------------------------------------*
*& Form CREATE_DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM create_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
IS_LAYOUT = W_LAYOUT
IT_FIELDCAT = I_FLDCAT
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* I_HTML_HEIGHT_TOP =
* I_HTML_HEIGHT_END =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = IT_MARA
* 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. " CREATE_DISPLAY
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
set pf-status 'KOLKATA'.
ENDFORM. "set_pf_status
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE R_UCOMM.
WHEN '&IC1'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = rs_selfield-value
IMPORTING
OUTPUT = lv_matnr
.
.
.
PERFORM get_makt.
PERFORM create_fieldcatalog1.
PERFORM create_layout1.
PERFORM create_display1.
WHEN 'EXIT'.
MESSAGE 'TATA BYE BYE' TYPE 'I'.
LEAVE PROGRAM.
WHEN OTHERS.
ENDCASE.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form create_fieldcatalog1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form create_fieldcatalog1 .
DATA: c_pos1 TYPE i VALUE 1,
r_pos1 TYPE i VALUE 1.
w_fldcat1-col_pos = c_pos1.
w_fldcat1-row_pos = r_pos1.
w_fldcat1-fieldname = 'MATNR'.
w_fldcat1-seltext_l = 'MATERIAL NO.'.
w_fldcat1-tabname = 'IT_MAKT'.
APPEND w_fldcat1 TO i_fldcat1.
CLEAR w_fldcat1.
c_pos1 = c_pos1 + 1.
w_fldcat1-col_pos = c_pos1.
w_fldcat1-row_pos = r_pos1.
w_fldcat1-fieldname = 'MAKTX'.
w_fldcat1-seltext_l = 'MATERIAL DESC'.
w_fldcat1-tabname = 'IT_MAKT'.
APPEND w_fldcat1 TO i_fldcat1.
CLEAR w_fldcat1.
endform. " create_fieldcatalog1
*&---------------------------------------------------------------------*
*& Form create_layout1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form create_layout1 .
w_layout1-colwidth_optimize = 'X'.
w_layout1-zebra = 'X'.
endform. " create_layout1
*&---------------------------------------------------------------------*
*& Form create_display1
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
form create_display1 .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS1'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND1'
IS_LAYOUT = W_LAYOUT1
IT_FIELDCAT = I_FLDCAT1
TABLES
t_outtab = IT_MAKT
* 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. " create_display1
FORM set_pf_status1 USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'BACK'.
ENDFORM. "set_pf_status
FORM user_command1 USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
CASE SY-UCOMM.
WHEN 'BACK'.
MESSAGE 'WANT TO GO BACK' TYPE 'I'.
LEAVE TO SCREEN 0.
WHEN OTHERS.
ENDCASE.
ENDFORM.
No comments:
Post a Comment