Splitter Controls and Graphs

By Swarna S, Tata Consultancy Services

*&-----------------------------------------------------------------
*& Report Z_SPLIT_GRAPH
*& Author: Swarna.S.(Tata Consultancy Services)
* Published at SAPTechnical.COM
*&-----------------------------------------------------------------
*& AS : Sample code for creating a splitter screen and graph.
*& The screen is divided into two by splitter control and can be resized
*& Two graphs are drawn on the two splitter containers.
*& The sample code also describes creating graphs in ABAP.
*&-----------------------------------------------------------------
REPORT z_split_graph .
*type pool declarations for graphical frame work
TYPE-POOLS: GFW.
*OK code declaration
DATA: OK_CODE TYPE SY-UCOMM.
*structure declaration for graph 1 values
types : begin of ty_grvalwa1.
include structure gprval.
types : end of ty_grvalwa1.
*structure declaration for graph 1 column names
types : begin of ty_col1_texts.
include structure gprtxt.
types : end of ty_col1_texts.
*data declarations for graph 1
data : grval1 TYPE standard TABLE OF ty_grvalwa1,
      grvalwa1 type ty_grvalwa1,
       COL1_TEXTS TYPE standard TABLE OF ty_col1_texts,
       col1_wa type ty_col1_texts.
*structure declaration for graph 2 values
types : begin of ty_grvalwa2.
include structure gprval.
types : end of ty_grvalwa2.
*structure declaration for graph 2 column names
types : begin of ty_col2_texts.
include structure gprtxt.
types : end of ty_col2_texts.
*data declarations for graph2
data : grval2 TYPE standard TABLE OF ty_grvalwa2,
       grvalwa2 type ty_grvalwa2,
       COL2_TEXTS TYPE standard TABLE OF ty_col2_texts,
       col2_wa type ty_col2_texts.
*data declarations for containers,splitters,and custom container
data :CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
      SPLITTER TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
      CONT1 type ref to cl_gui_container,
      CONT2 type ref to cl_gui_container.
*Initialisation event
INITIALIZATION.
*start of selection event
START-OF-SELECTION.
*Call screen for the container for output
  CALL SCREEN 600.
*PBO module for the output display
*&----------------------------------------------------------------*
*&      Module  PBO_0600  OUTPUT
*&----------------------------------------------------------------*
MODULE PBO_0600 OUTPUT.
*Setting the GUI status for the splitter screen(EXIT button)
  SET PF-STATUS 'SPLITGRAPH'.
*Setting the title for the splitter control
  SET titlebar 'SPLITGRAPH'.
*Creating custom container
  CREATE OBJECT CUSTOM_CONTAINER
    EXPORTING
      CONTAINER_NAME = 'CONTAINER'.
*creating the splitter control
  CREATE OBJECT splitter
    EXPORTING
      PARENT  = CUSTOM_CONTAINER
      ROWS    = 1
      COLUMNS = 2
      ALIGN   = 15.
*calling the container method of the splitter class
*for the first graphic
  CALL METHOD SPLITTER->GET_CONTAINER
    EXPORTING
      ROW       = 1
      COLUMN    = 1
    RECEIVING
      CONTAINER = CONT1.
*calling the container method of the splitter class
*for the second graphic
  CALL METHOD SPLITTER->GET_CONTAINER
    EXPORTING
      ROW       = 1
      COLUMN    = 2
    RECEIVING
      CONTAINER = CONT2.
*Graphic 1 display
  REFRESH : grval1,Col1_texts.
  grvalwa1-rowtxt = 'Rice'.
  grvalwa1-val1 = 1100.
  grvalwa1-VAL2 = 4500.
  APPEND grvalwa1 to grval1.
  grvalwa1-ROWTXT = 'Coffee'.
  grvalwa1-VAL1 = 2000.
  grvalwa1-VAL2 = 6000.
  APPEND grvalwa1 to grval1.
  grvalwa1-ROWTXT = 'Tea'.
  grvalwa1-VAL1 = 3500.
  grvalwa1-VAL2 = 7000.
  APPEND grvalwa1 to grval1.
  grvalwa1-ROWTXT = 'Cereals'.
  grvalwa1-VAL1 = 6000.
  grvalwa1-val2 = 7000.
  APPEND grvalwa1 to grval1.
  col1_wa-coltxt = '2005'.
  APPEND col1_wa to COL1_TEXTS.
  COL1_wa-COLTXT = '2006'.
  APPEND col1_wa to COL1_TEXTS.
*Function module to display graph (Graph 1)
  CALL FUNCTION 'GFW_PRES_SHOW_MULT'
    EXPORTING
      PARENT            = CONT1
      PRESENTATION_TYPE = GFW_PRESTYPE_LINES
      SHOW              = GFW_FALSE
    TABLES
      VALUES            = grval1
      COLUMN_TEXTS      = COL1_TEXTS
    EXCEPTIONS
      ERROR_OCCURRED    = 1.
*Graphic 2 display
  REFRESH : grval2,col2_texts.
  grvalwa2-ROWTXT = 'Wheat'.
  grvalwa2-VAL1 = 3000.
  grvalwa2-VAL2 = 5500.
  APPEND grvalwa2 to grval2.
  grvalwa2-ROWTXT = 'Corn'.
  grvalwa2-VAL1 = 2700.
  grvalwa2-VAL2 = 8000.
  APPEND grvalwa2 to grval2.
  grvalwa2-ROWTXT = 'Maize'.
  grvalwa2-VAL1 = 3250.
  grvalwa2-VAL2 = 5000.
  APPEND grvalwa2 to grval2.
  grvalwa2-ROWTXT = 'Barley'.
  grvalwa2-VAL1 = 6500.
  grvalwa2-VAL2 = 9000.
  APPEND grvalwa2 to grval2.
  COL2_wa-COLTXT = '2005'.
  APPEND col2_wa to COL2_TEXTS.
  COL2_wa-COLTXT = '2006'.
  APPEND col2_wa to COL2_TEXTS.
*Function module to display Graph 2
  CALL FUNCTION 'GFW_PRES_SHOW_MULT'
    EXPORTING
      PARENT            = CONT2
      PRESENTATION_TYPE = GFW_PRESTYPE_LINES
      SHOW              = GFW_TRUE
    TABLES
      VALUES            = grval2
      COLUMN_TEXTS      = COL2_TEXTS
    EXCEPTIONS
      ERROR_OCCURRED    = 1.
ENDMODULE.                 " PBO_0600  OUTPUT
*PAI module : Based on user input,action is performed
*EXIT called to leave program when user clicks it
*&----------------------------------------------------------------*
*&      Module  PAI_0600  INPUT
*&----------------------------------------------------------------*
MODULE PAI_0600 INPUT.
  OK_CODE = SY-UCOMM.
  IF OK_CODE EQ 'EXIT'.
    LEAVE PROGRAM.
  ENDIF.
ENDMODULE.                 " PAI_0600  INPUT

Screen shots of the output.

 

Screen shot of the splitter containers can be resized as shown below:

Please send us your feedback/suggestions at webmaster@SAPTechnical.COM 

HomeContribute About Us Privacy Terms Of Use • Disclaimer • SafeCompanies: Advertise on SAPTechnical.COM | Post JobContact Us  

Graphic Design by Round the Bend Wizards

footer image footer image