ABAP问题记录--->区分ALV上点击打印预览和打印

当点击ALV的打印按钮后,选择打印预览时不调用单号生成FORM,只有当点击的是打印的时候才会调用。

代码加在调用SF之后,关闭SF之前。

 "如果为X 就是预览 否则就直接打印
  IF LS_OUTOPT-TDPREVIEW = 'X'.
  ELSE.
    "生成单号
    PERFORM FRM_CREATE_QY USING IT_ROWS .
  ENDIF.

在这里插入图片描述

具体代码:

FORM FRM_PRINT_FORM USING IT_ROWS TYPE LVC_T_ROID.
	DATA: LV_FNAME           TYPE TDSFNAME,
        LS_CONTROL_PARAM   TYPE SSFCTRLOP,
        LS_COMPOSER_PARAM  TYPE SSFCOMPOP,
        LS_OUTOPT          TYPE SSFCRESOP,
        LS_JOB_OUTPUT_INFO TYPE SSFCRESCL.
        
	CALL FUNCTION 'SSF_OPEN'
    EXPORTING
      CONTROL_PARAMETERS = LS_CONTROL_PARAM
      OUTPUT_OPTIONS     = LS_COMPOSER_PARAM
    IMPORTING
      JOB_OUTPUT_OPTIONS = LS_OUTOPT
    EXCEPTIONS
      FORMATTING_ERROR   = 1
      INTERNAL_ERROR     = 2
      SEND_ERROR         = 3
      USER_CANCELED      = 4
      OTHERS             = 5.

  "GET FORM NAME
  CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
    EXPORTING
      FORMNAME = GC_FORMNAME
    IMPORTING
      FM_NAME  = LV_FNAME.
  IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
  ENDIF.

  LS_CONTROL_PARAM-LANGU    = SY-LANGU.
  LS_CONTROL_PARAM-NO_OPEN  = GC_FLAG_X.
  LS_CONTROL_PARAM-NO_CLOSE = GC_FLAG_X.

  LT_DATA  = VALUE #( FOR LS_ROW IN IT_ROWS
                   ( CORRESPONDING #( VALUE #( GT_DATA[ LS_ROW-ROW_ID ] OPTIONAL ) ) ) ).
 CALL FUNCTION LV_FNAME
      EXPORTING
        CONTROL_PARAMETERS = LS_CONTROL_PARAM
        OUTPUT_OPTIONS     = LS_COMPOSER_PARAM
*       USER_SETTINGS      = ''
        GS_HEADER          = LS_DATA
      TABLES
        GT_DATA            = LT_DATA
      EXCEPTIONS
        FORMATTING_ERROR   = 1
        INTERNAL_ERROR     = 2
        SEND_ERROR         = 3
        USER_CANCELED      = 4
        OTHERS             = 5.
    IF SY-SUBRC <> 0.
* IMPLEMENT SUITABLE ERROR HANDLING HERE
    ENDIF.
  ENDLOOP.

  "如果为X 就是预览 否则就直接打印
  IF LS_OUTOPT-TDPREVIEW = 'X'.
  ELSE.
    "生成单号
    PERFORM FRM_CREATE_QY USING IT_ROWS .
  ENDIF.

  CALL FUNCTION 'SSF_CLOSE'
    IMPORTING
      JOB_OUTPUT_INFO  = LS_JOB_OUTPUT_INFO
    EXCEPTIONS
      FORMATTING_ERROR = 1
      INTERNAL_ERROR   = 2
      SEND_ERROR       = 3
      OTHERS           = 4.
ENDFORM.
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值