ABAP

[ABAP] CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

셜록누나 2026. 4. 19. 13:56

딕셔너리에 있는 테이블만 가능함. itab 불가

FORM set_fcat_layout .

  gs_layout-zebra      = 'X'.
  gs_layout-cwidth_opt = 'A'.
  gs_layout-sel_mode   = 'D'.
  gs_layout-grid_title = TEXT-t02.
  gs_layout-smalltitle = 'X'.
  gs_layout-stylefname = 'STYLE'.

  gs_stable-row = 'X'.
  gs_stable-col = 'X'.

  "==================================================
  " FCAT 생성 (DDIC 기준)
  "==================================================
  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'ZC505T0047'
    CHANGING
      ct_fieldcat      = gt_fcat.

  "==================================================
  " FCAT 후처리 (기존 make_fcat 로직 대체)
  "==================================================
  LOOP AT gt_fcat ASSIGNING FIELD-SYMBOL(<fs_fcat>).

    CASE <fs_fcat>-fieldname.

      WHEN 'MATNR' OR 'WERKS'
        OR 'STLAN' OR 'STLNR' OR 'STLAL'.
        <fs_fcat>-key  = 'X'.
        <fs_fcat>-edit = space.

      WHEN 'LOSBS' OR 'LOSVN'.
        <fs_fcat>-edit        = 'X'.
        <fs_fcat>-qfieldname = 'BMEIN'.

      WHEN 'BMEIN'.
        <fs_fcat>-edit = space.

    ENDCASE.

  ENDLOOP.
  
ENDFORM.
FORM set_fcat_layout .

  DATA ls_fcat TYPE lvc_s_fcat.

  gs_layout = VALUE #(
                        zebra      = 'X'
                        cwidth_opt = 'A'
                        sel_mode   = 'D'
                        grid_title = TEXT-t01
                        smalltitle = 'X'
                     ).

  gs_stable = VALUE #(
                       row  = 'X'
                       col  = 'X'
                      ).

  CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
    EXPORTING
      i_structure_name = 'ZC505T0048'
    CHANGING
      ct_fieldcat      = gt_fcat.

  LOOP AT gt_fcat ASSIGNING FIELD-SYMBOL(<fs_fcat>).

    CASE <fs_fcat>-fieldname.

      WHEN 'AUFNR'.       "핫스팟 (예: 생산오더 클릭)
        <fs_fcat>-hotspot  = 'X'.
        <fs_fcat>-coltext  = 'Production Order'.

      WHEN 'ERDAT' OR 'ERZET' OR 'ERNAM' OR 'AEDAT' OR 'AEZET' OR 'AENAM'.
        <fs_fcat>-no_out = 'X'.

    ENDCASE.

  ENDLOOP.

  gt_fcat = VALUE #( BASE gt_fcat

  ( key       = 'X'
   fieldname = 'ICON'
   coltext   = 'ICON'
   col_pos   = 1
   icon      = 'X')
  ).

ENDFORM.

'ABAP' 카테고리의 다른 글

CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS' 말일 계산 FUNCTION  (0) 2026.05.16
[ABAP] ALV TREE , EVENT  (0) 2026.05.09
[ABAP] FCAT 필드 값 바꾸기  (0) 2026.04.19
CL_GUI_TIMER - 타이머 이벤트  (0) 2026.04.12
[FI] 환율 API 프로그램  (0) 2026.04.04