您的位置:首页 > 其它

SAP SF打印次数统计

2016-07-01 14:59 330 查看
其实增加打印次数的难点在于:如何判断用户点了一个按钮之后,在下面弹出的窗口中到底是点的打印,还是打印预览。

因为下图中的两个按钮都是系统标准的按钮,我们没有办法加入自己的代码的,所以我们只能在Smartforms的返回信息里面找到用户是否真正打印

下面这段代码的LS_JOB_OUTPUT_INFO就是Smartforms执行之后的返回信息,只有当

LS_JOB_OUTPUT_INFO-OUTPUTDONE = 'X'的时候,才说明用户的确点了打印的按钮,然后就可以写增加打印次数的代码了。

具体增加打印次数的代码可以根据不同的程序进行不同的设计,不过都需要建一个自定义表,如果只想记录打印次数的话,就建一个以某某单据作为主键的关键字,然后每次打印的时候,先找一下这张单据有没有打印次数的记录,如果有就把打印次数加一,如果没有找到,就把打印次数设置为1,然后保存到自定义表就可以了。

FORM SMARTFORM_END .

  DATA:

  LS_JOB_OUTPUT_INFO TYPE  SSFCRESCL.

  CALL FUNCTION 'SSF_CLOSE'

    IMPORTING

      JOB_OUTPUT_INFO  = LS_JOB_OUTPUT_INFO

    EXCEPTIONS

      FORMATTING_ERROR = 1

      INTERNAL_ERROR   = 2

      SEND_ERROR       = 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.

  IF LS_JOB_OUTPUT_INFO-OUTPUTDONE = 'X'."用户的确点了打印按钮了,包括先预览之后,再点的打印

    PERFORM FRM_ADD_DYCS.

  ENDIF.

  CALL FUNCTION 'SSF_READ_ERRORS'

    IMPORTING

      ERRORTAB = ERRTAB.

ENDFORM.                    " SMARTFORM_END
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: