需求 :输入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.