Calling SAP Bar Chart Graphics, Without Dialog 
The following ABAP program illustrates some of the function module calls discussed in the preceding topics.
*-------------------------------------------------------------*
* This program calls SAP Bar Chart Graphics.
*
* BARCBO01 calls BARC_SET_TIME_AXIS and BARC_ADD_CHART, creating a time * axis, a table and bars.
* A graphics profile is used.
*-------------------------------------------------------------*
REPORT BARCBO01.
INCLUDE SGRCCNST. "General graphics constans
INCLUDE LBARCCON. "Bar chart constants
INCLUDE BARCDATA. "General data declarations
DATA: CHART LIKE BCCHART-ID,
SECTION LIKE BCSECTION-ID,
VAL LIKE BCVALS-VAL.
PARAMETER: GROUP LIKE TBCGT-PRF_GROUP DEFAULT 'DEMO',
NAME LIKE TBCGT-PRF_NAME DEFAULT '000000000001',
INDEX LIKE TBCGT-PRF_INDEX DEFAULT '1'.
* Defining a graphics profile
GRAPH_PROFILE-PRF_GROUP = GROUP.
GRAPH_PROFILE-PRF_NAME = NAME.
GRAPH_PROFILE-PRF_INDEX = INDEX.
* Defining beginning and end of time axis
CALL FUNCTION 'BARC_SET_TIME_AXIS'
EXPORTING
START = '01.01.1994;'
END = '31.12.1994;'.
* Creating a chart
CALL FUNCTION 'BARC_ADD_CHART'
IMPORTING
ID = CHART.
* Defining the column width in the tables section
CALL FUNCTION 'BARC_SET_COLUMN_WIDTH'
EXPORTING
CHART_ID = CHART
WIDTH = 4000.
* Defining the table heading
BOXES-ID = 1.
BOXES-TYPE = BC_CONST-ROW_BOX.
BOXES-CHART_ID = CHART.
BOXES-FORM_TYPE = 'B1'.
BOXES-COLOR_TYPE = 'B0'.
APPEND BOXES.
BOX_VALS-ID = BOXES-ID.
BOX_VALS-FL = '0'.
BOX_VALS-VAL = TEXT-001. "Boxes
APPEND BOX_VALS.
POSITIONS-OBJ_ID = BOXES-ID.
POSITIONS-OBJ_TYPE = BC_CONST-BOX_OBJECT.
POSITIONS-CHART_ID = CHART.
POSITIONS-ROW_NUMBER = 0.
APPEND POSITIONS.
WRITE BOXES-ID TO VAL.
CALL FUNCTION 'BARC_SET_CHART_ATTRIB'
EXPORTING
FL = BC_CONST-CHART_TITLE_BOX
ID = CHART
VAL = VAL.
* Creating a section
CALL FUNCTION 'BARC_ADD_SECTION'
EXPORTING
SIZE = 100
START = '01.01.1994;'
UNIT = '5'
IMPORTING
ID = SECTION.
* Inserting ribbons in a section
CALL FUNCTION 'BARC_ADD_RIBBON'
EXPORTING
CHART_ID = CHART
COLOR_TYPE = 'R1'
SECTION_ID = SECTION
UNIT = '5'. "Day ribbon
CALL FUNCTION 'BARC_ADD_RIBBON'
EXPORTING
CHART_ID = CHART
COLOR_TYPE = 'R2'
SECTION_ID = SECTION
UNIT = '3'. "Month ribbon
* Defining boxes for table section
PERFORM SET_BOXES TABLES BOXES
BOX_VALS
POSITIONS
USING CHART.
* Defining nodes in the chart, data of bars
PERFORM SET_NODES TABLES NODES
NODE_VALS
POSITIONS
USING CHART.
STAT = SGRC_CONST-STAT_1. "Open Window, Transfer Data, Wait for Input
DO.
* Processing data for bar chart
CALL FUNCTION 'BARC_GRAPHIC_PBO'
EXPORTING
CONFIRM = SPACE
PROFILE = GRAPH_PROFILE
STAT = STAT
TABLES
BOXES = BOXES
BOX_VALS = BOX_VALS
DELETIONS = DELETIONS
LINKS = LINKS
LINK_VALS = LINK_VALS
NODES = NODES
NODE_VALS = NODE_VALS
POSITIONS = POSITIONS.
* Handing over data to graphics program
CALL FUNCTION 'GRAPH_RECEIVE'
IMPORTING
MCODE = M_TYP
EXCEPTIONS
FRONTEND_ERROR = 01
INV_COMMUNICATION = 02
NO_BATCH = 03.
IF NOT SY-SUBRC IS INITIAL.
EXIT.
ENDIF.
CASE M_TYP.
WHEN SGRC_CONST-M_TYP_D.
EXIT.
WHEN SGRC_CONST-M_TYP_I.
* Evaluating data for printing
CALL FUNCTION 'BARC_GRAPHIC_PAI'
IMPORTING
GRAPH_CMD = GRAPH_CMD
TABLES
BOXES = BOXES
BOX_VALS = BOX_VALS
DELETIONS = DELETIONS
NODES = NODES
NODE_VALS = NODE_VALS
POSITIONS = POSITIONS
LINKS = LINKS
LINK_VALS = LINK_VALS
EXCEPTIONS
INV_RWNID = 01.
ABAP_CMD = GRAPH_CMD.
STAT = SGRC_CONST-STAT_4. "Wait for input
ENDCASE.
ENDDO.
*---------------------------------------------------------------------*
* FORM MAKE_BOX *
*---------------------------------------------------------------------*
* Creatin a box *
*---------------------------------------------------------------------*
FORM MAKE_BOX TABLES BOXES STRUCTURE BCBOXES
BOX_VALS STRUCTURE BCVALS
POSITIONS STRUCTURE BCPOSITION
USING CHART LIKE BCCHART-ID
ID TYPE I
FORMAT
COLOR
TEXT
ROW TYPE I.
BOXES-ID = ID.
BOXES-TYPE = BC_CONST-ROW_BOX.
BOXES-CHART_ID = CHART.
BOXES-FORM_TYPE = FORMAT.
BOXES-COLOR_TYPE = COLOR.
APPEND BOXES.
BOX_VALS-ID = BOXES-ID.
BOX_VALS-FL = '0'.
BOX_VALS-VAL = TEXT.
APPEND BOX_VALS.
POSITIONS-OBJ_ID = BOXES-ID.
POSITIONS-OBJ_TYPE = BC_CONST-BOX_OBJECT.
POSITIONS-CHART_ID = BOXES-CHART_ID.
POSITIONS-ROW_NUMBER = ROW.
APPEND POSITIONS.
ENDFORM. "MAKE_BOX
*---------------------------------------------------------------------*
* FORM SET_BOXES *
*---------------------------------------------------------------------*
* Creating boxes for the table section *
*---------------------------------------------------------------------*
FORM SET_BOXES TABLES BOXES STRUCTURE BCBOXES
BOX_VALS STRUCTURE BCVALS
POSITIONS STRUCTURE BCPOSITION
USING CHART LIKE BCCHART-ID.
PERFORM MAKE_BOX TABLES BOXES BOX_VALS POSITIONS
USING CHART 2 'B1' 'B1' TEXT-002 1.
PERFORM MAKE_BOX TABLES BOXES BOX_VALS POSITIONS
USING CHART 3 'B1' 'B1' TEXT-003 2.
PERFORM MAKE_BOX TABLES BOXES BOX_VALS POSITIONS
USING CHART 4 'B1' 'B1' TEXT-004 3.
PERFORM MAKE_BOX TABLES BOXES BOX_VALS POSITIONS
USING CHART 5 'B1' 'B1' TEXT-005 4.
PERFORM MAKE_BOX TABLES BOXES BOX_VALS POSITIONS
USING CHART 6 'B1' 'B1' TEXT-006 5.
ENDFORM. "SET_BOXES
*---------------------------------------------------------------------*
* FORM SET_NODES *
*---------------------------------------------------------------------*
* Creating nodes, setting layers *
*---------------------------------------------------------------------*
FORM SET_NODES TABLES NODES STRUCTURE BCNODES
NODE_VALS STRUCTURE BCNVALS
POSITIONS STRUCTURE BCPOSITION
USING CHART LIKE BCCHART-ID.
NODES-ID = 1.
NODES-CHART_ID = CHART.
APPEND NODES.
NODE_VALS-ID = NODES-ID.
NODE_VALS-CHART_ID = NODES-CHART_ID.
NODE_VALS-FL = '1'.
NODE_VALS-VAL = '12.01.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = '2'.
NODE_VALS-VAL = '27.06.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = BC_CONST-ADD_LAYER.
NODE_VALS-VAL = '00'.
APPEND NODE_VALS.
POSITIONS-OBJ_ID = NODES-ID.
POSITIONS-OBJ_TYPE = BC_CONST-NODE_OBJECT.
POSITIONS-CHART_ID = NODES-CHART_ID.
POSITIONS-ROW_NUMBER = 1.
APPEND POSITIONS.
*----------------------------------------------------------------------*
NODES-ID = 2.
NODES-CHART_ID = CHART.
APPEND NODES.
NODE_VALS-ID = NODES-ID.
NODE_VALS-CHART_ID = NODES-CHART_ID.
NODE_VALS-FL = '1'.
NODE_VALS-VAL = '02.02.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = '2'.
NODE_VALS-VAL = '25.07.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = BC_CONST-ADD_LAYER.
NODE_VALS-VAL = '01'.
APPEND NODE_VALS.
POSITIONS-OBJ_ID = NODES-ID.
POSITIONS-OBJ_TYPE = BC_CONST-NODE_OBJECT.
POSITIONS-CHART_ID = NODES-CHART_ID.
POSITIONS-ROW_NUMBER = 2.
APPEND POSITIONS.
*----------------------------------------------------------------------*
NODES-ID = 3.
NODES-CHART_ID = CHART.
APPEND NODES.
NODE_VALS-ID = NODES-ID.
NODE_VALS-CHART_ID = NODES-CHART_ID.
NODE_VALS-FL = '1'.
NODE_VALS-VAL = '01.04.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = '2'.
NODE_VALS-VAL = '25.09.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = BC_CONST-ADD_LAYER.
NODE_VALS-VAL = '02'.
APPEND NODE_VALS.
POSITIONS-OBJ_ID = NODES-ID.
POSITIONS-OBJ_TYPE = BC_CONST-NODE_OBJECT.
POSITIONS-CHART_ID = NODES-CHART_ID.
POSITIONS-ROW_NUMBER = 3.
APPEND POSITIONS.
*----------------------------------------------------------------------*
NODES-ID = 4.
NODES-CHART_ID = CHART.
APPEND NODES.
NODE_VALS-ID = NODES-ID.
NODE_VALS-CHART_ID = NODES-CHART_ID.
NODE_VALS-FL = '1'.
NODE_VALS-VAL = '11.02.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = '2'.
NODE_VALS-VAL = '11.07.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = BC_CONST-ADD_LAYER.
NODE_VALS-VAL = '00'.
APPEND NODE_VALS.
POSITIONS-OBJ_ID = NODES-ID.
POSITIONS-OBJ_TYPE = BC_CONST-NODE_OBJECT.
POSITIONS-CHART_ID = NODES-CHART_ID.
POSITIONS-ROW_NUMBER = 4.
APPEND POSITIONS.
*----------------------------------------------------------------------*
NODES-ID = 5.
NODES-CHART_ID = CHART.
APPEND NODES.
NODE_VALS-ID = NODES-ID.
NODE_VALS-CHART_ID = NODES-CHART_ID.
NODE_VALS-FL = '1'.
NODE_VALS-VAL = '01.05.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = '2'.
NODE_VALS-VAL = '11.12.1994;'.
APPEND NODE_VALS.
NODE_VALS-FL = BC_CONST-ADD_LAYER.
NODE_VALS-VAL = '01'.
APPEND NODE_VALS.
POSITIONS-OBJ_ID = NODES-ID.
POSITIONS-OBJ_TYPE = BC_CONST-NODE_OBJECT.
POSITIONS-CHART_ID = NODES-CHART_ID.
POSITIONS-ROW_NUMBER = 5.
APPEND POSITIONS.
ENDFORM. "SET_NODES