본문 바로가기
SAP/ABAP

[SAP ABAP] 스마트폼(Smart forms) - 테이블 생성

by 먼가먼가 2024. 9. 2.
728x90
SMALL

 

이전 포스팅에서 스마트폼 생성과 ABAP 프로그램에서 양식을 호출하여 출력하는 예제에 대해 알아보았습니다.

 

2024.08.30 - [SAP/ABAP] - [SAP ABAP] 스마트폼(Smart forms) 생성

 

[SAP ABAP] 스마트폼(Smart forms) 생성

스마트폼(Smart Forms)란? ▶ 사용자가 인쇄 출력이나 이메일, PDF 등의 다양한 형식으로 문서를 생성하는 데 사용되는 도구입니다.  이번 포스팅에서는 스마트폼 생성과 CBO 프로그램 내에서 스마

sc20021.tistory.com

 

 

 

이번 포스팅에서는 ABAP 프로그램 인터널 테이블의 데이터를 스마트폼 양식에 출력하는 예제를 실습하도록 하겠습니다.

 

 

 

Step 1. Smart Form 테이블 생성

 

 

1) T-code : SMARTFORMS 실행

 - 이전 실습에서 생성하였던 ZFORM01을 편집합니다.

 

2) 레이아웃 생성

 - Smart Forms 레이아웃에 신규 텍스트를 생성합니다. 

 

3) 전역 설정

 - 서식 인터페이스 : 테이블 매개변수를 지정합니다.

 

 - 전역 정의 : 전역 데이터를 지정합니다.

 

 - 입력, 출력 매개변수를 설정한 후 필드에 텍스트를 할당합니다.

 

 - 텍스트 레이아웃에 테이블 변수를 지정합니다.

 

 - 활성화 후 디버깅 합니다.

 

 

3) 출력 결과 확인

 - 생성된 스마트폼 펑션 모듈 실행

 

 

 - 입력한 텍스트가 출력되는 것을 확인할 수 있습니다.

 

 

Step 2. ABAP 프로그램 작성

 - Smart Forms에서 생성한 양식을 호출하기 위해 ABAP 프로그램을 작성합니다. 아래 ABAP 코드 예제입니다.

 

REPORT z_smartform_example.

DATA : LV_FM_NAME TYPE RS38L_FNAM,
            ls_control_parameters  TYPE SSFCTRLOP,
      ls_output_options     TYPE ssfcompop.


*----- Intenal table, structure 생성
TYPES : BEGIN OF TY_DATA,
  VBELN TYPE ZTEST01-VBELN,
  END OF TY_DATA.

DATA : GT_DATA TYPE TABLE OF TY_DATA,
      GS_DATA TYPE TY_DATA.

*----- 값 할당
GC_DATA-VBELN = '0000001111'.
  APPEND GC_DATA TO GS_DATA.


*--- 1. Smart Form의 함수 모듈 이름을 가져옴
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  EXPORTING
    FORMNAME                 = 'ZFORM01'  "Smart Form 이름
  IMPORTING
    FM_NAME                  = LV_FM_NAME
  EXCEPTIONS
    NO_FORM                  = 1
    NO_FUNCTION_MODULE       = 2
    OTHERS                   = 3.


IF SY-SUBRC <> 0.
  WRITE: 'Smart Form을 찾을 수 없습니다.'.
  EXIT.
ENDIF.




*--- 2. Smart Form 호출을 위한 파라미터 준비
PERFORM set_output_options     CHANGING ls_output_options.


*--- 3. Smart Form 호출
CALL FUNCTION LV_FM_NAME
  EXPORTING
    CONTROL_PARAMETERS = ls_control_parameters
    OUTPUT_OPTIONS     = ls_output_options
  TABLES
  	T_DATA             = GT_DATA
  EXCEPTIONS
    FORMATTING_ERROR   = 1
    INTERNAL_ERROR     = 2
    SEND_ERROR         = 3
    USER_CANCELED      = 4
    OTHERS             = 5.

IF SY-SUBRC <> 0.
  WRITE: 'Smart Form 출력 중 오류 발생'.
ENDIF.


FORM set_output_options CHANGING ps_output_options TYPE ssfcompop.

  CLEAR ps_output_options.

  ps_output_options-tdcopies       = 1.              "출력매수
  ps_output_options-tdimmed        = 'X'.            "즉시출력
  ps_output_options-tdnewid        = 'X'.            "스풀인쇄 시작
  ps_output_options-tddelete       = 'X'.            "인쇄후 삭제
  ps_output_options-tdlifetime     = '1'.
  ps_output_options-tddest         = 'FRONTEND'.

ENDFORM.

 

 

실행결과

 

 

▶ Smart forms 에서 ABAP Internal 테이블을 이용하여 데이터를 출력하는 기본적인 예제를 실습해 보았습니다.

   이 예제를 활용하여 Smart forms를 통해 거래명세서, 출하지시서 등의 문서를 출력하는데 활용될 수 있습니다.

 

 

 

 

감사합니다.

728x90
LIST