* https://www.tutorialspoint.com/sap_smart_forms/ * https://www.berater-wiki.de/Smart_Forms_Generierter_Funktionsbaustein * https://mind-forms.de/sap-formulartechnologien/sapscript/sapscript-formulare-in-pdf-umwandeln/ * Tabelle STXFADM PARAMETERS: p_form TYPE stxfadm-formname DEFAULT 'SF_EXAMPLE_01'. PARAMETERS: p_open TYPE abap_bool DEFAULT abap_true. START-OF-SELECTION. DATA(lv_control_parameters) = VALUE ssfctrlop( no_dialog = abap_true preview = space getotf = abap_true langu = sy-langu ). DATA: lv_devtype TYPE rspoptype. * Smart Forms: Gerätetyp nach Sprache ermitteln CALL FUNCTION 'SSF_GET_DEVICE_TYPE' EXPORTING i_language = lv_control_parameters-langu IMPORTING e_devtype = lv_devtype EXCEPTIONS no_language = 1 language_not_installed = 2 no_devtype_found = 3 system_error = 4 OTHERS = 5. IF sy-subrc = 0. DATA(lv_output_options) = VALUE ssfcompop( tddest = 'LOCL' tdprinter = lv_devtype ). * FuBa Name ermitteln DATA: lv_fm_name TYPE rs38l_fnam. * Smart Forms: Name des Funktionsbausteins bestimmen CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME' EXPORTING formname = p_form IMPORTING fm_name = lv_fm_name EXCEPTIONS no_form = 1 no_function_module = 2 OTHERS = 3. IF sy-subrc = 0. DATA: lv_document_output_info TYPE ssfcrespd. DATA: lv_job_output_info TYPE ssfcrescl. DATA: lv_job_output_options TYPE ssfcresop. * Zusatzparameter für Fuba für Formular 'SF_EXAMPLE_01' DATA: lv_customer TYPE scustom. DATA: it_bookings TYPE ty_bookings. DATA: it_connections TYPE ty_connections. * FuBa der Form aufrufen und OTF-Daten erzeugen CALL FUNCTION lv_fm_name EXPORTING control_parameters = lv_control_parameters output_options = lv_output_options user_settings = space customer = lv_customer bookings = it_bookings connections = it_connections IMPORTING document_output_info = lv_document_output_info job_output_info = lv_job_output_info job_output_options = lv_job_output_options EXCEPTIONS formatting_error = 1 internal_error = 2 send_error = 3 user_canceled = 4 OTHERS = 5. IF sy-subrc = 0. DATA(lv_bin_filesize) = 0. DATA: lv_pdf_xstring TYPE xstring. DATA: it_lines TYPE tline_t. * Konvertieren von OTF-Format in verschiedene Formate (TLINE Tabelle) CALL FUNCTION 'CONVERT_OTF' EXPORTING format = 'PDF' " ASCII, PDF IMPORTING bin_filesize = lv_bin_filesize * bin_file = lv_pdf_xstring " PDF Binärdaten -> einkommentieren, wenn benötigt, sonst it_lines leer! TABLES otf = lv_job_output_info-otfdata " Input OTF lines = it_lines " Output EXCEPTIONS err_max_linewidth = 1 err_format = 2 err_conv_not_possible = 3 err_bad_otf = 4 OTHERS = 5. IF sy-subrc = 0. DATA: lv_action TYPE i. DATA: lv_filename TYPE string. DATA: lv_fullpath TYPE string. DATA: lv_path TYPE string. TRY. * Speichern-Dialog cl_gui_frontend_services=>file_save_dialog( EXPORTING default_file_name = |{ p_form }.pdf| default_extension = 'pdf' file_filter = '(*.pdf)|*.pdf|' CHANGING filename = lv_filename path = lv_path fullpath = lv_fullpath user_action = lv_action ). IF lv_action EQ cl_gui_frontend_services=>action_ok. * Daten lokal speichern cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bin_filesize filename = lv_fullpath filetype = 'BIN' CHANGING data_tab = it_lines ). WRITE: / |Datei erfolgreich unter { lv_fullpath } gespeichert.|. IF abap_true = p_open. * Datei anzeigen cl_gui_frontend_services=>execute( document = lv_fullpath ). ENDIF. ENDIF. CATCH cx_root INTO DATA(e_text). WRITE: / e_text->get_text( ). ENDTRY. ENDIF. ELSE. DATA: it_sf_errors TYPE tsferror. * Smart Forms: Lesen der Fehlertabelle nach Aufruf CALL FUNCTION 'SSF_READ_ERRORS' IMPORTING errortab = it_sf_errors. cl_demo_output=>display( it_sf_errors ). ENDIF. ELSE. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. ELSE. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF.
Kategorien
-
Neueste Beiträge
- [ABAP] Verwendung von Common Table Expressions (CTE)
- [ABAP] Leistungsverzeichnis lesen (MS_READ_SERVICES_FOR_BAPI)
- [ABAP] SAPConnect: Kommunikationsknoten, Routing und Parameter auslesen
- [SAP] Business Document Service (BDS)
- [SAP] Generic Object Services (GOS)
- [SAP] MM-Berechtigungsobjekte
- [SAP] Steuerkennzeichen
- [ABAP] Prüfen, ob GUI UTF-8 unterstützt
- [ABAP] Fiori: Technische Kataloge lesen
- [ABAP] Fiori: Details zu techn. Katalogen lesen