1. 程式人生 > >ALV部分單元格可編輯控制

ALV部分單元格可編輯控制

1、在內表中定義欄位style TYPE lvc_t_styl,它是內表,用來控制不可編輯;

2、設定單元格所在列為可編輯的fieldcat-edit = 'X';

3、在layout結構中設定控制不可編輯欄位的名字,FM(REUSE_ALV_GRID_DISPLAY_LVC,其他函式不行)或者OO:wa-layout-stylefname= 'STYLE';

4、在內表迴圈中給該欄位賦值(控制不可編輯),將不符合條件的資料設定成不可編輯,通過STYLE=CL_GUI_ALV_GRID=>MC_STYLE_DISABLED實現。

  DATAls_fieldcat_9000 TYPE lvc_s_fcat,


        ls_style         TYPE lvc_s_styl,
        lt_style         TYPE lvc_t_styl.

  LOOP AT pt_out WHERE bstnk IS INITIAL.
    READ TABLE pt_fieldcat_9000 INTO ls_fieldcat_9000 WITH KEY fieldname 'BSTNK'.
    IF sy-subrc EQ 0.
      ls_style-fieldname 'YBFSJJE'.
      ls_style-style cl_gui_alv_grid=>mc_style_disabled.

      APPEND ls_style TO lt_style.
      pt_out-style lt_style.
      MODIFY pt_out TRANSPORTING style.
      CLEAR ls_style.
      REFRESHlt_style.
    ENDIF.
  ENDLOOP.

5、呼叫REUSE_ALV_GRID_DISPLAY_LVC顯示。