ITPub博客

首页 > 应用开发 > IT综合 > SmartForms 循环调用

SmartForms 循环调用

原创 IT综合 作者:gavin 时间:2019-02-01 14:45:05 0 删除 编辑

在循环调用报表时,如何屏蔽打印机选择对话框。

[@more@]

DATA: FNAME(30) VALUE 'ZPP16_SMARTFORM'.
DATA: FM_NAME TYPE RS38L_FNAM.
DATA: LABNOTE(20).

*&---------------------------------------------------------------------*
*& Form PRINT_FROM
*&---------------------------------------------------------------------*
FORM PRINT_FROM .

DATA: LS_CONTROL_PARAM TYPE SSFCTRLOP .
DATA: LS_COMPOSER_PARAM TYPE SSFCOMPOP .
DATA: OUTOPT TYPE SSFCRESOP.
DATA: I_JOB_OUTPUT_INFO TYPE SSFCRESCL.

LS_CONTROL_PARAM-LANGU = '1'.
LS_CONTROL_PARAM-NO_OPEN = 'X'.
LS_CONTROL_PARAM-NO_CLOSE = 'X'.

CALL FUNCTION 'SSF_OPEN'
EXPORTING
CONTROL_PARAMETERS = LS_CONTROL_PARAM
OUTPUT_OPTIONS = LS_COMPOSER_PARAM
IMPORTING
JOB_OUTPUT_OPTIONS = OUTOPT
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.
EXIT.
ENDIF.
* 根据SmartForm 名称获得Form的 Function Name
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = FNAME
* VARIANT = ' '
* DIRECT_CALL = ' '
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3 .
IF SY-SUBRC <> 0.
MESSAGE 'Call SSF_FUNCTION_MODULE_NAME Error' TYPE 'E'.
ENDIF.

IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

LOOP AT ZITAB INTO W_ZITAB.
MOVE-CORRESPONDING W_ZITAB TO I_ZITAB.
CALL FUNCTION FM_NAME
EXPORTING
CONTROL_PARAMETERS = LS_CONTROL_PARAM
OUTPUT_OPTIONS = LS_COMPOSER_PARAM
PARA2 = LABNOTE
TABLES
ZITAB = I_ZITAB
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
MESSAGE 'Call SmartForms Error' TYPE 'E'.
ENDIF.
IF OUTOPT-TDPREVIEW = 'X'.
* EXIT. "是否全部预览
ENDIF.
CLEAR I_ZITAB[].
ENDLOOP.

CALL FUNCTION 'SSF_CLOSE'
IMPORTING
JOB_OUTPUT_INFO = I_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.
ENDFORM. " PRINT_FROM

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/20037923/viewspace-1019028/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 你地,偶像是谁
请登录后发表评论 登录
全部评论

注册时间:2003-01-05

  • 博文量
    144
  • 访问量
    130678