메뉴 건너뛰기

SAP 한국 커뮤니티



ABAP 개발 공부한지 한달안되는 초보입니다~ 
이런 자료도 찾으실 분이 분명 있으시리라 생각하고 올립니다.


기본적으로는 인터널테이블과 WRITE 구문을 이용해서 짠후(1번)

이 코드를 뼈대로 해서 ALV를 이용해서 다시 코드를 재구성했습니다.(2번)



1번. WRITE 이용.

*======================================================================
*&  WRITE 를 이용한 구구단
*======================================================================

DATA: BEGIN OF line,
  col1 TYPE n,
  col2 TYPE n,
  col3 TYPE i,
END OF line.

* line의 구조를 가지는 Standard table 형태의 인터널 테이블 itab 선언
DATA itab LIKE STANDARD TABLE OF line.

line-col1 1.

DO TIMES.
        DO TIMES.
              line-col2 sy-Index.
              line-col3 line-col1 * line-col2.
*              INSERT line INTO TABLE itab.
              APPEND line TO itab.
        ENDDO.
    line-col1 line-col1 + 1.
ENDDO.

LOOP AT itab INTO line.
    IF line-col2 1.
WRITE: /, '=============== ', line-col1, ' 단 =============== ' .
    ENDIF.
    WRITE: /, line-col1, '*', line-col2, '=', line-col3 LEFT-JUSTIFIED.
ENDLOOP.


*======================================================================
*&  WRITE를 이용한 구구단 END
*======================================================================







2번. ALV 이용

*======================================================================
*&  ALV 를 이용한 구구단
*======================================================================

TYPE-POOLS: slis.

*&---------------------------------------------------------------------
*& Data Declaration
*&---------------------------------------------------------------------
* 카테고리 필드 선언
DATA: gt_fieldcat  TYPE slis_t_fieldcat_alv,
      wa_fieldcat  TYPE slis_fieldcat_alv.

* line-col3 = line-col1 * line-col2
DATA: BEGIN OF line,
    col1 TYPE VALUE 1,           "단수
    col2 TYPE n,                        "곱해지는  수
    col3 TYPE i,                         "결과 값
    col4 TYPE string VALUE '',  " 곱셈식 표현
    col5 TYPE string VALUE '',  " 단수 표현
    col6 TYPE VALUE 0,           " 각 단수의 값 합계
END OF line.
* line의 구조를 가지는 인터널 테이블 itab 선언
DATA ITAB LIKE TABLE OF line.

**&--------------------------------------------------------------------
**& DATA Processing
**&--------------------------------------------------------------------

* ITAB 에 구구단값 입력
DO TIMES.
        DO TIMES.
              COMPUTE line-col2 sy-Index.
              COMPUTE line-col3 line-col1 * line-col2.
              ADD line-col3 TO line-col6.
*           COMPUTE line-col6 = line-col6 + line-col3.

*            각각의 처음 단수 시작시에만 몇단인지 표현
              IF line-col2 1.
                CONCATENATE line-col1 ' 단' INTO line-col5.
              ELSE.
                    CLEAR  line-col5 .    "곱해지는 수가 1(시작)이 아니면  CLEAR
              ENDIF.

*             ITAB 테이블에 들어 갈 수식.
              CONCATENATE line-col1 ' * '  line-col2  ' = '
                    INTO  line-col4.

*              INSERT line INTO TABLE ITAB.  "아래의 APPEND와 같은 기능을 함.
              APPEND line TO ITAB.
        ENDDO.

*      각 단수의 합을 만들기 위한 설정.
        line-col4 '각 단수 합 :'.
        line-col3 line-col6.
        INSERT line INTO TABLE ITAB.
        CLEAR line-col6.

        ADD TO line-col1.
*    COMPUTE line-col1 = line-col1 + 1.
ENDDO.

**&--------------------------------------------------------------------
**& START-OF-SELECTION
**&--------------------------------------------------------------------

* 카테고리 필드 설정
START-OF-SELECTION.
wa_fieldcat-fieldname  'COL5'.    " Fieldname in the data table
wa_fieldcat-seltext_m  'DAN'.
APPEND wa_fieldcat TO gt_fieldcat.

wa_fieldcat-fieldname  'COL4'.    " Fieldname in the data table
wa_fieldcat-seltext_m  'STATEMENT'.
APPEND wa_fieldcat TO gt_fieldcat.

wa_fieldcat-fieldname  'COL3'.    " Fieldname in the data table
wa_fieldcat-seltext_m  'ANSWER'.
APPEND wa_fieldcat TO gt_fieldcat.

* 합계값 확인을 위한 임시 컬럼.
wa_fieldcat-fieldname  'COL6'.    " Fieldname in the data table
wa_fieldcat-seltext_m  'MULTI'.
APPEND wa_fieldcat TO gt_fieldcat.

*  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
 CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
      it_fieldcat gt_fieldcat
   TABLES
      t_outtab ITAB.
*======================================================================
*&  ALV 를 이용한 구구단 END
*======================================================================

번호 제목 글쓴이 날짜 조회 수
107 KR_POSTCODE : 한국주소입력 Version 2.0 대략나 2021.03.31 2201
106 HTTP 통신하는 로직 [3] 대략나 2016.12.20 5914
105 XML 을 아밥 스트럭쳐 또는 인터널테이블로 변경시키는 로직 [1] 대략나 2016.12.20 3918
104 ALV EDIT 샘플 프로그램 sapjoy 2015.06.26 9323
103 파일 메일(e-mail) 첨부로 보내기 [2] sapjoy 2014.10.10 7368
102 데이터 이메일(e-mail) xls 파일로 보내기 [2] sapjoy 2014.10.10 6730
101 Tree ALV 샘플 [5] 양키(이경환) 2014.02.05 10671
100 Split 의 사용 [1] 양키(이경환) 2014.02.05 11236
99 소수점 뒷자리 0 제거 로직 file 양키(이경환) 2014.01.20 9618
98 10이하의 홀수 마방진 은미짱 2013.10.19 6830
97 [Module pool] Container에 webpage 넣기. [2] 냥냥 2013.03.20 11238
96 COMAPY CODE에 할당된 Fiscal variant에 대한 calendar date 변환 paran 2013.03.01 10505
95 멀 어떻게 해야 하는건질 몰라 질문 드립니다 [5] 쏠라맨 2012.10.13 11704
94 nugg 프로그램을 sap 에 생성하기.. [3] file MadMax 2012.10.11 10890
» 인터널 테이블을 사용한 구구단 출력 두가지 입니다 - WRITE, ALV 이용 [1] kofnhuge 2012.10.10 14127
92 Search For Program/Function/Table Desc&Name [8] file 초짜 2011.09.30 9863
91 스크린에서 버튼을 tree 처럼 만들기. [32] file Jenny 2011.08.12 17707
90 통화단위, krw, usd 일반 필드에 변환시 로직(소수점, 자리수) [4] sapjoy 2011.07.20 15638
89 Dynamic Select 소스 [5] 떡밥 2011.06.04 17828
88 [onepaper] 참고자료 Archiving 세팅에 필요한 파일소스입니다. [7] file 원니컴 2011.03.22 13831