* https://help.sap.com/saphelp_nwpi71/helpdata/en/46/8e558550b568bde10000000a155369/frameset.htm
* IGS-Administration: Transaktion SIGS / Report GRAPHICS_IGS_ADMIN
* Demo: GRAPHICS_IGS_CHART_TEST
TRY.
* Default RFC-Destination für IGS (Internet Graphics Server)
DATA(lv_rfc_dest) = CONV char32( 'IGS_RFC_DEST' ).
* RFC-Destination festlegen
cl_gfw=>its_rfc_dest = lv_rfc_dest.
* Ist der IGS Chart interpreter erreichbar?
IF abap_true = cl_igs_data=>is_registered_type( destination = lv_rfc_dest
type = cl_igs_chart=>interpreter_type ).
* IGS Chart-Objekt erzeugen
DATA(o_igs_chart) = NEW cl_igs_chart( ).
o_igs_chart->type = cl_igs_chart=>co_type_cols_3d.
o_igs_chart->width = 640.
o_igs_chart->height = 480.
o_igs_chart->title = 'Test Graph'.
o_igs_chart->title_categories = 'Monat'.
o_igs_chart->title_values = 'Verbrauch'.
o_igs_chart->color_scheme = cl_igs_chart=>co_scheme_default.
o_igs_chart->legend = cl_igs_chart=>co_legend_default.
* Chart-Daten
o_igs_chart->data = VALUE igs_data_tab(
( groupid = 'Series 1' y = 10 x = 'Januar' color = 30 datalabel = 'Label 1' extension = 'href="http://www.google.de"' )
( groupid = 'Series 2' y = 20 x = 'Januar' datalabel = 'Label 2' extension = 'href="http://www.google.de"' )
( groupid = 'Series 1' y = 15 x = 'Februar' datalabel = 'Label 3' extension = 'href="http://www.google.de"' )
( groupid = 'Series 2' y = 20 x = 'Februar' datalabel = 'Label 4' extension = 'href="http://www.google.de"' )
( groupid = 'Series 1' y = 30 x = 'März' datalabel = 'Label 5' extension = 'href="http://www.google.de"' )
( groupid = 'Series 2' y = 25 x = 'März' datalabel = 'Label 6' extension = 'href="http://www.google.de"' )
).
* erweiterte Chart-Daten
o_igs_chart->extension = VALUE igs_ext_tab(
( token = 'TITLE' value = 'href="http://www.google.de"' )
( token = 'LGNDI' value = 'href="http://www.google.de"' )
).
DATA: lv_content_type TYPE w3param-cont_type.
DATA: lv_content_subtype TYPE w3param-cont_type.
DATA: lv_content_length TYPE w3param-cont_len.
DATA: it_mime_content TYPE w3mimetabtype.
DATA: it_imagemap_html TYPE w3htmltabtype.
DATA: lv_msg TYPE char255.
* Chart als Image + ImageMap generieren
o_igs_chart->send( IMPORTING
content_type = lv_content_type
content_length = lv_content_length
content = it_mime_content
imagemap = it_imagemap_html
msg_text = lv_msg ).
* Content Typ und Content Subtyp
SPLIT lv_content_type AT '/' INTO lv_content_type lv_content_subtype.
* HTML-Viewer erzeugen
DATA(o_html) = NEW cl_gui_html_viewer( parent = cl_gui_container=>default_screen ).
DATA: lv_mime_content_url TYPE w3url.
* URL zum Image erzeugen
o_html->load_data( EXPORTING
type = lv_content_type
subtype = lv_content_subtype
size = lv_content_length
IMPORTING
assigned_url = lv_mime_content_url
CHANGING
data_table = it_mime_content ).
* HTML mt eingebetteten Image + Imagemap erzeugen
DATA(it_html) = VALUE w3htmltabtype( ( line = '<html>' )
( line = ' <head>' )
( line = ' <title>IGS Chart Demo</title>' )
( line = ' </head>' )
( line = ' <body>' )
( line = ' <map name=chart>' ) ).
APPEND LINES OF it_imagemap_html TO it_html.
APPEND LINES OF VALUE w3htmltabtype( ( line = ' </map>' )
( line = ' <img src="' && lv_mime_content_url && '" usemap=#chart border=0>' )
( line = ' </body>' )
( line = '</html>' ) ) TO it_html.
DATA: lv_output_url TYPE w3url.
* URL zu HTML erzeugen
o_html->load_data( EXPORTING
type = 'text'
subtype = 'html'
IMPORTING
assigned_url = lv_output_url
CHANGING
data_table = it_html ).
* HTML im HTML-Viewer anhand der URL anzeigen
o_html->show_url( url = lv_output_url ).
* Container cl_gui_container=>default_screen erzwingen
WRITE: / space.
ENDIF.
CATCH cx_root INTO DATA(e_txt).
WRITE: / e_txt->get_text( ).
ENDTRY.