ABAP smartfomrs 连续打印

本文介绍了如何通过编程实现需求,输入一份数据并自动生成并打印两份标签,涉及到SSF函数模块的调用、控制参数设置以及数据处理过程。
摘要由CSDN通过智能技术生成

需求 :输入1份打印两份标签
code:


      DATA: gv_sd_name TYPE rs38l_fnam,
            lv_t_sl    TYPE char20,
            lv_aufnr   TYPE aufnr,
            lv_ewm     TYPE string,
            lv_fs      TYPE int4,
            lv_lsh     TYPE int4,
            lv_clsh    TYPE char3,
            lv_bs2     TYPE i.
      DATA: ls_control    TYPE ssfctrlop.


      lv_fs = t_fs * 2.
      IF lv_fs IS INITIAL.
        MESSAGE w001(00) WITH '请输入打印份数(数字)'.
        RETURN.
      ENDIF.

      lv_t_sl = t_sl.
      CONDENSE lv_t_sl NO-GAPS .
      lv_aufnr = |{ t_aufnr ALPHA = OUT }|.


      CLEAR ls_control.
      ls_control-no_open   = 'X'.  "'X'激活此参数,不弹出预览Windows窗口(第一次默认空值)
      ls_control-no_close  = 'X'.  "'X'激活此参数,实现多数据打印
      CALL FUNCTION 'SSF_OPEN'
        EXPORTING
          control_parameters = ls_control
        EXCEPTIONS
          formatting_error   = 1
          internal_error     = 2
          send_error         = 3
          user_canceled      = 4
          OTHERS             = 5.

      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = 'ZIKEA_BQ'
*         VARIANT            = ' '
*         DIRECT_CALL        = ' '
        IMPORTING
          fm_name            = gv_sd_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.

      WHILE lv_fs > 0.
        ADD -1 TO lv_fs.
        ADD 1 TO lv_bs2.
        IF lv_bs2 = 1.
          ADD 1 TO lv_lsh.
          IF lv_lsh < 10.
            lv_clsh = '00' && lv_lsh.
          ELSEIF lv_lsh < 100.
            lv_clsh = '0' && lv_lsh.
          ELSE.
            lv_clsh = lv_lsh.
          ENDIF.
          CONCATENATE lv_aufnr '$' t_matnr '$' lv_t_sl '$' lv_clsh INTO lv_ewm.
        ELSE.
          CLEAR lv_bs2.
        ENDIF.
        CALL FUNCTION gv_sd_name
          EXPORTING
            control_parameters = ls_control
            t_aufnr            = lv_aufnr
            t_sl               = lv_t_sl
            t_maktx            = t_maktx
            t_fsczs            = t_fsczs
            t_fsclx            = t_fsclx
            t_ewm              = lv_ewm
          EXCEPTIONS
            formatting_error   = 1
            internal_error     = 2
            send_error         = 3
            user_canceled      = 4
            OTHERS             = 5.
      ENDWHILE.

      CALL FUNCTION 'SSF_CLOSE'
        EXCEPTIONS
          formatting_error = 1
          internal_error   = 2
          send_error       = 3
          OTHERS           = 4.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值