DATA : GR_TABLE TYPE REF TO CL_SALV_TABLE,
GR_FUNCS TYPE REF TO CL_SALV_FUNCTIONS_LIST,
GR_COLUM TYPE REF TO CL_SALV_COLUMNS_TABLE,
GR_LAYOUT TYPE REF TO CL_SALV_LAYOUT,
GR_EVENTS TYPE REF TO CL_SALV_EVENTS_TABLE.
TRY .
CALL METHOD CL_SALV_TABLE=>FACTORY
IMPORTING
R_SALV_TABLE = GR_TABLE
CHANGING
T_TABLE = IT_ITAB[].
CATCH CX_SALV_MSG.
...
ENDTRY.
*... Get functions - toolbar
GR_FUNCS = GR_TABLE->GET_FUNCTIONS( ).
GR_FUNCS->SET_ALL( ).
* GR_FUNCS->SET_DETAIL( ).
GR_COLUM = GR_TABLE->GET_COLUMNS( ).
PERFORM CHANGE_COLNUMS CHANGING GR_COLUM.
*... get layout
GR_LAYOUT = GR_TABLE->GET_LAYOUT( ).
PERFORM CHANGE_LAYOUT CHANGING GR_LAYOUT.
* Title set
PERFORM SET_PROGRAM_TITLE.
** register to Events
PERFORM REGISTER_TO_EVENTS.
*... Display table
GR_TABLE->DISPLAY( ).
*&---------------------------------------------------------------------*
*& Form CHANGE_COLNUMS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM CHANGE_COLNUMS CHANGING GR_COLUMS TYPE REF TO CL_SALV_COLUMNS_TABLE.
DATA : LR_COL TYPE REF TO CL_SALV_COLUMN,
LV_DDIC_REFERENCE TYPE SALV_S_DDIC_REFERENCE.
GR_COLUMS->SET_OPTIMIZE( 'X').
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MRRNNO').
* LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
LR_COL->SET_LONG_TEXT( 'MR No.').
LR_COL->SET_MEDIUM_TEXT( 'MR No.').
LR_COL->SET_SHORT_TEXT( 'MR No.').
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MRFLG').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'IMNO').
* LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'RNFLG').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'PRODLINE').
* LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
LR_COL->SET_LONG_TEXT( 'Production Line').
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MRRNFLG').
* LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
LR_COL->SET_LONG_TEXT( 'MR/RN Flage').
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'REASON').
* LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
LR_COL->SET_LONG_TEXT( 'Reason id').
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'RELFLG').
* LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
LR_COL->SET_LONG_TEXT( 'Approvel Flag').
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
IF SY-TCODE <> 'ZMR03'.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'APPROVER').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'STATUS').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
LR_COL->SET_LONG_TEXT( 'Approvel Status').
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'SPNAME').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
LR_COL->SET_LONG_TEXT( 'Description').
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
ELSE.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'STATUS').
* LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
LR_COL->SET_LONG_TEXT( 'Approvel Id').
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'SPNAME').
* LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
LR_COL->SET_LONG_TEXT( 'Description').
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
ENDIF.
IF SY-TCODE <> 'ZMR02'.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MENGE').
IF 'R' IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MEINS').
IF 'R' IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'CHARG').
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'UMWRK').
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'UMLOG').
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'UMCHA').
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'LGORT').
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
* TRY .
* LR_COL = GR_COLUMS->GET_COLUMN( 'UMCHA').
* LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
* CATCH CX_SALV_NOT_FOUND.
* ENDTRY.
ENDIF.
"RN
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'RNTYPE').
LR_COL->SET_LONG_TEXT( 'RN TYPE').
LR_COL->SET_MEDIUM_TEXT( 'RN TYPE').
LR_COL->SET_SHORT_TEXT( 'RN TYPE').
LV_DDIC_REFERENCE-TABLE = 'ZMM002'.
LV_DDIC_REFERENCE-FIELD = 'RNTYPE'.
* LR_COL->SET_DDIC_REFERENCE( LV_DDIC_REFERENCE ).
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MAILFG').
LR_COL->SET_LONG_TEXT( 'Send Mail').
LR_COL->SET_MEDIUM_TEXT( 'Send Mail').
LR_COL->SET_SHORT_TEXT( 'Send Mail').
LV_DDIC_REFERENCE-TABLE = 'ZMM002'.
LV_DDIC_REFERENCE-FIELD = 'MAILFG'.
* LR_COL->SET_DDIC_REFERENCE( LV_DDIC_REFERENCE ).
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'ROFLG').
LR_COL->SET_LONG_TEXT( 'Doc for Return to Order').
LR_COL->SET_MEDIUM_TEXT( 'Return to Order' ).
LR_COL->SET_SHORT_TEXT( 'RN Order' ).
* LV_DDIC_REFERENCE-TABLE = 'ZMM002'.
* LV_DDIC_REFERENCE-FIELD = 'RNTYPE'.
* LR_COL->SET_DDIC_REFERENCE( LV_DDIC_REFERENCE ).
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'POFLG').
LR_COL->SET_LONG_TEXT( 'Doc for return to PO').
LR_COL->SET_MEDIUM_TEXT( 'Doc for return to PO').
LR_COL->SET_SHORT_TEXT( 'RN PO').
* LV_DDIC_REFERENCE-TABLE = 'ZMM002'.
* LV_DDIC_REFERENCE-FIELD = 'RNTYPE'.
* LR_COL->SET_DDIC_REFERENCE( LV_DDIC_REFERENCE ).
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'NWFLG').
LR_COL->SET_LONG_TEXT( 'Doc for return to non value plant').
LR_COL->SET_MEDIUM_TEXT( 'Return to plant').
LR_COL->SET_SHORT_TEXT( 'RN 901').
* LV_DDIC_REFERENCE-TABLE = 'ZMM002'.
* LV_DDIC_REFERENCE-FIELD = 'RNTYPE'.
* LR_COL->SET_DDIC_REFERENCE( LV_DDIC_REFERENCE ).
IF 'R' NOT IN S_FLAG.
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
ENDIF.
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
IF P_R5 = 'X'.
TRY.
LR_COL = GR_COLUMS->GET_COLUMN( 'ITMNO').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MATNR').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'LGPMAT').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'QTY').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'STQTY').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'POQTY').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'NETVAL').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MRFLG').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'RNFLG').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'RNTYPE').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'RELFLG').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'PHGU').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'PHGA').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'PHGD').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'ENMNG').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'LGRF').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MRDOC').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'NEEDRN').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MENGE').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'MEINS').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
ENDIF.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'EXPLO').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
IF SY-TCODE <> 'ZMR02'.
TRY .
LR_COL = GR_COLUMS->GET_COLUMN( 'BUDAT').
LR_COL->SET_VISIBLE( IF_SALV_C_BOOL_SAP=>FALSE ).
CATCH CX_SALV_NOT_FOUND.
ENDTRY.
ENDIF.
ENDFORM. " CHANGE_COLNUMS
*&---------------------------------------------------------------------*
*& Form CHANGE_LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* <--P_GR_LAYOUT text
*----------------------------------------------------------------------*
FORM CHANGE_LAYOUT CHANGING GR_LAYOUT TYPE REF TO CL_SALV_LAYOUT.
DATA: LS_KEY TYPE SALV_S_LAYOUT_KEY,
LV_SAVE TYPE SALV_DE_LAYOUT_RESTRICTION VALUE '2'.
"Layouts
LS_KEY-REPORT = SY-REPID.
GR_LAYOUT->SET_KEY( LS_KEY ).
GR_LAYOUT->SET_DEFAULT( ABAP_TRUE ).
GR_LAYOUT->SET_SAVE_RESTRICTION( LV_SAVE ).
* gr_layout->set_initial_layout( p_var ).
ENDFORM. " CHANGE_LAYOUT
*&---------------------------------------------------------------------*
*& Form SET_PROGRAM_TITLE
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM SET_PROGRAM_TITLE .
IF SY-TCODE = 'ZMR01'.
SET TITLEBAR 'TITLE' WITH 'Unissued'.
ELSEIF SY-TCODE = 'ZMR02'.
SET TITLEBAR 'TITLE' WITH 'Issued'.
ELSEIF SY-TCODE = 'ZMR03'.
SET TITLEBAR 'TITLE' WITH 'Waiting for approvel'.
ENDIF.
ENDFORM. " SET_PROGRAM_TITLE
FORM REGISTER_TO_EVENTS .
CREATE OBJECT GR_EVENTS_HANDLE.
GR_EVENTS = GR_TABLE->GET_EVENT( ).
* SET HANDLER GR_EVENTS->ON_USER_COMMAND FOR GR_EVENTS.
* SET HANDLER GR_EVENTS->ON_BEFORE_SALV_FUNCTION FOR GR_EVENTS.
* SET HANDLER GR_EVENTS->ON_AFTER_SALV_FUNCTION FOR GR_EVENTS.
SET HANDLER GR_EVENTS_HANDLE->ON_DOUBLE_CLICK FOR GR_EVENTS.
* SET HANDLER GR_EVENTS->ON_LINK_CLICK FOR GR_EVENTS.
ENDFORM. " REGISTER_TO_EVENTS
PERFORM build_fieldcat1 .
IF alv_container1 IS INITIAL.
* create a custom container control for our ALV Control
CREATE OBJECT alv_container1
EXPORTING
container_name = 'G_ALV1'
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
create_error = 3
lifetime_error = 4
lifetime_dynpro_dynpro_link = 5.
* create an instance of alv control
CREATE OBJECT grid1
EXPORTING
i_parent = alv_container1.
*
* gs_layout-grid_title = ''(100).
* gs_layout-CWIDTH_OPT = 'X'.
* GS_LAYOUT-NO_TOOLBAR = 'X'.
gs_layout-box_fname = 'SEL'.
gs_layout-stylefname = 'STYLE'.
gs_variant-report = sy-repid.
REFRESH lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_append_row TO lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_copy TO lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_copy_row TO lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_cut TO lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_insert_row TO lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_move_row TO lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_paste TO lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_paste_new_row TO lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_undo TO lt_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_check TO lt_excl_func.
IF g_active = 'D'.
APPEND cl_gui_alv_grid=>mc_fc_loc_delete_row TO lt_excl_func.
ENDIF.
*
CREATE OBJECT event_receiver.
SET HANDLER event_receiver->handle_f4 FOR grid1.
* SET HANDLER EVENT_RECEIVER->DATA_CHANGED FOR GRID1.
SET HANDLER event_receiver->data_change_finished FOR grid1.
* SET HANDLER EVENT_RECEIVER->ENTERED FOR GRID1.
SET HANDLER event_receiver->toolbar FOR grid1.
* set handler event_receiver->button_click for grid1.
SET HANDLER event_receiver->user_command FOR grid1.
SET HANDLER event_receiver->on_double_click FOR grid1.
CALL METHOD grid1->set_table_for_first_display
EXPORTING
is_layout = gs_layout
it_toolbar_excluding = lt_excl_func
is_variant = gs_variant
i_save = 'U'
i_default = l_default
CHANGING
it_fieldcatalog = gs_fieldcat1
it_outtab = it_mm001[].
IF gt_f4 IS INITIAL.
gs_f4-fieldname = 'RNTYPE'.
gs_f4-register = 'X'.
* gs_f4-getbefore = check_be. "§7a
* gs_f4-chngeafter = chn_aft. "§7b
INSERT gs_f4 INTO TABLE gt_f4.
gs_f4-fieldname = 'LOCALFILE'.
gs_f4-getbefore = 'X'.
gs_f4-register = 'X'.
INSERT gs_f4 INTO TABLE gt_f4.
ENDIF.
CALL METHOD grid1->register_f4_for_fields
EXPORTING
it_f4 = gt_f4.
*
CALL METHOD grid1->register_edit_event "When click Enter tirgger event
EXPORTING
i_event_id = cl_gui_alv_grid=>mc_evt_enter.
ENDIF.
* IF g_active = 'D'.
* LOOP AT gs_fieldcat1 INTO wa_fieldcat WHERE edit = 'X'
* AND fieldname NE 'LOEKZ'.
* wa_fieldcat-edit = space.
* MODIFY gs_fieldcat1 FROM wa_fieldcat TRANSPORTING edit.
* ENDLOOP.
* ELSE.
* ENDIF.
* CALL METHOD grid1->set_frontend_fieldcatalog
* EXPORTING
* it_fieldcatalog = gs_fieldcat1[].
CALL METHOD grid1->refresh_table_display.
FORM build_fieldcat1 .
DATA: ls_fieldcat TYPE lvc_s_fcat.
CLEAR gs_fieldcat1[].
IF g_active EQ 'D'.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 0.
ls_fieldcat-fieldname = 'LOEKZ'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-checkbox = 'X'.
ls_fieldcat-edit = 'X'.
ls_fieldcat-outputlen = 4.
ls_fieldcat-scrtext_m = 'DEL Ind'.
APPEND ls_fieldcat TO gs_fieldcat1.
ENDIF.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 0.
ls_fieldcat-fieldname = 'ITMNO'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-outputlen = 4.
ls_fieldcat-scrtext_m = 'Itmno'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 2.
ls_fieldcat-fieldname = 'AUFNR'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-ref_field = 'AUFNR'.
ls_fieldcat-rollname = 'AUFNR'.
ls_fieldcat-ref_table = 'AFKO'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-scrtext_m = 'Production Order'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 3.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-ref_table = 'MARA'.
ls_fieldcat-ref_field = 'MATNR'.
ls_fieldcat-outputlen = 18.
ls_fieldcat-scrtext_m = 'Material'.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 3.
ls_fieldcat-fieldname = 'MAKTX'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-outputlen = 35.
ls_fieldcat-scrtext_m = 'Describe'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 3.
ls_fieldcat-fieldname = 'PCBMAT'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-ref_table = 'MARA'.
ls_fieldcat-ref_field = 'MATNR'.
ls_fieldcat-outputlen = 18.
ls_fieldcat-scrtext_m = 'PCB material'.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 4.
ls_fieldcat-fieldname = 'QTY'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-datatype = 'P'.
ls_fieldcat-just = 'R'.
ls_fieldcat-outputlen = 13.
ls_fieldcat-scrtext_m = 'Quantity'.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 5.
ls_fieldcat-fieldname = 'STQTY'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-datatype = 'P'.
ls_fieldcat-just = 'R'.
ls_fieldcat-outputlen = 13.
ls_fieldcat-scrtext_m = 'Stock Qty'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 6.
ls_fieldcat-fieldname = 'POQTY'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-datatype = 'P'.
ls_fieldcat-just = 'R'.
ls_fieldcat-outputlen = 13.
ls_fieldcat-scrtext_m = 'PO Qty'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 8.
ls_fieldcat-fieldname = 'NETVAL'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-outputlen = 13.
ls_fieldcat-scrtext_m = 'Amount'.
ls_fieldcat-do_sum = 'X'.
* LS_FIELDCAT-EDIT = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 6.
ls_fieldcat-fieldname = 'BINNO'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-outputlen = 10.
ls_fieldcat-scrtext_m = 'BIN Number'.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
IF g_active EQ 'C' OR g_active EQ 'M'.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 9.
ls_fieldcat-fieldname = 'LOCALFILE'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-ref_table = 'ZMM001'.
ls_fieldcat-ref_field = 'LOCALFILE'.
ls_fieldcat-outputlen = 15.
ls_fieldcat-scrtext_m = 'Doc. path'.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
ENDIF.
IF g_active EQ 'M' OR g_active EQ 'D'.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 9.
ls_fieldcat-fieldname = 'DOCUMENT'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-outputlen = 15.
ls_fieldcat-scrtext_m = 'Document'.
APPEND ls_fieldcat TO gs_fieldcat1.
ENDIF.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 10.
ls_fieldcat-fieldname = 'PRODLOC'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-ref_field = 'PRODLOC'.
ls_fieldcat-rollname = 'PRODLOC'.
ls_fieldcat-outputlen = 15.
ls_fieldcat-scrtext_m = 'Production LOC'.
* LS_FIELDCAT-F4AVAILABL = 'X'.
IF g_product = 'X'.
ls_fieldcat-edit = 'X'.
ENDIF.
APPEND ls_fieldcat TO gs_fieldcat1.
IF g_depart EQ 'X'.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 10.
ls_fieldcat-fieldname = 'KOSTL'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-ref_table = 'CSKS'.
ls_fieldcat-ref_field = 'KOSTL'.
ls_fieldcat-rollname = 'KOSTL'.
ls_fieldcat-outputlen = 8.
ls_fieldcat-scrtext_m = 'COST CENTER'.
* LS_FIELDCAT-F4AVAILABL = 'X'.
* IF g_depart = 'X'.
* ls_fieldcat-edit = 'X'.
* ENDIF.
APPEND ls_fieldcat TO gs_fieldcat1.
ENDIF.
IF g_mr = 'X'.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 12.
ls_fieldcat-fieldname = 'NEEDRN'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-checkbox = 'X'.
ls_fieldcat-outputlen = 2.
ls_fieldcat-scrtext_s = 'RN'.
ls_fieldcat-scrtext_m = 'NEED CRE. RN'.
ls_fieldcat-tooltip = 'Need cteate RN'.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 13.
ls_fieldcat-fieldname = 'RNTYPE'.
ls_fieldcat-ref_table = 'ZMM001'.
ls_fieldcat-ref_field = 'RNTYPE'.
ls_fieldcat-scrtext_m = 'RN Type'.
ls_fieldcat-outputlen = 7.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 13.
ls_fieldcat-fieldname = 'GRUND'.
ls_fieldcat-ref_table = 'ZMM001'.
ls_fieldcat-ref_field = 'GRUND'.
ls_fieldcat-scrtext_m = 'Reason for movement'.
ls_fieldcat-outputlen = 6.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
ENDIF.
IF g_rn EQ 'X'.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 13.
ls_fieldcat-fieldname = 'RNTYPE'.
ls_fieldcat-ref_table = 'ZMM001'.
ls_fieldcat-ref_field = 'RNTYPE'.
ls_fieldcat-outputlen = 7.
ls_fieldcat-scrtext_m = 'RN Type'.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 13.
ls_fieldcat-fieldname = 'GRUND'.
ls_fieldcat-ref_table = 'ZMM001'.
ls_fieldcat-ref_field = 'GRUND'.
ls_fieldcat-scrtext_m = 'Reason for movement'.
ls_fieldcat-outputlen = 6.
ls_fieldcat-edit = 'X'.
APPEND ls_fieldcat TO gs_fieldcat1.
ENDIF.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 14.
ls_fieldcat-fieldname = 'MTART'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-ref_table = 'MARA'.
ls_fieldcat-ref_field = 'MTART'.
ls_fieldcat-outputlen = 5.
ls_fieldcat-scrtext_m = 'Type'.
APPEND ls_fieldcat TO gs_fieldcat1.
IF g_product = 'X'.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 15.
ls_fieldcat-fieldname = 'NEW'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-checkbox = 'X'.
ls_fieldcat-outputlen = 2.
ls_fieldcat-scrtext_m = 'New'.
APPEND ls_fieldcat TO gs_fieldcat1.
ENDIF.
CLEAR ls_fieldcat.
ls_fieldcat-col_pos = 16.
ls_fieldcat-fieldname = 'LGPMAT'.
ls_fieldcat-tabname = 'IT_MM001'.
ls_fieldcat-ref_field = 'MATNR'.
ls_fieldcat-ref_table = 'MARA'.
ls_fieldcat-outputlen = 18.
ls_fieldcat-scrtext_m = 'Logistic material'.
APPEND ls_fieldcat TO gs_fieldcat1.