zoukankan      html  css  js  c++  java
  • SAP 调用smartforms打印如何统计实际打印状态和打印次数

    SAP技术人员,很多时候记录某张单据是否打印已经打印次数,通过记录用户点击 “打印预览”的次数,大多数情况,客户没有特殊要求的,这样操作就可以满足要求。

    另外一种情况是,客户想要更加准确的记录是否真正打印的状态和次数,这中情况下,我们就必须通过记录用户 点击“打印”按钮之后的状态了,具体操作如下:

      DATA:lw_output    TYPE ssfcompop

      DATA: lw_ssfcrescl TYPE ssfcrescl.
      DATA: FM_NAME TYPE RS38L_FNAM.

      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = 'ZPP023'      "创建的FORM名称
    *     VARIANT            = ' '
    *     DIRECT_CALL        = ' '
        IMPORTING
          fm_name            = 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.

      CALL FUNCTION fm_name

       EXPORTING
          output_options  = lw_output
        IMPORTING
          job_output_info  = lw_ssfcrescl
        TABLES
          gt_header        = gt_head[]     "导入的抬头内表
          gt_item          = gt_item[]        "导入的行项目内表
        EXCEPTIONS
          formatting_error = 1
          internal_error   = 2
          send_error       = 3
          user_canceled    = 4
          OTHERS           = 5.

    上面程序为用户调用smartforms程序,注意参数lw_ssfcrescl,

    当用户点击“打印”按钮时,可得 lw_ssfcrescl-outputdone = 'X',此时即可记录当前打印状态为  “已打印”

    如果要正确统计打印次数的话,还必须在打印预览界面控制点击"打印"按钮就马上返回到结果界面或者查询界面,要通过如下参数控制:
    lw_output-tdiexit = 'X'.


  • 相关阅读:
    POJ1845 数论 二分快速取余
    CentOS6.5下安装wine
    Centos 6.5中安装后不能打开emacs的问题
    vim编辑器的设置文件
    centos无线网卡设置
    FreeBSD简单配置SSH并用root远程登陆方法
    在CentOS/RHEL 6.5上安装Chromium 谷歌浏览器
    Centos中安装Sublime编辑器
    强连通分量!
    强连通分量
  • 原文地址:https://www.cnblogs.com/cnlmjer/p/4099777.html
Copyright © 2011-2022 走看看