SAP: CLASS Display ALV

16 篇文章 0 订阅

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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.

    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'STATUS').
        LR_COL->SET_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_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_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'MATNR').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'LGPMAT').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'QTY').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'STQTY').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'POQTY').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'NETVAL').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'MRFLG').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'RNFLG').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'RNTYPE').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'RELFLG').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'PHGU').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'PHGA').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'PHGD').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'ENMNG').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'LGRF').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'MRDOC').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'NEEDRN').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'MENGE').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
    TRY .
        LR_COL GR_COLUMS->GET_COLUMN'MEINS').
        LR_COL->SET_VISIBLEIF_SALV_C_BOOL_SAP=>FALSE ).
      CATCH CX_SALV_NOT_FOUND.
    ENDTRY.
  ENDIF.
  TRY .
      LR_COL GR_COLUMS->GET_COLUMN'EXPLO').
      LR_COL->SET_VISIBLEIF_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_VISIBLEIF_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_KEYLS_KEY ).
  GR_LAYOUT->SET_DEFAULTABAP_TRUE ).
  GR_LAYOUT->SET_SAVE_RESTRICTIONLV_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.

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值