Smart Forms Formularaufruf und Spool-Aufträge
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Siehe Smart Forms.
Beim Aufruf des Smart Forms ist es optional explizit einen Spool-Auftrag über Funktionsbausteine zu öffnen und zu schließen. Dies kann auch beim Aufruf des Smart Forms-Funktionsbausteins geschehen.
Siehe Spool-Auftrag.
Demoprogramm SF_EXAMPLE_03
Im SAP-Demo-Programm SF_EXAMPLE_03 wird die Verwendung der Funktionsbausteine SSF_OPEN und SSF_CLOSE gezeigt, die explizit einen Spool-Auftrag öffnen, bzw. schließen.
Deklarationen
report sf_example_03. data: carr_id type sbook-carrid, cust_id type scustom-id, fm_name type rs38l_fnam, control type ssfctrlop, errtab type tsferror. select-options: s_custid for cust_id default 50 to 60, s_carrid for carr_id default 'LH' to 'LH'. parameter: p_form type tdsfname default 'SF_EXAMPLE_03'. data: customers type ty_customers, bookings type ty_bookings, connections type ty_connections, customer type scustom.
Datenselektion
************************ DATA RETRIEVAL ************************ * get data of bookings select * from scustom into table customers where id in s_custid order by primary key.
Ermittlung Funktionsbaustein mit SSF_FUNCTION_MODULE_NAME
************************ PRINTING OF DATA ********************** * get the name of the generated function module using the logical * Smart Forms name call function 'SSF_FUNCTION_MODULE_NAME' exporting formname = p_form * variant = ' ' * direct_call = ' ' importing fm_name = fm_name exceptions no_form = 1 no_function_module = 2 others = 3. if sy-subrc <> 0. * error handling message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. exit. endif. control-langu = 'D'. control-no_dialog = 'X'. control-preview = 'X'. control-no_open = 'X'. control-no_close = 'X'.
Funktionsbaustein 'SSF_OPEN'
call function 'SSF_OPEN' exporting * ARCHIVE_PARAMETERS = * USER_SETTINGS = 'X' * MAIL_SENDER = * MAIL_RECIPIENT = * MAIL_APPL_OBJ = * OUTPUT_OPTIONS = control_parameters = control * IMPORTING * JOB_OUTPUT_OPTIONS = exceptions formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 others = 5. if sy-subrc <> 0. * error handling message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. exit. endif.
Aufruf Formular mit Funktionsbaustein
* print all the bookings of different customers loop at customers into customer. clear: bookings[], connections[]. select * from sbook into table bookings where customid = customer-id and carrid in s_carrid order by primary key. select * from spfli into table connections for all entries in bookings where carrid = bookings-carrid and connid = bookings-connid order by primary key.
* now call the generated function module call function fm_name exporting * archive_index = * archive_parameters = control_parameters = control * mail_appl_obj = * mail_recipient = * mail_sender = * output_options = * user_settings = 'X' customer = customer bookings = bookings connections = connections * importing document_output_info = * job_output_info = * job_output_options = exceptions formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 others = 5. if sy-subrc <> 0. * error handling message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif.
endloop.
Funktionsbaustein 'SSF_CLOSE'
call function 'SSF_CLOSE' * IMPORTING * JOB_OUTPUT_INFO = exceptions formatting_error = 1 internal_error = 2 send_error = 3 others = 4. if sy-subrc <> 0. * error handling message id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. endif. * analyse internal error table of Smart Forms call function 'SSF_READ_ERRORS' importing errortab = errtab. if not errtab is initial. * add your handling endif.
Control-Sprachparameter in Methode setzen
Die Sprachparameter werden in den meisten Formularen bei einem Kunden gleich gefüllt. Dann bietet es sich auch an dieses Füllen der Sprachparameter in einer Methode zu kapseln.
Control Param-Sprachparameter füllen
Web-Links
Literatur
- SAP Smart Forms - Das umfassende Handbuch, von Werner Hertleif, Christoph Wachter, Rinaldo Heck, Tobias Trapp, Thomas Karas; 3. Auflage, S. 627