• 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'.


  • 相关阅读:
    乘法相关
    hdu 1211 RSA (逆元)
    hdu 1811 Rank of Tetris (拓扑 & 并查集)
    hdu 2153 仙人球的残影
    hdu 1426 Sudoku Killer (dfs)
    hdu 2510 符号三角形 (DFS+打表)
    zoj 1002 Fire Net (二分匹配)
    hdu 1172 猜数字
    hdu 1728 逃离迷宫 (bfs)
    《Effective C++》笔记:III(转载)
  • 原文地址:https://www.cnblogs.com/cnlmjer/p/4099777.html
Copyright © 2020-2023  润新知