메뉴 건너뛰기

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 Dynamic Select 소스 [5] 떡밥 2011.06.03 17768
106 스크린에서 버튼을 tree 처럼 만들기. [32] file Jenny 2011.08.11 17655
105 Mass Download [5] file 소주와 막걸리 2009.11.13 17363
104 셀(cell) 레벨의 ALV EDIT(편집) 가능 소스 [5] sapjoy 2008.09.25 17241
103 통화단위, krw, usd 일반 필드에 변환시 로직(소수점, 자리수) [4] sapjoy 2011.07.19 15561
102 REPORT z_alv_list_block_2 [1] 노름마치 2007.11.05 15184
101 4.6c 에서 Xml 파일을 읽어오는 로직 예제 입니다. [2] woong 2009.05.11 14803
100 금액을 한글로(수표)표기 [17] file STARFISH 2009.03.17 14644
» 인터널 테이블을 사용한 구구단 출력 두가지 입니다 - WRITE, ALV 이용 [1] kofnhuge 2012.10.10 14009
98 Text(Description) 빠르게 반영하기,,, 속도개선을 위주로 [5] file 노름마치 2010.12.07 13907
97 [onepaper] 참고자료 Archiving 세팅에 필요한 파일소스입니다. [7] file 원니컴 2011.03.22 13798
96 Syntax Checker [4] file 소주와 막걸리 2009.11.13 13764
95 ALV Row Color 지정하는 소스. [3] 나침반친구 2007.05.28 12855
94 금액을 영문으로 [4] file 쥬앙 2009.04.06 12366
93 Transport Trace [4] file 소주와 막걸리 2009.11.13 12140
92 멀 어떻게 해야 하는건질 몰라 질문 드립니다 [5] 쏠라맨 2012.10.12 11662
91 [Module pool] Container에 webpage 넣기. [2] 냥냥 2013.03.19 11196
90 nugg 프로그램을 sap 에 생성하기.. [3] file MadMax 2012.10.11 10825
89 Select-Options 의 Extension 에 제한을 주는 방법 [5] icarus 2007.11.15 10824
88 Split 의 사용 [1] 양키(이경환) 2014.02.05 10665