SMARTFORMS打印下载
** 打印下载pdf
FORM FRM_DOWNLOAD_PDF2 USING LV_PATH TYPE STRING "路径
LS_ITAB TYPE ZMMR00580_STUC.”smartforms打印数据
DATA: LT_OTF TYPE STANDARD TABLE OF ITCOO,
LT_LINES TYPE STANDARD TABLE OF TLINE,
LW_PATH TYPE RSPOPNAME,
LW_FUNC_NAME TYPE RS38L_FNAM,
T_CONTROL_PARAMETERS TYPE SSFCTRLOP,
T_OUTPUT_OPTIONS TYPE SSFCOMPOP,
LS_JOB_OUTPUT_INFO TYPE SSFCRESCL,
GV_SIZE TYPE I.
***获取SMARTFORMS的Function Module***
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'ZMMR00580_PF_2' "SMARTFORMS的表名
IMPORTING
FM_NAME = LW_FUNC_NAME "功能名称
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
**Smart Forms: 控制结构*****
* T_CONTROL_PARAMETERS-LANGU = SY-LANGU.
* T_CONTROL_PARAMETERS-PREVIEW = ' '. "不打印预览,X 则打印预览
* "T_CONTROL_PARAMETERS-NO_OPEN = 'X'. "新的假脱机请求(必写)
* "T_CONTROL_PARAMETERS-NO_CLOSE = 'X'. "不关闭新的假脱机请求(必写)
T_CONTROL_PARAMETERS-GETOTF = 'X'. "OTF 表的返回。无打印,显示或传真
T_CONTROL_PARAMETERS-NO_DIALOG = 'X'. "弹出打印设置的对话框,X 则不显示框
* T_CONTROL_PARAMETERS-DEVICE = 'PRINTER'. "PRINTER\MAIL\TELEFAX,缺省是PRINTER
*
*
****SAP Smart Forms: 智能写作器 (传输) 选项*****
T_OUTPUT_OPTIONS-TDNOPREV = 'X'. "是否打印预览,X是不预览。
* T_OUTPUT_OPTIONS-TDNOPRINT = ' '. "没有打印预览的打印输出,设置X。
T_OUTPUT_OPTIONS-TDIMMED = 'X'. "立即打印标志。
T_OUTPUT_OPTIONS-TDDEST = 'LP01'. "假脱机,输出设备。
T_OUTPUT_OPTIONS-TDDELETE = 'X'.
* 调用SMARTFORM
CALL FUNCTION LW_FUNC_NAME
EXPORTING
CONTROL_PARAMETERS = T_CONTROL_PARAMETERS
OUTPUT_OPTIONS = T_OUTPUT_OPTIONS
USER_SETTINGS = ' '
IMPORTING
JOB_OUTPUT_INFO = LS_JOB_OUTPUT_INFO
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
** 转换PDF
LT_OTF[] = LS_JOB_OUTPUT_INFO-OTFDATA[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
IMPORTING
BIN_FILESIZE = GV_SIZE
TABLES
OTF = LT_OTF
LINES = LT_LINES
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
DATA:LV_FILENAME TYPE STRING.
LV_FILENAME = LV_PATH && LS_ITAB-EBELN && '.PDF'.
* 下载文件
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = GV_SIZE
FILENAME = LV_FILENAME
FILETYPE = 'BIN'
TABLES
DATA_TAB = LT_LINES[]
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE 'W' NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

浙公网安备 33010602011771号