Graphics Gui Ce Demo
Graphics Gui Ce Demo
Graphics Gui Ce Demo
graphics_gui_ce_demo.
* global data
data:
data:
data:
data:
data:
data:
g_ce_container
g_ce_viewer
g_ixml
g_ixml_sf
g_design_mode
g_value_change
data: g_save_okcode
type
type
type
type
type
type
ref
ref
ref
ref
c.
c.
to
to
to
to
cl_gui_custom_container.
cl_gui_chart_engine.
if_ixml.
if_ixml_stream_factory.
like sy-ucomm.
* dynpro data
data: okcode
like sy-ucomm.
* event handler
class lcl_ce_viewer_eh definition.
public section.
methods on_click for event click of cl_gui_chart_engine
importing
element series point.
methods on_value_change for event value_change of
cl_gui_chart_engine
importing
series point value.
methods on_property_change for event property_change of
cl_gui_chart_engine
importing
element name value.
endclass.
data: g_ce_viewer_eh type ref to lcl_ce_viewer_eh.
* entry point
start-of-selection.
* create global objects
g_ixml = cl_ixml=>create( ).
g_ixml_sf = g_ixml->create_stream_factory( ).
call screen '100'.
* ENDREPORT
GRAPHICS_GUI_CE_DEMO.
*&---------------------------------------------------------------------*
*&
Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module status_0100 output.
data: l_ixml_data_doc
l_ixml_custom_doc
l_ostream
l_xstr
type
type
type
type
ref to if_ixml_document,
ref to if_ixml_document,
ref to if_ixml_ostream,
xstring.
" STATUS_0100
OUTPUT
*&---------------------------------------------------------------------*
*&
Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
module user_command_0100 input.
g_save_okcode = okcode.
clear okcode.
case g_save_okcode.
when 'DESIGN'.
perform toggle_design_mode.
when 'VALUE'.
perform toggle_value_change.
when 'SAVE'.
perform save_customizing.
when 'PRINT'.
perform print.
when 'EXIT'.
leave program.
when 'BACK'.
leave program.
endcase.
endmodule.
" USER_COMMAND_0100
INPUT
*&---------------------------------------------------------------------*
*&
IMPLEMENTATION
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
class cl_abap_char_utilities definition load.
*&---------------------------------------------------------------------*
*&
Form create_data_demo
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
form create_data_demo using p_ixml_doc type ref to if_ixml_document.
data: l_simplechartdata
l_categories
l_series
l_element
l_encoding
type
type
type
type
type
ref
ref
ref
ref
ref
to
to
to
to
to
if_ixml_element,
if_ixml_element,
if_ixml_element,
if_ixml_element,
if_ixml_encoding.
p_ixml_doc = g_ixml->create_document( ).
l_encoding = g_ixml->create_encoding(
byte_order = if_ixml_encoding=>co_little_endian
character_set = 'utf-8' ).
p_ixml_doc->set_encoding( l_encoding ).
l_simplechartdata = p_ixml_doc->create_simple_element(
name = 'SimpleChartData' parent = p_ixml_doc ).
l_categories = p_ixml_doc->create_simple_element(
name = 'Categories' parent = l_simplechartdata ).
l_element = p_ixml_doc->create_simple_element(
name = 'C' parent = l_categories ).
l_element->if_ixml_node~set_value( '1st quarter'
l_element = p_ixml_doc->create_simple_element(
name = 'C' parent = l_categories ).
l_element->if_ixml_node~set_value( '2nd quarter'
l_element = p_ixml_doc->create_simple_element(
name = 'C' parent = l_categories ).
l_element->if_ixml_node~set_value( '3rd quarter'
l_element = p_ixml_doc->create_simple_element(
name = 'C' parent = l_categories ).
l_element->if_ixml_node~set_value( '4th quarter'
).
).
).
).
l_series = p_ixml_doc->create_simple_element(
name = 'Series' parent = l_simplechartdata ).
l_series->set_attribute( name = 'label' value = 'Coffee' ).
l_element = p_ixml_doc->create_simple_element(
name = 'S' parent = l_series ).
l_element->if_ixml_node~set_value( '94' ).
l_element = p_ixml_doc->create_simple_element(
type ref to
type ref to
type ref to
type ref to
type ref to
type ref to
type ref
type ref
if_ixml_element,
if_ixml_element,
if_ixml_element,
if_ixml_element,
if_ixml_element,
if_ixml_element,
to if_ixml_element,
to if_ixml_encoding.
p_ixml_doc = g_ixml->create_document( ).
l_encoding = g_ixml->create_encoding(
byte_order = if_ixml_encoding=>co_little_endian
character_set = 'utf-8' ).
p_ixml_doc->set_encoding( l_encoding ).
l_root = p_ixml_doc->create_simple_element(
name = 'SAPChartCustomizing' parent = p_ixml_doc ).
l_root->set_attribute( name = 'version' value = '1.1' ).
l_globalsettings = p_ixml_doc->create_simple_element(
name = 'GlobalSettings' parent = l_root ).
l_element = p_ixml_doc->create_simple_element(
name = 'FileType' parent = l_globalsettings ).
l_element->if_ixml_node~set_value( 'PNG' ).
l_element = p_ixml_doc->create_simple_element(
" toggle_design_mode
*&---------------------------------------------------------------------*
*&
Form toggle_value_change
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
form toggle_value_change .
data: l_win_chart
" toggle_value_change
*&---------------------------------------------------------------------*
*&
Form save_customizing
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
form save_customizing .
data: l_xml_customizing
l_win_chart
l_filename
l_filepath
l_filesize
l_path
type
type
type
type
type
type
w3mimetabtype,
ref to cl_gui_chart_engine_win,
string,
string,
i,
string.
" save_customizing
*&---------------------------------------------------------------------*
*&
Form print
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
form print .
data: l_win_chart
*&---------------------------------------------------------------------*
*&
Clas lcl_ce_viewer_eh
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
class lcl_ce_viewer_eh implementation.
method on_click.
data: l_msg
type string,
l_series type string,
l_point type string.
l_series = series.
l_point = point.
concatenate 'Element clicked:'(m01) element
'Series:'(t01) l_series
'Point:'(t02) l_point
into l_msg separated by space.
message l_msg type 'S'.
endmethod.
method on_value_change.
data: l_msg
l_series
l_point
l_value
type
type
type
type
string,
string,
string,
string.
l_series = series.
l_point = point.
l_value = value.
concatenate 'Value changed:'(m02)
'Series:'(t01) l_series
'Point:'(t02) l_point
'Value:'(t03) l_value
into l_msg separated by space.
message l_msg type 'S'.
endmethod.
method on_property_change.
data: l_msg
type string.