You are on page 1of 15

*&---------------------------------------------------------------------* *& Report ZI_CS_STOCK_OVERVIEW *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zi_cs_stock_overview.

*Table Declarations TABLES: mara, mard,marc. *Internal Table Declarations DATA: gt_mara TYPE TABLE OF mara, gt_makt TYPE TABLE OF makt, gt_mard TYPE TABLE OF mard, gt_marc TYPE TABLE OF marc, gt_resb TYPE TABLE OF resb, gt_aufk TYPE TABLE OF aufk, gt_afvc TYPE TABLE OF afvc, gt_return TYPE TABLE OF bapiret2, gt_wmdvsx TYPE TABLE OF bapiwmdvs, gt_wmdvex TYPE TABLE OF bapiwmdve, gt_stsma TYPE TABLE OF jstat, gt_tj02t TYPE TABLE OF tj02t, "#EC NEEDED gt_operations TYPE TABLE OF bapi_alm_order_operation_e, gt_main TYPE TABLE OF zis_cs_stock_overview_materil, gt_sub_main TYPE TABLE OF zis_cs_order_overview_materil, gt_index_rows TYPE lvc_t_row. *Structure Declarations. DATA: gs_mara TYPE gs_mard TYPE gs_marc TYPE gs_resb TYPE gs_makt TYPE gs_afvc TYPE gs_aufk TYPE gs_index_rows LIKE gs_operations TYPE gs_header TYPE gs_servdata TYPE gs_sub_main TYPE gs_main TYPE gs_av_qty_plt TYPE gs_return TYPE *Variable Declarations DATA : gf_zres TYPE gf_zres1 TYPE gf_no_rows TYPE gf_stsma TYPE

mara, mard, marc, resb, makt, afvc, aufk, LINE OF gt_index_rows, bapi_alm_order_operation_e, bapi_alm_order_header_e, bapi_alm_order_srvdat_e, zis_cs_order_overview_materil, zis_cs_stock_overview_materil, bapicm61v-wkbst, bapireturn.

"#EC NEEDED

"#EC NEEDED "#EC NEEDED "#EC NEEDED "#EC NEEDED

i VALUE 0, i, i, j_istat. and ALV TYPE REF TYPE REF TYPE REF TYPE REF TO TO TO TO cl_gui_custom_container, cl_gui_custom_container, cl_gui_alv_grid, cl_gui_alv_grid,

*Data declaration for container DATA:gref_custom_container_main gref_custom_container_sub gref_alv_grid_main gref_alv_grid_sub

gs_layo gt_fcat gs_fcat gt_fcat_sub gs_fcat_sub

TYPE TYPE TYPE TYPE TYPE

lvc_s_layo, "For layout lvc_t_fcat, "for fieldcatalog lvc_s_fcat, "for fieldcatalog lvc_t_fcat, "for fieldcatalog lvc_s_fcat. "for fieldcatalog

*----------------------------------------------------------------------* * CLASS event_class DEFINITION *----------------------------------------------------------------------* * *----------------------------------------------------------------------* CLASS lcl_event_class DEFINITION. *Handling double click PUBLIC SECTION. METHODS: handle_double_click FOR EVENT double_click OF cl_gui_alv_grid IMPORTING handle_toolbar FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING handle_user_command FOR EVENT user_command OF IMPORTING e_ucomm, handle_toolbar1 FOR EVENT toolbar OF cl_gui_alv_grid IMPORTING handle_user_command1 FOR EVENT user_command OF IMPORTING e_ucomm. ENDCLASS. "lcl_event_class DEFINITION

e_row e_column, e_object , cl_gui_alv_grid

e_object , cl_gui_alv_grid

DATA: gref_event_receiver TYPE REF TO lcl_event_class. *---------------------------------------------------------------------* * CLASS event_class IMPLEMENTATION *---------------------------------------------------------------------* * *---------------------------------------------------------------------* CLASS lcl_event_class IMPLEMENTATION. METHOD handle_double_click. *Read the selected data into a variable READ TABLE gt_main INDEX e_row-index INTO gs_main. CASE e_column. *write the logic to go to transaction WHEN 'MATNR'. IF gs_main-matnr IS NOT INITIAL. SET PARAMETER ID 'MAT' FIELD gs_main-matnr. CALL TRANSACTION 'MM03' AND SKIP FIRST SCREEN. "#EC CI_CALLTA ENDIF. ENDCASE. READ TABLE gt_sub_main INDEX e_row-index INTO gs_sub_main. CASE e_column. WHEN 'AUFNR'.

IF gs_sub_main-aufnr IS NOT INITIAL. SET PARAMETER ID 'ANR' FIELD gs_sub_main-aufnr. CALL TRANSACTION 'IW33' AND SKIP FIRST SCREEN. "#EC CI_CALLTA ENDIF. WHEN 'RSNUM'. IF gs_sub_main-rsnum IS NOT INITIAL. SET PARAMETER ID 'RES' FIELD gs_sub_main-rsnum. CALL TRANSACTION 'MB23' AND SKIP FIRST SCREEN. "#EC CI_CALLTA ENDIF. ENDCASE. ENDMETHOD. "handle_double_click METHOD handle_toolbar. DATA: ls_toolbar TYPE stb_button. CLEAR ls_toolbar. MOVE 3 TO ls_toolbar-butn_type. APPEND ls_toolbar TO e_object->mt_toolbar. CLEAR ls_toolbar. MOVE 'REFRESH' TO ls_toolbar-function. MOVE icon_refresh TO ls_toolbar-icon. APPEND ls_toolbar TO e_object->mt_toolbar. CLEAR ls_toolbar. MOVE 3 TO ls_toolbar-butn_type. APPEND ls_toolbar TO e_object->mt_toolbar. CLEAR ls_toolbar. MOVE 'DISPLAY' TO ls_toolbar-function. MOVE 'Display Reservations'(001) TO ls_toolbar-text. APPEND ls_toolbar TO e_object->mt_toolbar. CLEAR ls_toolbar. MOVE 'MATERIAL' TO ls_toolbar-function. MOVE 'Material Available'(038) TO ls_toolbar-text. APPEND ls_toolbar TO e_object->mt_toolbar. ENDMETHOD. "handle_toolbar METHOD handle_toolbar1. DATA: ls_sub_toolbar TYPE stb_button. CLEAR ls_sub_toolbar. MOVE 3 TO ls_sub_toolbar-butn_type. APPEND ls_sub_toolbar TO e_object->mt_toolbar. ENDMETHOD. "handle_toolbar METHOD handle_user_command. CASE e_ucomm. WHEN 'DISPLAY'. PERFORM selection_sub_service. WHEN 'MATERIAL'. CLEAR:gt_index_rows. REFRESH :gt_sub_main. CALL METHOD gref_alv_grid_main->get_selected_rows IMPORTING et_index_rows = gt_index_rows. DESCRIBE TABLE gt_index_rows LINES gf_no_rows.

IF gf_no_rows EQ 0. MESSAGE i002(sy) WITH text-019. EXIT. ELSE. SET PARAMETER ID 'MAT' FIELD gs_main-matnr. SET PARAMETER ID 'WRK' FIELD gs_main-werks. CALL TRANSACTION 'MMBE'. "#EC CI_CALLTA ENDIF. WHEN 'REFRESH'. CLEAR:gs_mara,gs_marc,gs_mard,gt_makt,gs_main. REFRESH:gt_mard,gt_marc,gt_makt,gt_mara,gt_main,gt_sub_main. PERFORM selection. CALL METHOD gref_alv_grid_main->refresh_table_display. ENDCASE. ENDMETHOD. "handle_user_command

METHOD handle_user_command1. CASE e_ucomm. WHEN 'REFRESH'. CLEAR :gs_resb,gs_sub_main,gs_operations. REFRESH:gt_resb,gt_sub_main,gt_makt,gt_mara. PERFORM selection_sub_service. CALL METHOD gref_alv_grid_sub->refresh_table_display. ENDCASE. ENDMETHOD. "handle_user_command ENDCLASS. "event_class DEFINITION

*Selection screen SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME. SELECT-OPTIONS: so_matnr FOR mard-matnr, so_mtart FOR mara-mtart, so_werks FOR marc-werks, so_lgort FOR mard-lgort. SELECTION-SCREEN END OF BLOCK b1. START-OF-SELECTION. PERFORM selection. IF gt_main IS NOT INITIAL. CALL SCREEN 7000. ENDIF. *&---------------------------------------------------------------------* *& Form SELECTION *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM selection . *Fetch Material no plant storage location data from MARD table according to sele ction criteria SELECT matnr werks lgort labst insme retme umlme speme klabs FROM mard INTO CORRESPONDING FIELDS OF TABLE gt_mard WHERE matnr IN so_matnr

AND and

werks IN so_werks lgort in so_lgort.

IF gt_mard IS NOT INITIAL. *Fetch stock tranfer data from table MARC SELECT umlmc trame FROM marc INTO CORRESPONDING FIELDS OF TABLE gt_marc FOR ALL ENTRIES IN gt_mard WHERE matnr EQ gt_mard-matnr AND werks EQ gt_mard-werks. *Fetch order data from table RESB SELECT matnr werks lgort vornr aufnr rsnum bdmng meins vmeng objnr aufnr FROM resb INTO CORRESPONDING FIELDS OF TABLE gt_resb FOR ALL ENTRIES IN gt_mard WHERE matnr EQ gt_mard-matnr AND werks EQ gt_mard-werks. SELECT aufnr auart FROM aufk INTO CORRESPONDING FIELDS OF TABLE gt_aufk FOR ALL ENTRIES IN gt_resb WHERE aufnr = gt_resb-aufnr . ELSE. MESSAGE i002(sy) WITH text-039. ENDIF. **Fetch Material text data from table MAKT SELECT matnr maktx FROM makt INTO CORRESPONDING FIELDS OF TABLE gt_makt WHERE matnr IN so_matnr AND spras = sy-langu. *Fetch Order Status data from table Tj02t SELECT istat spras FROM tj02t INTO CORRESPONDING FIELDS OF TABLE gt_tj02t WHERE spras = sy-langu. "#EC CI_SGLSELEC T *Fetch Material Type data from table MARA SELECT matnr mtart meins FROM mara INTO CORRESPONDING FIELDS OF TABLE gt_mara WHERE matnr IN so_matnr. SORT: gt_mard BY matnr, "Sorting by key is very important gt_resb BY matnr. "Same key which is used for where LOOP AT gt_mard gs_main-matnr gs_main-werks gs_main-lgort gs_main-labst gs_main-klabs gs_main-insme gs_main-umlme gs_main-speme gs_main-retme INTO gs_mard. = gs_mard-matnr. = gs_mard-werks. = gs_mard-lgort. = gs_mard-labst. = gs_mard-klabs. = gs_mard-insme. = gs_mard-umlme. = gs_mard-speme. = gs_mard-retme.

READ TABLE gt_marc INTO gs_marc WITH KEY matnr = gs_mard-matnr werks = gs_mard-werks. IF sy-subrc = 0. gs_main-umlmc = gs_marc-umlmc. gs_main-trame = gs_marc-trame.

ENDIF. READ TABLE gt_makt INTO gs_makt WITH KEY matnr = gs_mard-matnr. IF sy-subrc = 0. gs_main-maktx = gs_makt-maktx. ENDIF. READ TABLE gt_mara INTO gs_mara WITH KEY matnr = gs_mard-matnr. IF sy-subrc = 0. gs_main-mtart = gs_mara-mtart. gs_main-meins = gs_mara-meins. ENDIF. *Call BAPI to get Remaining Material details CALL FUNCTION 'BAPI_MATERIAL_AVAILABILITY' EXPORTING plant = gs_mard-werks material = gs_mard-matnr unit = gs_mara-meins IMPORTING av_qty_plt = gs_av_qty_plt return = gs_return TABLES wmdvsx = gt_wmdvsx wmdvex = gt_wmdvex. gs_main-zrequan = gs_av_qty_plt. READ TABLE gt_resb INTO gs_resb WITH KEY matnr = gs_mard-matnr BINARY SEARCH. IF sy-subrc = 0. "Does not enter the inner loop LOOP AT gt_resb INTO gs_resb FROM sy-tabix. "Avoiding Where clause IF gs_mard-matnr <> gs_resb-matnr. "This checks whether to exit out "of loop. EXIT. ENDIF. READ TABLE gt_aufk INTO gs_aufk WITH KEY aufnr = gs_resb-aufnr. *Call BAPI to get Suborder Status details CALL FUNCTION 'STATUS_READ' EXPORTING objnr = gs_resb-objnr only_active = 'X' TABLES status = gt_stsma. READ TABLE gt_stsma INTO gf_stsma INDEX 1. IF ( sy-subrc = 0 AND gf_stsma NE 'I0045' AND gs_aufk-auart = 'ZAE1'). gf_zres = ( gs_resb-bdmng + gs_resb-vmeng ). gf_zres1 = gf_zres + gf_zres1. CLEAR:gs_resb,gf_zres. ENDIF. ENDLOOP. "mard Loop ENDIF. gs_main-zres = gf_zres1. gs_main-zavmat = gs_main-zrequan - gs_main-zres. APPEND gs_main TO gt_main. CLEAR gf_zres1. ENDLOOP. " if for gt_mard

ENDFORM. " SELECTION *&---------------------------------------------------------------------* *& Module STATUS_7000 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_7000 OUTPUT. SET PF-STATUS 'MENU'. SET TITLEBAR 'TITLE'. IF gref_custom_container_main IS INITIAL. *Create custom container for main order CREATE OBJECT gref_custom_container_main EXPORTING container_name = 'CONTAINER'. *Create ALV grid CREATE OBJECT gref_alv_grid_main EXPORTING i_parent = gref_custom_container_main. *Creating fieldcatalog PERFORM build_fieldcatalog. *Creating Layout PERFORM build_layout_main. *Call method for display ALV CALL METHOD gref_alv_grid_main->set_table_for_first_display EXPORTING i_structure_name = 'ZIC_CS_STOCK_OVERVIEW_MATERIAL' is_layout = gs_layo CHANGING it_outtab = gt_main it_fieldcatalog = gt_fcat. ENDIF. "for custom container CREATE OBJECT gref_event_receiver. SET HANDLER gref_event_receiver->handle_double_click FOR gref_alv_grid_main. *Set event handler for pushbutton SET HANDLER gref_event_receiver->handle_toolbar FOR gref_alv_grid_main. *Set event handler for user command SET HANDLER gref_event_receiver->handle_user_command FOR gref_alv_grid_main. * Method to raise event toolbar. CALL METHOD gref_alv_grid_main->set_toolbar_interactive. ENDMODULE. " STATUS_7000 OUTPUT

*&---------------------------------------------------------------------* *& Module USER_COMMAND_7000 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE user_command_7000 INPUT. CASE sy-ucomm. WHEN 'BACK'. LEAVE TO SCREEN 0 . WHEN 'EXIT'. LEAVE PROGRAM. WHEN 'CANCEL'. LEAVE PROGRAM. ENDCASE.

ENDMODULE.

" USER_COMMAND_7000 INPUT

*&---------------------------------------------------------------------* *& Form build_layout_main *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* FORM build_layout_main . gs_layo-grid_title = 'Stock Over View'(008). gs_layo-zebra = 'X'. "Alternating line color (striped) gs_layo-cwidth_opt = 'X'. "Optimize column width gs_layo-sel_mode = 'A'. ENDFORM. "build_layout_main *&---------------------------------------------------------------------* *& Form BUILD_FIELDCATALOG *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_fieldcatalog . REFRESH gt_fcat. CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO

= '1'. = 1. = 'MATNR'. 'Material No'(010). gt_fcat. = '1'. = 2. = 'MTART'. 'Material Type'(011). gt_fcat. = '1'. = 5. = 'MAKTX'. 'Material Dec'(013). gt_fcat. = '1'. = 3. = 'WERKS'. 'Plant'(014). gt_fcat. = '1'. = 4. = 'LGORT'. 'Storage location'(012). gt_fcat.

CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos

= '1'. = 6. = 'LABST'. 'Unrestified Stock'(015). gt_fcat. = '1'. = 7. = 'EINME'. 'Restricted Stock'(034). gt_fcat. = '1'. = 8. = 'SPEME'. 'Blocked Stock'(035). gt_fcat. = '1'. = 9. = 'INSME'. 'In. Quality'(036). gt_fcat. = '1'. = 10. = 'RETME'. 'Returns'(025). gt_fcat. = '1'. = 14. = 'UMLME'. 'Stock in Transfer'(026). gt_fcat. = '1'. = 12. = 'TRAME'. 'Stock in Transit'(027). gt_fcat. = '1'. = 13. = 'UMLMC'. 'Stock in Transfer (plant to plant)'(028). gt_fcat. = '1'. = 16.

gs_fcat-fieldname = 'ZREQUAN'. gs_fcat-coltext = 'Remaining Material'(002). APPEND gs_fcat TO gt_fcat. CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO CLEAR gs_fcat. gs_fcat-row_pos gs_fcat-col_pos gs_fcat-fieldname gs_fcat-coltext = APPEND gs_fcat TO

= '1'. = 17. = 'ZRES'. 'Reservations'(003). gt_fcat. = '1'. = 18. = 'ZAVMAT'. 'Availiable Material'(029). gt_fcat. = '1'. = 15. = 'MEINS'. 'Unit Measure'(022). gt_fcat.

= '1'. = 11. = 'KLABS'. 'Unrest-UseConsignment Stock'(037). gt_fcat.

ENDFORM. " BUILD_FIELDCATALOG *&---------------------------------------------------------------------* *& Form SELECTION_SUB *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM selection_sub_service . CLEAR:gt_index_rows. REFRESH :gt_sub_main. CALL METHOD gref_alv_grid_main->get_selected_rows IMPORTING et_index_rows = gt_index_rows. DESCRIBE TABLE gt_index_rows LINES gf_no_rows. IF gf_no_rows EQ 0. MESSAGE i002(sy) WITH text-019. EXIT. ELSE. *Fetch Material No, Plant,Storage Location,Order No,Reservation,Req.quqntity,Qua .fixed, "Qua.withdrawan,committed quantity,Unit measure, Costing relevancy form tabl e RESB SELECT matnr werks lgort vornr aufnr rsnum bdmng meins vmeng enmng bwart san ka objnr

FROM resb INTO CORRESPONDING FIELDS OF TABLE gt_resb FOR ALL ENTRIES IN gt_main WHERE matnr EQ gt_main-matnr AND werks EQ gt_main-werks. *Fetch OPERATION Type to get suborders only from table AUFK SELECT aufnr auart FROM aufk INTO CORRESPONDING FIELDS OF TABLE gt_aufk FOR ALL ENTRIES IN gt_resb WHERE aufnr = gt_resb-auf nr. LOOP AT gt_index_rows INTO gs_index_rows. READ TABLE gt_main INTO gs_main INDEX gs_index_rows-index. IF sy-subrc = 0. LOOP AT gt_resb INTO gs_resb. gs_sub_main-matnr = gs_resb-matnr. gs_sub_main-werks = gs_resb-werks. gs_sub_main-aufnr = gs_resb-aufnr. gs_sub_main-vornr = gs_resb-vornr. gs_sub_main-rsnum = gs_resb-rsnum. gs_sub_main-bdmng = gs_resb-bdmng. gs_sub_main-vmeng = gs_resb-vmeng. gs_sub_main-enmng = gs_resb-enmng. gs_sub_main-bwart = gs_resb-bwart. gs_sub_main-meins = gs_resb-meins. gs_sub_main-sanka = gs_resb-sanka. READ TABLE gt_afvc INTO gs_afvc WITH KEY vornr = gs_resb-vornr. *Call BAPI to get Suborder Status details CALL FUNCTION 'STATUS_READ' EXPORTING objnr = gs_resb-objnr only_active = 'X' TABLES status = gt_stsma. READ TABLE gt_stsma INTO gf_stsma INDEX 1. *Call BAPI to get operation and Suborders text details CALL FUNCTION 'BAPI_ALM_ORDER_GET_DETAIL' EXPORTING number = gs_sub_main-aufnr IMPORTING es_header = gs_header es_srvdata = gs_servdata TABLES et_operations = gt_operations return = gt_return. READ TABLE gt_operations INTO gs_operations WITH KEY activity = gs_sub _main-vornr. IF sy-subrc = 0. gs_sub_main-ltxa1 = gs_operations-description. ENDIF. READ TABLE gt_aufk INTO gs_aufk WITH KEY aufnr = gs_resb-aufnr. IF ( sy-subrc = 0 AND gs_aufk-auart = 'ZAE1' AND gs_sub_main-matnr = gs_main-matnr AND gf_stsma <> 'I0045' ).

gs_sub_main-aufnr = gs_aufk-aufnr. gs_sub_main-auart = gs_aufk-auart. APPEND gs_sub_main TO gt_sub_main. CLEAR: gs_sub_main,gs_aufk. ENDIF. " for AUFK CLEAR: gs_sub_main,gs_afvc, gs_resb,gs_aufk,gf_stsma. ENDLOOP. " loop for gt_resb CLEAR: gs_resb. ENDIF. " for index rows CLEAR: gs_index_rows,gs_sub_main,gs_afvc, gs_resb,gs_aufk,gs_main. ENDLOOP. " for index rows ENDIF. "no of rows IF gt_sub_main IS NOT INITIAL. CALL SCREEN 7001. ELSE. MESSAGE i002(sy) WITH text-023 . ENDIF. ENDFORM. " SELECTION_SUB

*&---------------------------------------------------------------------* *& Module STATUS_7001 OUTPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE status_7001 OUTPUT. SET PF-STATUS 'MENU'. SET TITLEBAR 'TITLE'. CREATE OBJECT gref_custom_container_sub EXPORTING container_name = 'SUB_CONTAINER'. *Create ALV grid CREATE OBJECT gref_alv_grid_sub EXPORTING i_parent = gref_custom_container_sub. *Creating fieldcatalog PERFORM build_fieldcatalog_sub. *Creating Layout PERFORM build_layout_sub. *Call method for display ALV CALL METHOD gref_alv_grid_sub->set_table_for_first_display EXPORTING i_structure_name = 'ZIS_CS_ORDER_OVERVIEW_MATERIL' is_layout = gs_layo i_save = 'A' CHANGING it_outtab = gt_sub_main it_fieldcatalog = gt_fcat_sub. *Event handler for double click CREATE OBJECT gref_event_receiver. SET HANDLER gref_event_receiver->handle_double_click FOR gref_alv_grid_sub. *Set event handler for pushbutton SET HANDLER gref_event_receiver->handle_toolbar1 FOR gref_alv_grid_sub. *Set event handler for user command SET HANDLER gref_event_receiver->handle_user_command1 FOR gref_alv_grid_sub.

* method to raise event TOOLBAR. CALL METHOD gref_alv_grid_sub->set_toolbar_interactive. ENDMODULE. " STATUS_7001 OUTPUT *&---------------------------------------------------------------------* *& Form BUILD_FIELDCATALOG_SUB *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_fieldcatalog_sub . REFRESH gt_fcat_sub. CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos = '1'. = 1. = 'AUART'. 'Order Type'(004). gt_fcat_sub. = '1'. = 2. = 'AUFNR'. 'Order'(030). gt_fcat_sub. = '1'. = 3. = 'VORNR'. 'Operation'(031). gt_fcat_sub. = '1'. = 4. = 'LTXA1'. 'Operation.Txt'(032). gt_fcat_sub. = '1'. = 6. = 'WERKS'. 'Plant'(014). gt_fcat_sub. = '1'. = 5. = 'MATNR'. 'Material'(033). gt_fcat_sub. = '1'. = 7.

gs_fcat_sub-fieldname = 'RSNUM'. gs_fcat_sub-coltext = 'Reservations'(016). APPEND gs_fcat_sub TO gt_fcat_sub. CLEAR gs_fcat_sub. gs_fcat_sub-row_pos = '1'. gs_fcat_sub-col_pos = 8. gs_fcat_sub-fieldname = 'BDMNG'. gs_fcat_sub-do_sum = 'X'. gs_fcat_sub-coltext = 'Quntity.Req'(017). APPEND gs_fcat_sub TO gt_fcat_sub. CLEAR gs_fcat_sub. gs_fcat_sub-row_pos = '1'. gs_fcat_sub-col_pos = 9. gs_fcat_sub-fieldname = 'VMENG'. gs_fcat_sub-do_sum = 'X'. gs_fcat_sub-coltext = 'Committed Quantity'(018). APPEND gs_fcat_sub TO gt_fcat_sub. CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO CLEAR gs_fcat_sub. gs_fcat_sub-row_pos gs_fcat_sub-col_pos gs_fcat_sub-fieldname gs_fcat_sub-coltext = APPEND gs_fcat_sub TO ENDFORM. = '1'. = 10. = 'ENMNG'. 'Qun.With drawn'(020). gt_fcat_sub. = '1'. = 11. = 'BWART'. 'Movement Type'(021). gt_fcat_sub. = '1'. = 12. = 'MEINS'. 'Unit Measure'(022). gt_fcat_sub. = '1'. = 13. = 'SANKA'. 'Indicator for Relevancy to Costing'(024). gt_fcat_sub. " BUILD_FIELDCATALOG_SUB

*&---------------------------------------------------------------------* *& Form BUILD_LAYOUT_SUB *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM build_layout_sub .

gs_layo-grid_title gs_layo-zebra gs_layo-cwidth_opt gs_layo-sel_mode = ENDFORM.

= 'Reservations'(009). = 'X'. "Alternating line color (striped) = 'X'. "Optimize column width 'A'. " BUILD_LAYOUT_SUB

*&---------------------------------------------------------------------* *& Module USER_COMMAND_7001 INPUT *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* MODULE user_command_7001 INPUT. CASE sy-ucomm. WHEN 'BACK'. CALL METHOD gref_custom_container_sub->free. LEAVE TO SCREEN 0 . WHEN 'EXIT'. LEAVE PROGRAM. WHEN 'CANCEL'. LEAVE PROGRAM. ENDCASE. ENDMODULE. " USER_COMMAND_7001 INPUT

You might also like