本文共 3296 字,大约阅读时间需要 10 分钟。
1.转成PDF文件时可以参考的函数(本人只试过一种其它有待尝试):
CONVERT_OTFSPOOLJOB_2_PDF;
CONVERT_OTF_2_PDF; SX_OBJECT_CONVER_OTF_PDF; HRHAP_DOC_CONVERT_SMF_TO_PDF.2.保存后出现了乱码(建议ADOBE READER最新的来读,可以避免乱码,不行了才找其它原因)
t-code spad
新建一个输出设备或用LP01,关键是选对设备类型,据说CN 开头的都是可以的。 例如 CNSAPWIN : MS WINDOWS DRIVER VIA SPLPD 然后保存就行了 调用smartforms的时候,用刚定义的这个就行了 调用SMARTFORMS里面有个相关参数可以适当修改(有些不是必须的根据自己情况设置)(DATA L_CONTROL_PARAMETERS TYPE SSFCTRLOP.)
L_CONTROL_PARAMETERS-GETOTF = ‘X’. “此参数必须,不然不会导出PDF而直接显示smartform L_CONTROL_PARAMETERS-NO_CLOSE = ”. L_CONTROL_PARAMETERS-NO_DIALOG = ‘X’. “不显示打印对话框 (DATA L_OUTPUT_OPTIONS TYPE SSFCOMPOP.) L_OUTPUT_OPTIONS-BCS_LANGU = ‘1′. L_OUTPUT_OPTIONS-TDDEST = ‘DEFAULT’.3.以下打印时调用部分参考代码
FORM FRM_USER_COMMAND_ALV USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE SLIS_SELFIELD.”行数 *—>smartforms 中相关参数定义 DATA:L_FM_NAME TYPE RS38L_FNAM. DATA:L_JOB_OUTPUT_INFO TYPE SSFCRESCL, L_JOB_OUTPUT_OPTIONS TYPE SSFCRESOP, L_LEN TYPE I. DATA L_CONTROL_PARAMETERS TYPE SSFCTRLOP. DATA L_OUTPUT_OPTIONS TYPE SSFCOMPOP. DATA BEGIN OF LT_PDF OCCURS 10. INCLUDE STRUCTURE TLINE. DATA END OF LT_PDF.CASE R_UCOMM.
WHEN ‘&ZRNT’.CLEAR: L_FM_NAME.
REFRESH IT_HEAD . IT_HEAD = IT_ALV. DELETE ADJACENT DUPLICATES FROM IT_HEAD COMPARING RSNUM.CALL FUNCTION ‘SSF_FUNCTION_MODULE_NAME’
EXPORTING FORMNAME = ‘ZMMR03′ * VARIANT = ‘ ‘ * DIRECT_CALL = ‘ ‘ IMPORTING FM_NAME = L_FM_NAME * EXCEPTIONS * NO_FORM = 1 * NO_FUNCTION_MODULE = 2 * OTHERS = 3 . IF SY-SUBRC <> 0. * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. L_CONTROL_PARAMETERS-GETOTF = ‘X’. “此参数必须,不然不会导出PDF而直接显示smartform L_CONTROL_PARAMETERS-NO_CLOSE = ”. * L_CONTROL_PARAMETERS-NO_DIALOG = ‘X’. “不显示打印对话框 * L_OUTPUT_OPTIONS-BCS_LANGU = ‘1′. * L_OUTPUT_OPTIONS-TDDEST = ‘DEFAULT’.CALL FUNCTION L_FM_NAME
EXPORTING * ARCHIVE_INDEX = * ARCHIVE_INDEX_TAB = * ARCHIVE_PARAMETERS = CONTROL_PARAMETERS = L_CONTROL_PARAMETERS * MAIL_APPL_OBJ = * MAIL_RECIPIENT = * MAIL_SENDER = OUTPUT_OPTIONS = L_OUTPUT_OPTIONS USER_SETTINGS = ‘X’ IMPORTING * DOCUMENT_OUTPUT_INFO = JOB_OUTPUT_INFO = L_JOB_OUTPUT_INFO JOB_OUTPUT_OPTIONS = L_JOB_OUTPUT_OPTIONS TABLES IT_ALV = IT_ALV IT_HEAD = IT_HEAD * 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. IF SY-SUBRC EQ 0. *—>转成PDF CALL FUNCTION ‘CONVERT_OTF’ EXPORTING FORMAT = ‘PDF’ * MAX_LINEWIDTH = 132 * ARCHIVE_INDEX = ‘ ‘ * COPYNUMBER = 0 * ASCII_BIDI_VIS2LOG = ‘ ‘ * PDF_DELETE_OTFTAB = ‘ ‘ IMPORTING BIN_FILESIZE = L_LEN * BIN_FILE = TABLES OTF = L_JOB_OUTPUT_INFO-OTFDATA LINES = LT_PDF[] * 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. IF SY-SUBRC EQ 0. *—>下载 CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD EXPORTING BIN_FILESIZE = L_LEN FILENAME = P_FNAME ”此处是路径,例D:\TEMP.PDF FILETYPE = ‘BIN’ CHANGING DATA_TAB = LT_PDF[] EXCEPTIONS OTHERS = 1. IF SY-SUBRC <> 0. *MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno *WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ENDIF. ENDIF. ENDCASE.ENDFORM. “user_command
转载地址:http://dvhaf.baihongyu.com/