Академический Документы
Профессиональный Документы
Культура Документы
zsr_test.
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
ty_mara,
ty_marc,
ty_mard,
ty_makt,
ty_out,
STANDARD
STANDARD
STANDARD
STANDARD
STANDARD
DATA: wa_fcat_out
it_fcat_out
wa_layout
wa_top
it_top
wa_event
it_event
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
TYPE
DATA: v_prog
v_name
v_date
v_time
sy-repid,
sy-uname,
sy-datum,
sy-uzeit.
TYPE
TYPE
TYPE
TYPE
TABLE
TABLE
TABLE
TABLE
TABLE
OF
OF
OF
OF
OF
ty_mara,
ty_marc,
ty_mard,
ty_makt,
ty_out.
slis_fieldcat_alv,
slis_t_fieldcat_alv,
slis_layout_alv,
slis_listheader,
slis_t_listheader,
slis_alv_event,
slis_t_event.
INITIALIZATION.
v_prog = sy-repid.
v_name = sy-uname.
v_date = sy-datum.
v_time = sy-uzeit.
SELECTION-SCREEN
PARAMETERS
SELECT-OPTIONS
SELECTION-SCREEN
START-OF-SELECTION.
PERFORM get_material.
PERFORM get_plant.
PERFORM get_storage.
PERFORM get_description.
PERFORM prepare_output.
END-OF-SELECTION.
PERFORM prepare_fieldcat.
PERFORM prepare_layout.
PERFORM declare_event.
PERFORM alv_list_display.
TOP-OF-PAGE.
PERFORM top_of_page.
*&---------------------------------------------------------------------*
*&
Form GET_MATERIAL
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_material .
SELECT matnr ersda ernam mtart
FROM mara INTO TABLE it_mara
WHERE matnr IN s_matnr
AND mtart = p_mtart.
IF sy-subrc = 0.
SORT it_mara BY matnr.
ELSE.
MESSAGE 'Material doesn''t exist' TYPE 'I'.
ENDIF.
ENDFORM.
" GET_MATERIAL
*&---------------------------------------------------------------------*
*&
Form GET_PLANT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_plant .
IF it_mara IS NOT INITIAL.
SELECT matnr werks xchar
FROM marc INTO TABLE it_marc
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr.
IF sy-subrc = 0.
SORT it_marc BY matnr.
ENDIF.
ENDIF.
ENDFORM.
" GET_PLANT
*&---------------------------------------------------------------------*
*&
Form GET_STORAGE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_storage .
IF it_marc IS NOT INITIAL.
SELECT matnr werks lgort
FROM mard INTO TABLE it_mard
FOR ALL ENTRIES IN it_marc
WHERE matnr = it_marc-matnr
AND werks = it_marc-werks.
IF sy-subrc = 0.
SORT it_mard BY matnr.
ENDIF.
ENDIF.
ENDFORM.
" GET_STORAGE
*&---------------------------------------------------------------------*
*&
Form GET_DESCRIPTION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_description .
IF it_mara IS NOT INITIAL.
SELECT matnr spras maktx
FROM makt INTO TABLE it_makt
FOR ALL ENTRIES IN it_mara
WHERE matnr = it_mara-matnr
AND spras = sy-langu.
IF sy-subrc = 0.
SORT it_makt BY matnr.
ENDIF.
ENDIF.
ENDFORM.
" GET_DESCRIPTION
*&---------------------------------------------------------------------*
*&
Form PREPARE_OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM prepare_output .
IF
it_mara IS NOT INITIAL
AND it_marc IS NOT INITIAL
AND it_mard IS NOT INITIAL.
LOOP AT it_mara INTO wa_mara.
wa_out-matnr = wa_mara-matnr.
wa_out-ersda = wa_mara-ersda.
wa_out-ernam = wa_mara-ernam.
wa_out-mtart = wa_mara-mtart.
READ TABLE it_makt INTO wa_makt
WITH KEY matnr = wa_mara-matnr BINARY SEARCH.
IF sy-subrc = 0.
wa_out-maktx = wa_makt-maktx.
ENDIF.
LOOP AT it_marc INTO wa_marc
WHERE matnr = wa_mara-matnr.
wa_out-werks = wa_marc-werks.
wa_out-xchar = wa_marc-xchar.
LOOP AT it_mard INTO wa_mard
WHERE matnr = wa_marc-matnr
AND werks = wa_marc-werks.
wa_out-lgort = wa_mard-lgort.
APPEND wa_out TO it_out.
CLEAR: wa_out, wa_mara, wa_makt.
CLEAR wa_mard.
ENDLOOP.
CLEAR wa_marc.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDFORM.
" PREPARE_OUTPUT
*&---------------------------------------------------------------------*
*&
Form PREPARE_FIELDCAT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM prepare_fieldcat .
CLEAR wa_fcat_out.
REFRESH it_fcat_out.
IF it_out IS NOT INITIAL.
DATA: lv_col TYPE i VALUE 0.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
APPEND wa_fcat_out TO
CLEAR wa_fcat_out.
= 1 + lv_col.
= lv_col.
= 'MATNR'.
= 'IT_OUT'.
= 'Material No.'.
it_fcat_out.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
APPEND wa_fcat_out TO
CLEAR wa_fcat_out.
= 1 + lv_col.
= lv_col.
= 'WERKS'.
= 'IT_OUT'.
= 'Plant'.
it_fcat_out.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
APPEND wa_fcat_out TO
CLEAR wa_fcat_out.
= 1 + lv_col.
= lv_col.
= 'LGORT'.
= 'IT_OUT'.
= 'Storage Location'.
it_fcat_out.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
APPEND wa_fcat_out TO
CLEAR wa_fcat_out.
= 1 + lv_col.
= lv_col.
= 'MTART'.
= 'IT_OUT'.
= 'Material Type'.
it_fcat_out.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
APPEND wa_fcat_out TO
CLEAR wa_fcat_out.
= 1 + lv_col.
= lv_col.
= 'ERSDA'.
= 'IT_OUT'.
= 'Date'.
it_fcat_out.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
APPEND wa_fcat_out TO
CLEAR wa_fcat_out.
= 1 + lv_col.
= lv_col.
= 'ERNAM'.
= 'IT_OUT'.
= 'Name'.
it_fcat_out.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
APPEND wa_fcat_out TO
CLEAR wa_fcat_out.
= 1 + lv_col.
= lv_col.
= 'XCHAR'.
= 'IT_OUT'.
= 'Batch No.'.
it_fcat_out.
lv_col
wa_fcat_out-col_pos
wa_fcat_out-fieldname
wa_fcat_out-tabname
wa_fcat_out-seltext_l
APPEND wa_fcat_out TO
CLEAR wa_fcat_out.
ENDIF.
= 1 + lv_col.
= lv_col.
= 'MAKTX'.
= 'IT_OUT'.
= 'Material Description'.
it_fcat_out.
ENDFORM.
" PREPARE_FIELDCAT
*&---------------------------------------------------------------------*
*&
Form DECLARE_EVENT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM declare_event .
CLEAR wa_event.
REFRESH it_event.
*
*
ENDFORM.
" DECLARE_EVENT
*&---------------------------------------------------------------------*
*&
Form ALV_LIST_DISPLAY
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM alv_list_display .
IF
it_out IS NOT INITIAL
AND it_fcat_out IS NOT INITIAL
AND it_event IS NOT INITIAL.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
ENDFORM.
" ALV_LIST_DISPLAY
*&---------------------------------------------------------------------*
*&
Form TOP_OF_PAGE
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM top_of_page .
WRITE: /
/
/
/
/
SKIP.
ENDFORM.
" TOP_OF_PAGE
*&---------------------------------------------------------------------*
*&
Form PREPARE_LAYOUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM prepare_layout .
wa_layout-zebra = 'X'.
wa_layout-colwidth_optimize = 'X'.
wa_layout-box_fieldname = 'SEL'.
ENDFORM.
" PREPARE_LAYOUT
Selection Screen:
Output Screen:
Another Selection:
Output: