博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SMARTFORMS打印后转存为PDF文件相关问题
阅读量:2034 次
发布时间:2019-04-28

本文共 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/

你可能感兴趣的文章
UML类图详细介绍
查看>>
[Spring MVC] - JSP + Freemarker视图解释器整合
查看>>
gradle windows下安装使用 以及 gradle项目与maven项目互转
查看>>
shiro 登录不执行授权回调方法doGetAuthorizationInfo
查看>>
Apache Shiro验证: 已记住(Remembered) vs 已验证(Authenticated)
查看>>
shiro中 subject.getPrincipal() getPrimaryPrincipal()及第六章 Realm及相关对象
查看>>
一个shiro授权的执行顺序
查看>>
js字符串截取函数slice()、substring()、substr()
查看>>
redis动态扩展内存
查看>>
linux root给其他用户赋予某个文件夹权限
查看>>
Redis 集群搭建
查看>>
Linux下查看某个端口下运行的程序
查看>>
细说Redis监控和告警
查看>>
服务器的上行和下行带宽
查看>>
计算一个接口的返回值大小(占用内存)
查看>>
jedis : NoSuchMethodError: org.springframework.util.Assert.isTrue(ZLjava/util/function/Supplier
查看>>
Redis RedisCluster Spring整合
查看>>
Linux中Swap与Memory内存简单介绍
查看>>
常见JedisConnectionException异常分析
查看>>
linux下常见命令
查看>>