`
zjut_xiongfeng
  • 浏览: 286879 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

将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.

分享到:
评论

相关推荐

    sap abap smartforms(本人自己写的)

    SAP ABAP Smartforms 是一种用于创建和管理电子表格和表单的SAP工具,它允许用户在SAP系统中定制打印表单,使表单设计更加灵活、高效。它基于ABAP面向对象的编程技术和SAPScript的传统打印表单设计,被广泛应用于...

    SAPGUI770 SMARTFORMS 插件

    6. **打印和导出功能**:生成的SMARTFORMS可以轻松打印或导出为PDF、Excel等格式,便于分发和存档。 7. **版本控制**:SMARTFORMS允许维护多个版本,方便更新和回滚,确保业务连续性。 8. **集成到业务流程**:...

    SAP 打印smartforms教程

    本教程将围绕Smartforms展开,涵盖如何新建样式、添加图片、设置纸张格式以及打印条形码或二维码。 1. **新建样式**:在Smartforms中,样式定义了打印输出的整体布局和格式。"smartforms打印新建样式.docx"可能详细...

    SAP SmartForms开发示例1.1.docx

    本文将对SAP SmartForms进行详细的介绍,并通过实例讲解SmartForms的开发步骤。 一、SAP SmartForms概述 SAP SmartForms是SAP系统中的报表制作工具,用于创建复杂的商业报表。SmartForms可以根据业务需求,生成...

    SAP Gui77 smartforms 插件,解决 smartforms 运行异常问题

    当Smartforms遇到运行异常时,可能表现为错误消息、表单无法正常显示或功能失效。 描述中提到的"插件"通常是为了增强或修复原生功能而开发的第三方组件。在这种情况下,SAP Gui77 Smartforms 插件可能是由SAP官方或...

    SAP_SMARTFORMS.zip

    在SAP系统中,访问权限是基于角色分配的,如果用户的角色未包含编辑SmartForms的权限,他们将无法进行修改。 2. **软件版本冲突**:更新或补丁安装不正确可能导致SmartForms组件与系统其他部分不兼容,从而影响编辑...

    SAP smartforms 标准教材

    - **发布和集成**:完成表单后,将其发布到生产系统,并在需要的地方调用,如ABAP报告、BADI或BAPI。 4. **SmartForms与ABA Programs的区别** 相比传统的ABAP编程创建输出,SmartForms提供了更直观的用户界面和更...

    SAP  smartforms 插件

    此外,可以设置不同的输出选项,如直接打印、保存到文件或发送电子邮件。 6. **集成与兼容性**:SmartForms与其他SAP组件如Workflow、Adobe Forms等无缝集成,可以在SAP业务流程中扮演重要角色。同时,它还与多种...

    smartforms

    在ABAP开发中,Smartforms是一种强大的工具,用于创建复杂的打印输出和报告。它结合了图形化的用户界面和编程逻辑,使得设计和实现业务文档变得更为直观和高效。以下是对Smartforms的详细步骤和相关知识点的说明: ...

    ABAP_Smartforms_学习操作手册

    ### ABAP Smartforms 学习操作手册精要 #### SMARTFORMS:新一代报表设计利器 SMARTFORMS,作为SAPScript的升级版,是SAP系统中用于设计和生成复杂打印输出的一种强大工具。与传统的SAPScript相比,SMARTFORMS提供...

    ALV & SMARTFORMS 并分页

    本篇文章将深入探讨这两者,并结合“分页”这一功能,来阐述如何在实际应用中高效地处理大量数据。 ALV是一个标准的SAP图形用户界面组件,用于以表格形式展示数据。它提供了丰富的交互性,如排序、过滤、选择等。...

    SAP smartforms 例子

    自己工作中开发的smartforms程序,有打印SO,DO,Billing等等,可以直接上载到sap系统查看参考,希望对大家有帮助,由于是本人亲自写出来的心血,因此,对初学smartforms的同学有很大的帮助哦!

    smartforms操作手册

    4. **处理输出**:Smartform执行后,可以将结果保存到内部表或直接打印。使用`OUTPUT TO`或`OUTPUT AS`语句可以控制输出目的地。 5. **错误处理**:在调用Smartform后,检查返回的错误信息,通过`IF sy-subrc &lt;&gt; 0`...

    SAP SmartForms Template-Table-Loop-Command

    通过上述代码,可以看到开发者是如何将数据库中的数据(ZZZ_MAKT)加载到内部表(ITAB)中,并通过Loop遍历该表。在每次迭代中,数据会被填充到Template中预设的Text Elements,进而形成一致且格式化的输出。最后,...

    SAP SmartForms

    ### SAP SmartForms:深入解析与应用实例 #### 核心概念与作用 SAP SmartForms是一种用于在SAP系统中创建复杂...对于刚接触ABAP的开发者来说,掌握SmartForms将极大地提高他们在SAP环境下的工作效率和项目实施能力。

    SAP Smartforms (IBM官方培训教程)

    7. **打印和导出**:Smartforms生成的表单可以直接打印,也可以导出为PDF、RTF等格式,便于电子分发和存档。此外,Smartforms还可以与SAP的Print Control集成,实现更高级的打印设置和模板管理。 8. **版本管理和...

    smartforms表单制作说明

    1. **打开SMARTFORMS界面**: 在工具栏中选择“打印表格”&gt;“SMARTFORMS-智能表格”,这将引导您进入SMARTFORMS的设计环境。 2. **创建表格**: 在SMARTFORMS界面中,选择“表格”单选按钮,输入表格名称(如ZMMF015...

    Smartforms简单介绍

    SmartForms 帮助程序中内表数据传递到 SmartForms 里的几种方法有:接口内表和用 memory id 或簇数据库。这两种方法都有其优点和缺点,需要根据实际情况选择合适的方法。 在 SmartForms 中,背景图片上传可以通过 ...

    SMARTFORMS使用自定义的表结构

    本文将详细介绍如何在SMARTFORMS中使用自定义的表结构来实现更加灵活的数据展示功能。 #### SMARTFORMS基础知识 SMARTFORMS的设计主要包括以下几个方面: 1. **表格属性设置**:包括输出选项(页格式、字符密度等...

Global site tag (gtag.js) - Google Analytics