기존에 개발된 것이 있어서...
'SSFCOMP_PDF_PREVIEW' 펑션으로 미리보기가 되긴합니다.
그담에 PDF파일을 저장하기 위해서, 미리보기후, 저장버튼으로 저장하곤하는데!!
=====================미리보기 펑션======================
CALL FUNCTION 'SSFCOMP_PDF_PREVIEW'
EXPORTING
I_OTF = P_OTF_TAB.
================================================
미리보기까지 굳이 들어갈 필요없이
원하는 저장위치경로(원하는 IP주소의 PATH)를 미리지정해서
해당위치에 PDF파일로 저장하는 방법은 없을까요??
고수님들...이쪽엔 문외한이라...
펑션이라 기능들이 있다면,
적절한 예제를 들어
구체적인 답변좀 부탁드리겠습니다.
댓글 4
-
김지성
2009.01.09 00:04
-
김지성
2009.01.09 00:10
DATA: G_FORMNAME TYPE TDSFNAME." VALUE 'SMARTFORM_NAME'.
DATA: GS_CONTROL_PARAMETERS TYPE SSFCTRLOP,
GS_OUTPUT_OPTIONS TYPE SSFCOMPOP.
DATA: JOB_OUTPUT_INFO TYPE SSFCRESCL.
DATA: L_SPOOLIDS LIKE TSP01-RQIDENT,
L_FILENAME LIKE RLGRAP-FILENAME.
DATA: T_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,
T_PDF_TAB LIKE TLINE OCCURS 0 WITH HEADER LINE.
DATA: W_FILESIZE TYPE I.
DATA: W_BIN_FILESIZE TYPE I.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = G_FORMNAME
IMPORTING
FM_NAME = L_FM_NAME.
GS_CONTROL_PARAMETERS-NO_DIALOG = 'X'. "NO DIALOG
GS_CONTROL_PARAMETERS-GETOTF = 'X'.
GS_OUTPUT_OPTIONS-TDNOPREV = 'X'.
CALL FUNCTION L_FM_NAME " 이부분은 스마트폼 Parameter와 동일하게
EXPORTING
CONTROL_PARAMETERS = GS_CONTROL_PARAMETERS
OUTPUT_OPTIONS = GS_OUTPUT_OPTIONS
GS_HEAD = GS_HEAD
G_TYPE = G_TYPE
IMPORTING
JOB_OUTPUT_INFO = JOB_OUTPUT_INFO
TABLES
GT_DETAIL = GT_DETAIL
GT_TEXT = GT_TEXT.
L_FNAME = 'Test.PDF'. " PDF 파일명
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
*
T_OTF[] = JOB_OUTPUT_INFO-OTFDATA[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
* ARCHIVE_INDEX = ' '
IMPORTING
BIN_FILESIZE = W_BIN_FILESIZE
TABLES
OTF = T_OTF
LINES = T_PDF_TAB
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
OTHERS = 4
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
* Open save dialog 파일 선택 대화상자가 없을 경우
* L_FILENAME 변수에 저장할 위치 설정
CALL FUNCTION 'Z_SM_DOWNLOAD_POPUP'
EXPORTING
I_TITLE = 'save pdf file...'
I_FILETYPE = 'pdf'
I_FILENAME = L_FNAME
I_FILTER = 'pdf'
IMPORTING
E_FILEPATH = L_FILENAME.
**
IF NOT L_FILENAME IS INITIAL. "init eq cancelled.
CALL FUNCTION 'WS_DOWNLOAD'
EXPORTING
BIN_FILESIZE = W_BIN_FILESIZE
* CODEPAGE = ' '
FILENAME = L_FILENAME
FILETYPE = 'BIN'
* MODE = ' '
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* COL_SELECT = ' '
* COL_SELECTMASK = ' '
* NO_AUTH_CHECK = ' '
* IMPORTING
* filelength = w_filesize
TABLES
DATA_TAB = T_PDF_TAB
* FIELDNAMES =
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_WRITE_ERROR = 2
INVALID_FILESIZE = 3
INVALID_TYPE = 4
NO_BATCH = 5
UNKNOWN_ERROR = 6
INVALID_TABLE_WIDTH = 7
GUI_REFUSE_FILETRANSFER = 8
CUSTOMER_ERROR = 9
OTHERS = 10
.
IF SY-SUBRC <> 0.
MESSAGE S000 WITH 'File not downloaded succesfully..'.
ELSE.
ENDIF.
-
대지꿀꾸링
2009.01.09 00:11
권한있다고 가정시 다른위치 경로로 저장하는 방법이나...
자동저장 하는 방법좀...;;;
-
김지성
2009.01.09 00:47
L_FILENAME 에 저장 위치 넣으세요
다른 컴퓨터(IP 주소)로 저장시 권한만 있다면 가능합니다.