将SmartForms转换为PDF保存到本地

REPORT  ZSMARTFORMS_TO_PDF.

* Variable declarations
DATA:
W_FORM_NAME TYPE TDSFNAME VALUE 'ZTESTSMARTFORMS',"name ofsmartforms
W_FMODULE TYPE RS38L_FNAM,
W_CPARAM TYPE SSFCTRLOP,
W_OUTOPTIONS TYPE SSFCOMPOP,
W_BIN_FILESIZE TYPE I," Binary File Size
W_FILENAME TYPE STRING,
W_FILE_PATH TYPE STRING,
W_FULL_PATH TYPE STRING.

* Internal tables declaration

* Internal table to hold the OTF data
DATA:
T_OTF TYPE ITCOO OCCURS 0 WITH HEADER LINE,

* Internal table to hold OTF data recd from the SMARTFORM
T_OTF_FROM_FM TYPE SSFCRESCL,

* Internal table to hold the data from the FM CONVERT_OTF
T_PDF_TAB LIKE TLINE OCCURS 0 WITH HEADER LINE.


* This function module call is used to retrieve the name of the Function
* module generated when the SMARTFORM is activated
              CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
                EXPORTING
                  FORMNAME                 = W_FORM_NAME
*                 VARIANT                  = ' '
*                 DIRECT_CALL              = ' '
                IMPORTING
                 FM_NAME                   = W_FMODULE
              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.


* Calling the SMARTFORM using the function module retrieved above
* GET_OTF parameter in the CONTROL_PARAMETERS is set to get the OTF
* format of the output
W_CPARAM-NO_DIALOG = 'X'.
W_CPARAM-PREVIEW = SPACE. " Suppressing the dialog box

W_CPARAM-GETOTF = 'X'.                                      " for print preview

* Printer name to be used is provided in the export parameter
* OUTPUT_OPTIONS
W_OUTOPTIONS-TDDEST = 'LP01'.

CALL FUNCTION W_FMODULE
EXPORTING
* 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'
IMPORTING
* DOCUMENT_OUTPUT_INFO =
JOB_OUTPUT_INFO = T_OTF_FROM_FM
* JOB_OUTPUT_OPTIONS =
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.

t_otf[] = t_otf_from_fm-otfdata[].

* Function Module CONVERT_OTF is used to convert the OTF format to PDF

CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
* ARCHIVE_INDEX = ' '
* COPYNUMBER = 0
* ASCII_BIDI_VIS2LOG = ' '
* PDF_DELETE_OTFTAB = ' '
IMPORTING
BIN_FILESIZE = W_BIN_FILESIZE
* BIN_FILE =
TABLES
otf = T_OTF
lines = T_PDF_TAB
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.

* To display File SAVE dialog window
CALL METHOD cl_gui_frontend_services=>file_save_dialog
* EXPORTING
* WINDOW_TITLE =
* DEFAULT_EXTENSION =
* DEFAULT_FILE_NAME =
* FILE_FILTER =
* INITIAL_DIRECTORY =
* WITH_ENCODING =
* PROMPT_ON_OVERWRITE = 'X'
CHANGING
filename = W_FILENAME
path = W_FILE_PATH
fullpath = W_FULL_PATH
* USER_ACTION =
* FILE_ENCODING =
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.


* Use the FM GUI_DOWNLOAD to download the generated PDF file onto the
* presentation server

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
BIN_FILESIZE = W_BIN_FILESIZE
filename = W_FULL_PATH
FILETYPE = 'BIN'
* APPEND = ' '
* WRITE_FIELD_SEPARATOR = ' '
* HEADER = '00'
* TRUNC_TRAILING_BLANKS = ' '
* WRITE_LF = 'X'
* COL_SELECT = ' '
* COL_SELECT_MASK = ' '
* DAT_MODE = ' '
* CONFIRM_OVERWRITE = ' '
* NO_AUTH_CHECK = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* WRITE_BOM = ' '
* TRUNC_TRAILING_BLANKS_EOL = 'X'
* WK1_N_FORMAT = ' '
* WK1_N_SIZE = ' '
* WK1_T_FORMAT = ' '
* WK1_T_SIZE = ' '
* IMPORTING
* FILELENGTH =
tables
DATA_TAB = T_PDF_TAB
* FIELDNAMES =
* 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 SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

smartforms 转 PDF 直接下载至本地 1.定义 DATA: gd_path TYPE string. DATA: g_fmname TYPE rs38l_fnam. DATA: lw_ctrl_param TYPE ssfctrlop, lw_out_option TYPE ssfcompop. DATA: ls_job_output_info TYPE ssfcrescl. DATA: t_otf TYPE itcoo OCCURS 0 WITH HEADER LINE, t_pdf_tab LIKE 阅读详情

相关推荐

Smartform保存成PDF格式

要点: 1)调用Smartforms时输出OTF数据:w_cparam-getotf = 'X'. 2)调用函数CONVERT_OTF将OTF数据转换成PDF二进制文件 3)将二进制文件使用GUI_DOWNLOAD下载到本地 源码如下: REPORT  z_test_smartforms. *-------------------------------------------

Daniel_kong198577的专栏 1412

smartforms 打印转成保存在本地pdf

转自:http://www.kodyaz.com/articles/sap-smartforms-download-as-smartform-pdf-using-ws_download-and-cl_gui_frontend_services.aspx说明的很详细,代码也很明了。 形成一个url,保存地址打开smartforms执行smartforms,并返回job_output_info 类型的内表,这个smart 表接口-导出默认的转换格式fm: convert_off下载:fm : ws_downlo

SAPer 3119

SAP 将smartforms的报表转成PDF

SA将smartforms的报表转成PDF 方法一: 通过调用系统程序:RSTXPDFT4将SAPscript (OTF)或 ABAP 清单假脱机作业转换到 PDF 选择画面条件 假脱机请求 ⇒ smartforms的脱机打印号 PDF文件名  ⇒ 需要进行保存的pdf文件及路径 举例如下: *调用SAP转PDF的程序 SUBMIT R

forever_crazy的专栏 7316

sap abap,forms,smartforms 导出pdf

2. forms 和 smartforms 打印到spool 中,首先要设置个人参数文件 输出设备 ,默认输出设备LP01。3. smartforms (打印预览界面)输入PDF!,按下回车直接进入PDF打印预览的界面,而forms 是不具备的。直接打印就会弹出保存pdf文档路径,点保存。这种方式是最简单的,可 forms 和 smartforms。查到spool 假脱机号 在使用程序 RSTXPDFT4 输出pdf。

ChampaignWolf的专栏 2738

SAP自动化邮件通知:利用SMARTFORMS生成PDF并发送(ABAP实现)

本文详细介绍了在SAP系统中实现自动化邮件通知的完整方案。通过ABAP程序调用SMARTFORMS生成数据,转换为PDF格式作为附件,并利用CL_BCS类库构建和发送邮件。文章提供了从OTF数据转换、PDF生成到邮件发送的完整代码示例和关键参数配置,帮助开发者高效实现业务报告、审批通知等场景的自动化推送。

yolo5detector的博客 353

ALV和SMARTFORMS实例

ALV和SMARTFORMS实例,详细讲述了ALV和SMARTFORMS的实现过程

将smartforms的输出结果另存为是PDF格式

DATA fm_name TYPE rs38l_fnam. *通过函数来获取Smartforms函数名 CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'   EXPORTING     formname                 = 'ZSM_FI002'           "smartforms名字  IMPORTING    fm_nam

鸽子0204的专栏 726

深入解析Vivado FIFO的Standard与FWFT模式:性能对比与应用场景

本文深入解析了Vivado FIFO的Standard与FWFT两种工作模式的核心差异。通过对比数据就绪时机、读延迟、控制逻辑和有效深度等关键特性,并结合图像处理、数据包转发等典型应用场景,为FPGA设计者提供了清晰的选择依据和实战配置指南,帮助优化数据流性能与设计效率。

weixin_29219189的博客 254

SMARTFORMS | 打印成PDF解决方案

客户需要将Smartforms打印成PDF文件。找了一个现存的代码,改了一下参数就可测试了。代码:report ZABABHOME.DATA: FORM_NAME TYPE RS38L_FNAM, WA_CTRLOP TYPE SSFCTRLOP, WA_OUTOPT TYPE SSFCOMPOP, T_OTFDATA TYPE SSFCRESCL.DATA: T_P...

森林木的博客 652

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇

Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇 文章目录Oracle11g安装教程、配置实例、监听、客户端程序详解_Windows篇前言一、数据库的安装前准备,前提是没有安装过!!!二、仅安装数据库软件(数据库运行环境)三、添加数据库实例四、设置监听程序,让数据库可以通过网络访问五、为目标数据库设置网名总结 前言 如果需要安装包:联系我看到会给你链接,因为现在官网已经不提供10g,11g的安装包了,在网盘保存望悉知(回复不会很及时,下班看到会回复敬请谅解)。 提示:以下

zhx__的博客 5630

关于DHCP Option60的认识

<br />       最近在网络建设过程中,必须面对一个实际存在的问题:当只有一根线入户时,该如何解决CATV和宽带业务的共存呢?这时就要考虑用到DHCP Option60了,那么DHCP Option60到底是如何来实现业务区分的呢?<br />首先先来看下DHCP协议,在DHCP协议中,定义了一个option字段,该字段主要是用来扩展DHCP协议的,Option 60 (Vendor class identifier)是DHCP报文中的一个选项字段,code为60,可以标识终端类型,根据不同的终

luoyingchuan的专栏 7940

smartforms以PDF打印预览

Smartforms打印预览的时候,传统的打印预览方式无法支持放大、缩小进行预览(可以看到预览界面上放大、缩小按钮是灰掉的)。那么如何才能放大、缩小进行预览?目前我所知的方法有二:NO.1...

yannickdann的博客 2384

51单片机基础知识

前言 周末闲着无聊,以后定时更新一期关于51单片机的学习案例,以供大家平时参考使用。至于单片机,你可以理解为人的大脑,而人各项身体器官的运作需要意识给到大脑,然后大脑再驱动我们的中枢神经进行相应的动作,这里的意识可以理解为我们要写的程序,而人的器官相当于各种输出设备,例如我们以后要学的LED、电机、各种传感器等等。学好单片机能让你找到一份相对不错的工作,当然越可观的东西也是要付出相应努力的。 一、51单片机是什么? 通常我们一说到 51 单片机,指的都是兼容IntelMCS-51体系架构的一系列单片机,而

qq_43537819的博客 6903

SMARTFORMS转换成PDF,下载到本地

【代码】SMARTFORMS转换成PDF,下载到本地。

qq_50300216的博客 365

从零到一:YT8512C PHY芯片在STM32F407上的LWIP移植实战与避坑指南

本文详细介绍了YT8512C PHY芯片在STM32F407平台上基于LWIP协议栈的移植实战,涵盖硬件连接、CubeMX配置、寄存器定制和调试技巧。重点解析了与主流PHY芯片的差异,提供了完整的避坑指南和优化建议,帮助开发者快速实现稳定可靠的嵌入式网络连接。

uber9的博客 538

IEEE Journal of Biomedical and Health Informatics(JBHI)投稿经验分享

《IEEE Journal of Biomedical and Health Informatics投稿经验分享》详细记录了在影响因子6.7的中科院一区期刊JBHI的投稿历程(2025.1-5月,历时4个月)。文章重点分析:1)审稿特色:4位审稿人差异显著,领域专家意见专业但要求严苛;2)修改要点:需重视大修(补充实验/原理阐述),并注意将回复内容同步至正文;3)期刊特点:送审率高但审稿严格,常规投稿周期约4-5个月;4)实用建议:建议首次大修全力以赴,善用AI工具辅助写作,避免拖延。

LiRongLu_的博客 5075

SMARTFORMS打印后转存为PDF文件相关问题

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 sp

少年休闲海 4746

把消息说清楚:OData V2 的 sap-message、错误体 errordetails 与 ABAP 端落地实践(Gateway Foundation / RAP)

OData V2消息机制解析:SAP业务系统的结构化通信设计 本文深入剖析了SAP系统中OData V2协议的消息传递机制。该设计通过双通道(成功时使用sap-message响应头,失败时采用error响应体)实现业务数据与提示信息的结构化分离,解决了企业级应用中"只返回业务数据"或"简单报错"的不足。文章详细解读了消息结构中的关键要素:target字段实现精准UI定位、severity级别控制交互流程、transition标记区分状态消息与过渡消息。同时揭示了SAP

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 851

SMARTFORMS 转为PDF

SMARTFORMS 转化为PDF

qq_40370362的博客 655

KUKA机器人修改机器人名称和IP地址的具体方法示例

KUKA机器人修改机器人名称和IP地址的具体方法示例

Robot_PLC_HMI_Automation 5259

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: abap动态内表
下一篇: ALE development
java_smalltalk
博客等级 码龄20年 8粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值