转自:http://www.kodyaz.com/articles/sap-smartforms-output-in-single-spool-request-using-output_options-tdnewid.aspx
While SmartForms calls, ABAP developers can set single spool request or a spool request for each SAP Smartform call using the output-options tdnewid.
Distinct Spool Reqests for each SmartForms Call
The following ABAP code calls the same SAP Smartforms report within a loop.
You can call SAP Smartform with different parameters each time according to your Smart Form requirements.
Within the ABAP loop we call Smartform report using CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' and CALL FUNCTION fm_name methods.
Note that the Smartform control_parameters and output_options are determined prior ABAP loop and Smartforms call methods as follows:
gs_control_parameters-no_dialog = 'X'.
Setting no_dialog field Smarforms control_parameters to 'X' means that no dialog screen will be displayed to the user.
gs_output_options-tdnewid = 'X'.
Setting tdnewid option of SAP Smartforms output_options to 'X' means that the print will request for a new print spool id.
So calling SAP Smartform report each time with the above settings and output options will create a new spool entry for each Smartform call.
REPORT Z_CALL_SMARTFORM. DATA : fm_name TYPE rs38l_fnam, it_vbak TYPE TABLE OF vbak. SELECT * FROM vbak into TABLE it_vbak WHERE vbeln GE '0100000004' AND vbeln LE '0100000010'. DATA : gs_control_parameters TYPE SSFCTRLOP, gs_output_options TYPE SSFCOMPOP. gs_control_parameters-no_dialog = 'X'. gs_output_options-tdnewid = 'X'. CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = 'ZSMARTFORMS_SALES_DOCUMENTS3' IMPORTING FM_NAME = fm_name EXCEPTIONS NO_FORM = 1 NO_FUNCTION_MODULE = 2 OTHERS = 3. DATA : i TYPE i VALUE 5. WHILE i > 0. CALL FUNCTION fm_name EXPORTING control_parameters = gs_control_parameters output_options = gs_output_options TABLES it_vbak = it_vbak EXCEPTIONS FORMATTING_ERROR = 1 INTERNAL_ERROR = 2 SEND_ERROR = 3 USER_CANCELED = 4 OTHERS = 5. i = i - 1. ENDWHILE. |
As you can see in the below screenshot of the SAP SP01 screen, there are 5 spool reuests displayed for 5 SAP Smartform calls from sample ABAP code.