SAP里常常要画各种smartform,并且用户还希望保存至本地PDF文件,下面就详细说明smartform转成PDF的四种方法,如果还有其他方法欢迎留言补充。
一、代码开发
1)先调用smartform函数获取OTF格式数据
2)后调用函数CONVERT_OTF转换成PDF格式数据
3)再调用GUI_DOWNLOAD函数下载
示例代码如下(本示例中需下载四个smartform对应的四个PDF文件)
METHOD DOWNLOAD_PDF.
DATA: LT_FORMNAME TYPE STANDARD TABLE OF /PICM/ADOBEFORM_STR,
LT_OTF TYPE STANDARD TABLE OF ITCOO,
LT_LINES TYPE STANDARD TABLE OF TLINE,
LT_DATA TYPE STANDARD TABLE OF ZSSD042,
LS_DATA TYPE ZSSD042,
LS_CONTROL_PARAMETERS TYPE SSFCTRLOP,
LS_OUTPUT_OPTIONS TYPE SSFCOMPOP,
LS_JOB_OUTPUT_INFO TYPE SSFCRESCL,
LV_FILENAME TYPE STRING,
LV_PATH TYPE STRING.
DATA(LV_TIME) = SY-DATUM && SY-UZEIT.
DATA(LT_VBELN) = T_ALV[].
DELETE LT_VBELN WHERE CHOOSE IS INITIAL.
SORT LT_VBELN BY VBELN.
DELETE ADJACENT DUPLICATES FROM LT_VBELN COMPARING VBELN.
IF LT_VBELN[] IS INITIAL.
MESSAGE TEXT-E03 TYPE 'E'.
ENDIF.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE
CHANGING
SELECTED_FOLDER = LV_PATH
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 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.
IF LV_PATH IS INITIAL.
RETURN.
ENDIF.
" LS_OUTPUT_OPTIONS-TDDEST = 'LP01'.
LS_OUTPUT_OPTIONS-TDIMMED = 'X'.
LS_OUTPUT_OPTIONS-TDDELETE = 'X'.
L

本文详细介绍了在SAP中将Smartform转换为PDF的四种方法:通过代码开发、打印池假脱机请求、打印预览界面直接保存以及使用PDF虚拟打印机。每种方法都提供了具体的步骤和示例,帮助用户实现Smartform到PDF的转换。
最低0.47元/天 解锁文章
226

被折叠的 条评论
为什么被折叠?



