ABAP-SMARTFORMS-批量打印(批量打印多个Smartforms)

*& Report  Y_CLY_SMF3
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT Y_CLY_SMF3.

START-OF-SELECTION.
  DATA: LT_DATA TYPE TABLE OF T001 WITH HEADER LINE.
  DO 4 TIMES.
    LT_DATA-BUKRS = SY-INDEX.
    APPEND LT_DATA.
  ENDDO.

  PERFORM FRM_PRINT.

*&---------------------------------------------------------------------*
*&      Form  FRM_PRINT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FRM_PRINT .
**********************************************************************
  DATA: L_FNAME  TYPE RS38L_FNAM.
  DATA: L_FNAME2 TYPE RS38L_FNAM.

  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME = 'Y_TEST_CLY_1'
    IMPORTING
      FM_NAME  = L_FNAME.

  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME = 'Y_TEST_CLY_2'
    IMPORTING
      FM_NAME  = L_FNAME2.

  DATA: L_OUTPUT_OPTIONS  TYPE SSFCOMPOP ,
        L_TMP_CONTROL_PAR LIKE SSFCTRLOP,
        L_JOB_OUTPUT_INFO TYPE SSFCRESCL  ,
        L_PRINTCOUNT TYPE I.

****以下设置打印预览功能***
*****Smart Forms: 控制结构*****
**  L_TMP_CONTROL_PAR-GETOTF        = 'X'. "这个参数一定要设:OTF 表的返回。无打印,显示或传真

*  " 直接预览,预览后可打印
  L_TMP_CONTROL_PAR-PREVIEW       = 'X'.            "
  L_TMP_CONTROL_PAR-NO_DIALOG     = 'X'.            "
  "
*  L_TMP_CONTROL_PAR-PREVIEW       = 'X'.            "
*  L_TMP_CONTROL_PAR-NO_DIALOG     = ''.            "
  " 直接打印
*  L_TMP_CONTROL_PAR-PREVIEW       = ''.            "
*  L_TMP_CONTROL_PAR-NO_DIALOG     = 'X'.            "

***  L_TMP_CONTROL_PAR-DEVICE        = 'PRINTER'.
*****SAP Smart Forms: 智能写作器 (传输) 选项*****
  L_OUTPUT_OPTIONS-TDNOPREV  = 'X'.                      "是否打印预览,X 不预览。
*  L_OUTPUT_OPTIONS-TDNOPRINT = 'X'.                      "没有打印输出,X 不显示。
  L_OUTPUT_OPTIONS-TDIMMED   = 'X'.                      "立即打印标志。
  L_OUTPUT_OPTIONS-TDIEXIT   = ''.                      "预览打印后直接退出
**  L_OUTPUT_OPTIONS-TDDEST    = 'RED_LOCAL'.              "假脱机,输出设备。

  DATA: L_LINES TYPE I.
  DATA: LV_IND TYPE I.
  DATA: G_C_X TYPE C VALUE 'X'.
  DESCRIBE TABLE LT_DATA LINES L_LINES.
  LOOP AT LT_DATA.
    LV_IND = SY-TABIX.
    CASE LV_IND.
      WHEN 1.
        L_TMP_CONTROL_PAR-NO_CLOSE = G_C_X.
        L_TMP_CONTROL_PAR-NO_OPEN  = SPACE.
      WHEN OTHERS.
        L_TMP_CONTROL_PAR-NO_CLOSE = G_C_X.
        L_TMP_CONTROL_PAR-NO_OPEN  = G_C_X.
    ENDCASE.

    CALL FUNCTION L_FNAME
      EXPORTING
        CONTROL_PARAMETERS = L_TMP_CONTROL_PAR
        OUTPUT_OPTIONS     = L_OUTPUT_OPTIONS
      IMPORTING
        JOB_OUTPUT_INFO    = L_JOB_OUTPUT_INFO.


    CASE LV_IND.
      WHEN L_LINES.
        L_TMP_CONTROL_PAR-NO_CLOSE = SPACE.
        L_TMP_CONTROL_PAR-NO_OPEN  = G_C_X.
      WHEN OTHERS.
        L_TMP_CONTROL_PAR-NO_CLOSE = G_C_X.
        L_TMP_CONTROL_PAR-NO_OPEN  = G_C_X.
    ENDCASE.
    IF L_LINES = 1 .
      L_TMP_CONTROL_PAR-NO_CLOSE = SPACE.
      L_TMP_CONTROL_PAR-NO_OPEN  = SPACE.
    ENDIF.

    CALL FUNCTION L_FNAME2
      EXPORTING
        CONTROL_PARAMETERS = L_TMP_CONTROL_PAR
        OUTPUT_OPTIONS     = L_OUTPUT_OPTIONS
      IMPORTING
        JOB_OUTPUT_INFO    = L_JOB_OUTPUT_INFO.

*
*    PERFORM FRM_SAVE_TO_PDF USING L_JOB_OUTPUT_INFO-OTFDATA[] 'strtel'.

  ENDLOOP.
ENDFORM.                    " FRM_PRINT

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值