*&---------------------------------------------------------------------- *& Report Z_SPLIT_GRAPH *& Author: Swarna.S.(Tata Consultancy Services) *&---------------------------------------------------------------------- *& 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