SAP/ABAP 코드

(ABAP 코드) 동적으로 생성한 테이블 필드 채웅

haramang 2022. 1. 21. 22:21

FORM format_data .
  DATALS_SCOL TYPE LVC_S_SCOL,
        LT_SCOL TYPE LVC_T_SCOL.

  LOOP AT GT_PRJ_DATA INTO GS_PRJ_DATA.

    ASSIGN COMPONENT 'ZNAME2' OF STRUCTURE <FS_WA> TO <FS_VAL>.
    IF SY-SUBRC EQ 0.
      <FS_VAL> GS_PRJ_DATA-ZNAME2.
      UNASSIGN <FS_VAL>.
    ENDIF.

    ASSIGN COMPONENT 'ZEDU' OF STRUCTURE <FS_WA> TO <FS_VAL>.
    IF SY-SUBRC EQ 0.
      <FS_VAL> GS_PRJ_DATA-ZEDU.
      UNASSIGN <FS_VAL>.
    ENDIF.

    LOOP AT GT_FCAT INTO GS_FCAT.
      IF SY-TABIX < 3.
        CONTINUE.
      ENDIF.

      IF GS_FCAT-FIELDNAME EQ 'ZCOLOR'.
        EXIT.
      ENDIF.

      ASSIGN COMPONENT GS_FCAT-FIELDNAME OF STRUCTURE <FS_WA> TO <FS_VAL>.
      IF SY-SUBRC EQ 0.
        IF GS_FCAT-FIELDNAME EQ GS_PRJ_DATA-ZPERIOD_E OR GS_PRJ_DATA-ZPERIOD_E IS INITIAL.
          <FS_VAL> '종료'.
          UNASSIGN <FS_VAL>.

          ASSIGN COMPONENT 'ZCOLOR' OF STRUCTURE <FS_WA> TO <FS_VAL>.
          IF SY-SUBRC EQ 0.
            LS_SCOL-FNAME GS_FCAT-FIELDNAME.
            LS_SCOL-COLOR-COL 1.
            LS_SCOL-COLOR-INT 1.
            LS_SCOL-COLOR-INV 1.
            APPEND LS_SCOL TO LT_SCOL.
            MOVE-CORRESPONDING LT_SCOL TO <FS_VAL>.
            CLEARLS_SCOLLT_SCOL[].
            UNASSIGN <FS_VAL>.
          ENDIF.
          EXIT.
        ELSE.
          <FS_VAL> '진행'.
        ENDIF.
      ENDIF.

    CLEARGS_FCAT.
    ENDLOOP.

    APPEND <FS_WA> TO <FS_TAB>.
    UNASSIGN <FS_VAL>.

    CLEARGS_PRJ_DATA.
  ENDLOOP.

ENDFORM.