TRY. DATA: lv_mime_type TYPE string. DATA: lv_image_bytes TYPE xstring. * Ein paar Bytes holen: Screenshot aufnehmen cl_gui_frontend_services=>get_screenshot( IMPORTING mime_type_str = lv_mime_type image = lv_image_bytes ). DATA: lv_xstr_gzip TYPE xstring. * Binärdaten mit GZIP komprimieren cl_abap_gzip=>compress_binary( EXPORTING raw_in = lv_image_bytes IMPORTING gzip_out = lv_xstr_gzip ). DATA(lv_base64_data) = ||. * Base64 codieren CALL FUNCTION 'SSFC_BASE64_ENCODE' EXPORTING bindata = lv_xstr_gzip IMPORTING b64data = lv_base64_data EXCEPTIONS ssf_krn_error = 1 ssf_krn_noop = 2 ssf_krn_nomemory = 3 ssf_krn_opinv = 4 ssf_krn_input_data_error = 5 ssf_krn_invalid_par = 6 ssf_krn_invalid_parlen = 7 OTHERS = 8. IF sy-subrc = 0. * Base64-String in der Listenausgabe darstellen DATA: it_text80 TYPE STANDARD TABLE OF text80 WITH DEFAULT KEY. * formatierte Ausgabe (80 Zeichen Breite) CALL FUNCTION 'SWA_STRING_TO_TABLE' EXPORTING character_string = lv_base64_data IMPORTING character_table = it_text80. LOOP AT it_text80 ASSIGNING FIELD-SYMBOL(<t>). WRITE: / <t>. ENDLOOP. DATA: lv_xstr_dec TYPE xstring. * Base64 decodieren CALL FUNCTION 'SSFC_BASE64_DECODE' EXPORTING b64data = lv_base64_data IMPORTING bindata = lv_xstr_dec EXCEPTIONS ssf_krn_error = 1 ssf_krn_noop = 2 ssf_krn_nomemory = 3 ssf_krn_opinv = 4 ssf_krn_input_data_error = 5 ssf_krn_invalid_par = 6 ssf_krn_invalid_parlen = 7 OTHERS = 8. IF sy-subrc = 0. DATA: lv_pic_bytes TYPE xstring. * Binärdaten mit GZIP dekomprimieren cl_abap_gzip=>decompress_binary( EXPORTING gzip_in = lv_xstr_dec IMPORTING raw_out = lv_pic_bytes ). * freier Custom-Container innerhalb der Listenansicht DATA(o_cnt) = NEW cl_gui_custom_container( container_name = '' repid = 'SAPMSSY0' dynnr = '0120' ). * Position des Containers setzen o_cnt->set_top( 50 ). o_cnt->set_left( 50 ). o_cnt->set_width( 640 ). o_cnt->set_height( 240 ). * Bild über die URL laden und anzeigen DATA(o_pic) = NEW cl_gui_picture( parent = o_cnt ). o_pic->set_display_mode( display_mode = cl_gui_picture=>display_mode_stretch ). * xstring -> solix DATA(it_bin_data) = cl_bcs_convert=>xstring_to_solix( lv_pic_bytes ). DATA: lv_url TYPE swk_url. * temporäre URL für das Bild erzeugen CALL FUNCTION 'DP_CREATE_URL' EXPORTING type = 'image/jpeg' " https://wiki.selfhtml.org/wiki/Referenz:MIME-Typen subtype = '' TABLES data = it_bin_data CHANGING url = lv_url EXCEPTIONS dp_invalid_parameter = 1 dp_error_put_table = 2 dp_error_general = 3 OTHERS = 4. * Bild von URL laden o_pic->load_picture_from_url_async( lv_url ). ENDIF. ENDIF. CATCH cx_root INTO DATA(e_txt). WRITE: / e_txt->get_text( ). ENDTRY.
Kategorien
-
Neueste Beiträge
- [CDS-Views] Fehler “Referenzinformationen fehlen oder falscher Datentyp” beheben
- [CDS-Views] Dynamische Befüllung von Variablen / Labels
- [ABAP] Daten einer Internetseite als interne Tabelle bereitstellen
- [ABAP] Transliteration von Texten
- [ABAP] UTC-Zeitstempel nach POSIX-Standard
- [RAP] ODATA V4 Service und Fiori Elements App implementieren
- [ABAP] Übernahme von Dokumenteninfosätzen beim Anlegen von Einkaufsbelegen unterdrücken
- [ABAP] OpenSQL: Stringfunktionen
- [ABAP] OpenSQL: NULL-Indicator zum Anzeigen von leeren Rückgabemengen
- [ABAP] OpenSQL: Set-Indicator für das Aktualisieren von Spalten