"SMARTFORMS变量定义"
DATA: form_name TYPE tdsfname VALUE 'ZZ_TEST', "Smartforms Name"
fm_name type rs38l_fnam, "Function Name"
control type ssfctrlop, "Control structure"
option type ssfcompop, "Smart Composer (transfer) options"
ssfcrescl type ssfcrescl. "Return value at end of form printing"
"获取SMARTFORMS经由SAP编译后的函数名"
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = form_name
* VARIANT = ' '
* direct_call = ' '
IMPORTING
FM_NAME = fm_name "接收返回值"
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
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.
" Parameters when call smartforms "
clear control.
control-no_open = 'X'.
control-no_close = 'X'.
control-langu = sy-langu.
control-no_dialog = space.
control-preview = 'X'.
clear option.
option-tddest = ''.
option-tdimmed = ''.
option-tdcopies = 1.
" Open pinting request "
CALL FUNCTION 'SSF_OPEN'
exporting
* ARCHIVE_PARAMETERS = ARCHIVE_PARAMETERS
user_settings = ''
* MAIL_SENDER = MAIL_SENDER
* MAIL_RECIPIENT = MAIL_RECIPIENT
* MAIL_APPL_OBJ = MAIL_APPL_OBJ
output_options = option
control_parameters = control
* IMPORTING
* JOB_OUTPUT_OPTIONS = JOB_OUTPUT_OPTIONS
exceptions
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4.
IF sy-subrc ne 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
EXIT.
ENDIF.
"Call smartforms to print "
CALL FUNCTION fm_name
EXPORTING
CONTROL_PARAMETERS = control
OUTPUT_OPTIONS = option
IMPORTING
JOB_OUTPUT_OPTIONS = ssfcrescl "输出参数"
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
IF SY-SUBRC NE 0.
MESSAGE id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 .
ENDIF.
"Close print request"
CALL FUNCTION 'SSF_CLOSE'
IMPORTING
JOB_OUTPUT_INFO = ssfcrescl
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
OTHERS = 4.
IF sy-subrc ne 0.
"Error"
ENDIF.