Etc

스마트폼 실행 후 PDF로 파일 변환

오늘은 프로그램 내에서 스마트폼을 실행하여 생성한 내용을 PDF 로 변환하는 방법에 대해 알아보겠습니다.

 

 

1. 스마트폼 펑션 명 조회

DATA: LV_FORMNAME TYPE TDSFNAME VALUE 'ZFORMS',

          LV_FM_NAME TYPE RS38L_FNAM.

*- function module of smart form
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
  EXPORTING
    FORMNAME           = LV_FORMNAME  => 티코드 SMARTFORMS 에서 생성한 폼 이름
  IMPORTING
    FM_NAME            = LV_FM_NAME  
  EXCEPTIONS
    NO_FORM            1
    NO_FUNCTION_MODULE 2
    OTHERS             3.

 

=> LV_FM_NAME 에 스마트폼 내부 펑션명을 불러온다.

 

 

2. 스마트폼 펑션 실행

1번에서 불러온 LV_FM_NAME 으로 콜 펑션 한다.

 

 DATA: LS_CONTORL_PARAMETERS TYPE SSFCTRLOP
             LS_OUTPUT_OPTIONS     TYPE SSFCOMPOP,

            LV_JOB_OUPUT_INFO TYPE SSFCRESCL.

 

**스마트폼 출력 옵션

LS_CONTORL_PARAMETERS-NO_DIALOG 'X'.  "인쇄출력팝업 안 띄우기

LS_CONTORL_PARAMETERS--GETOTF    'X'.  "PDF출력시 무조건 사용(OTF 로 받겠다는 의미)

 

**LS_CONTORL_PARAMETER에서 현재 사용하지 않은 필드들과 LS_OUTPUT-OPTION은 

구조체 SSFCTRLOP, SSFCOMPOP를 참고하면 된다.*- calling the smart form

 

 

CALL FUNCTION LV_FM_NAME

  EXPORTING

   GV_NAME =  LV_NAME "이 부분은 스마트폼 생성할때 만든 변수들로 프로그램 내에서도 추가해줘야한다. 

   GV_TEL    =  LV_TEL  "이 부분은 스마트폼 생성할때 만든 변수들로 프로그램 내에서도 추가해줘야한다. 

   CONTORL_PARAMETERS = LS_CONTORL_PARAMETERS 
   OUTPUT_OPTIONS      = LS_OUTPUT_OPTIONS

IMPORTING

   JOB_OUPUT_INFO = LV_JOB_OUPUT_INFO 

TABLES
    GT_TABLE "이 부분은 스마트폼 생성할때 만든 변수들로 프로그램 내에서도 추가해줘야한다. 

 

 

3. OTF를 PDF로 변환

  "- OTF Table Data를 PDF로 Convert.

 DATA: LV_BIN_FILESIZE TYPE I,  "필수값이지만 밑에 펑션에서는 이 변수의 데이터를 사용하지는 않음

            LV_BIN_FILE         TYPE XSTRING,

            LT_OTF                  TYPE TSFOTF,

            LT_LINES              LIKE TLINE OCCURS 0 WITH HEADER LINE.

     

"2번에서 받은 데이터

LT_OTF[] = LV_JOB_OUPUT_INFO-OTFDATA[].

 

  CALL FUNCTION 'CONVERT_OTF'
    EXPORTING
      FORMAT                = 'PDF'
    IMPORTING
      BIN_FILESIZE          = LV_BIN_FILESIZE
      BIN_FILE                 = LV_BIN_FILE 

                                      =>이 데이터로 펑션  'scms_xstring_to_binary' 실행하여 (xstring -> binary)

                                        메일 발송시 첨부파일로 사용할수 있다( FILETYPE : BIN).
    TABLES
      OTF                   = LT_OTF
      LINES                 = LT_LINES

                                  =>이 데이터로 펑션 'GUI_DOWNLOAD' 실행하여

                                      바로 파일 다운 받을수있다.( FILETYPE : BIN)
    EXCEPTIONS
      ERR_MAX_LINEWIDTH     = 1
      ERR_FORMAT            = 2
      ERR_CONV_NOT_POSSIBLE = 3
      OTHERS                = 4.

 

 

 

 

 

'Etc' 카테고리의 다른 글

SWM0에서 파일 다운로드하기  (0) 2023.03.22
SMW0 의 사진 띄우기(cl_gui_picture)  (0) 2022.11.02
Number Range ( T-CODE : SNRO )  (0) 2022.02.17
SUBMIT / CALL TRANSACTION  (0) 2021.11.18
SELECT OPTION, RANGES  (0) 2021.06.30