Smartforms中的PrintPreview和PDF

2020-09-02 20:29发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我想显示智能表单的打印预览,然后从那里将其转换为PDF。

如果我将Get OTF设置为" X",则printpreview不起作用,仅pdf正在创建。

我正在使用'CONVERT_OTF'进行转换。

是否可以使用PrintPreview和PDF。

我通过论坛了解到,我们可以通过两次调用smartforms来达到目的,但是我不想调用smartforms 2 时间。还有其他方法可以实现这一目标。

请咨询。

感谢与问候,

Karthik。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我想显示智能表单的打印预览,然后从那里将其转换为PDF。

如果我将Get OTF设置为" X",则printpreview不起作用,仅pdf正在创建。

我正在使用'CONVERT_OTF'进行转换。

是否可以使用PrintPreview和PDF。

我通过论坛了解到,我们可以通过两次调用smartforms来达到目的,但是我不想调用smartforms 2 时间。还有其他方法可以实现这一目标。

请咨询。

感谢与问候,

Karthik。

付费偷看设置
发送
11条回答
空代码
1楼-- · 2020-09-02 21:32
报告zsuresh_test。


 变量声明
 数据:
 w_form_name TYPE tdsfname VALUE'ZSURESH_TEST',
 w_fmodule TYPE rs38l_fnam,
 w_cparam TYPE ssfctrlop,
 w_outoptions TYPE ssfcompop,
 W_bin_filesize TYPE i,"二进制文件大小
 w_FILE_NAME类型的字符串,
 w_File_path类型字符串,
 w_FULL_PATH类型字符串。


 内部表声明


 内部表用于保存OTF数据
 数据:
 t_otf TYPE itcoo发生在标题行中的0,


 内部表用于保存从SMARTFORM记录的OTF数据
 t_otf_from_fm TYPE ssfcrescl,


 内部表用于保存FM CONVERT_OTF中的数据
 T_pdf_tab与标题行类似的tline发生0。


 该功能模块调用用于检索功能名称
 激活SMARTFORM时生成的模块

 通话功能" SSF_FUNCTION_MODULE_NAME"
 出口
 形式名称= w_form_name

 变量=''
 DIRECT_CALL =''
 输入
 fm_name = w_fmodule
 例外情况
 no_form = 1
 no_function_module = 2
 其他= 3
 。
 如果sy-subrc 0。
 消息ID sy-msgid类型sy-msgty编号sy-msgno
 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
 万一。


 使用上面获取的功能模块调用SMARTFORM
 CONTROL_PARAMETERS中的GET_OTF参数设置为获取OTF
 输出格式
 w_cparam-no_dialog ='X'。
 w_cparam-preview =空间。  "禁止显示对话框
 "用于打印预览
 w_cparam-getotf ='X'。



 导出参数中提供了要使用的打印机名称
 OUTPUT_OPTIONS
 w_outoptions-tddest ='LP01'。

 呼叫功能w_fmodule
 出口

 ARCHIVE_INDEX =
 ARCHIVE_INDEX_TAB =
 ARCHIVE_PARAMETERS =
 control_parameters = w_cparam

 MAIL_APPL_OBJ =
 MAIL_RECIPIENT =
 MAIL_SENDER =
 output_options = w_outoptions

 USER_SETTINGS ='X'
 输入

 DOCUMENT_OUTPUT_INFO =
 job_output_info = t_otf_from_fm

 JOB_OUTPUT_OPTIONS =
 例外情况
 formatting_error = 1
 internal_error = 2
 send_error = 3
 user_canceled = 4
 其他= 5
 。
 如果sy-subrc 0。
 消息ID sy-msgid类型sy-msgty编号sy-msgno
 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。
 万一。

 t_otf] = t_otf_from_fm-otfdata [。


 功能模块CONVERT_OTF用于将OTF格式转换为PDF

 通话功能'CONVERT_OTF'
 出口
 格式='PDF'
 MAX_LINEWIDTH = 132

 ARCHIVE_INDEX =''
 COPYNUMBER = 0
 ASCII_BIDI_VIS2LOG =''
 PDF_DELETE_OTFTAB =''
 输入
 BIN_FILESIZE = W_bin_filesize

 BIN_FILE =
 桌子
 otf = T_OTF
 行= T_pdf_tab
 例外情况
 ERR_MAX_LINEWIDTH = 1
 ERR_FORMAT = 2
 ERR_CONV_NOT_POSSIBLE = 3
 ERR_BAD_OTF = 4
 其他= 5
 。
 如果sy-subrc 0。
 消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
 与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
 万一。


 显示文件保存对话框窗口
 呼叫方法cl_gui_frontend_services => file_save_dialog

 出口
 WINDOW_TITLE =
 DEFAULT_EXTENSION =
 DEFAULT_FILE_NAME =
 FILE_FILTER =
 INITIAL_DIRECTORY =
 WITH_ENCODING =
 PROMPT_ON_OVERWRITE ='X'
 改变
 文件名= w_FILE_NAME
 路径= w_FILE_PATH
 全路径= w_FULL_PATH

 USER_ACTION =
 FILE_ENCODING =
 例外情况
 CNTL_ERROR = 1
 ERROR_NO_GUI = 2
 NOT_SUPPORTED_BY_GUI = 3
 其他= 4
 。
 如果sy-subrc 0。
 消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
 与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
 万一。


 使用FM GUI_DOWNLOAD将生成的PDF文件下载到
 展示服务器

 通话功能'GUI_DOWNLOAD'
 出口
 BIN_FILESIZE = W_bin_filesize
 文件名= w_FULL_PATH
 FILETYPE ='BIN'

 APPEND =''
 WRITE_FIELD_SEPARATOR =''
 标题='00'
 TRUNC_TRAILING_BLANKS =''
 WRITE_LF ='X'
 COL_SELECT =''
 COL_SELECT_MASK =''
 DAT_MODE =''
 CONFIRM_OVERWRITE =''
 NO_AUTH_CHECK =''
 CODEPAGE =''
 IGNORE_CERR = ABAP_TRUE
 替换='#'
 WRITE_BOM =''
 TRUNC_TRAILING_BLANKS_EOL ='X'
 WK1_N_FORMAT =''
 WK1_N_SIZE =''
 WK1_T_FORMAT =''
 WK1_T_SIZE =''
 输入
 文件长度=
 桌子
 data_tab = T_pdf_tab

 FIELDNAMES =
 例外情况
 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
 其他= 22
 。
 如果sy-subrc 0。

 消息ID SY-MSGID类型SY-MSGTY编号SY-MSGNO
 与SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4。
 万一。
 

<被管理员删除>

作者:Alvaro Tejada Galindo,2008年2月14日上午9:32

打个大熊猫
2楼-- · 2020-09-02 21:17

您好,Karthi,能告诉我解决方案吗……..

黑丝骑士
3楼-- · 2020-09-02 21:29

使用打印预览创建假脱机编号。

然后使用pgm RSTXPDFT4将线轴转换为pdf

<被管理员删除>

编辑:Alvaro Tejada Galindo,2008年2月14日上午9:33

闻人可可
4楼-- · 2020-09-02 21:20

Hello Kranthi,

我面临直接将pdf格式化的相同问题,但是我的用户首先要2 priview,然后PDF才建议提出建议。

谢谢

Sam

悠然的二货
5楼-- · 2020-09-02 21:31

我已经两次叫过Smartforms

Haoba3210
6楼-- · 2020-09-02 21:32

嗨,

从smartforms的printpreview选项返回时,我无法获得后台打印编号。仅在打印时才能获取后台打印编号。如何获取后台打印编号。

是否可以获取打印预览的线轴编号。

谢谢。

编辑:karthi keyan于2008年2月15日下午3:51

一周热门 更多>